@TheOldOne, where are your SimpleOres add-ons posted these days? Do you have a CurseForge account? Your MinecraftForum post is a bit hard to find things in.
Nevermind, found it. So the consensus is that catalysts should, in the normal case, continue to be consumed, and we can write special-case recipes with 0-stack-size for "true" catalysts. That makes sense.
SimpleCore API should be mostly stable, unless I wind up adding more base classes to it to support stuff in Machines or Aesthetics (entirely possible). I think I already pulled in everything I find useful from akkamaddiCore API; if there's still something I need, I may add to it. (I'm pretty sure I don't need the old werewolf code, because Mo'Creatures doesn't appear to be porting anytime soon, and was going to change how it handled "silver" anyway). I do not expect to break the already-existing API, so feel free to use it-though if the current SimpleFurnace classes turn out to be too awkward to subclass for improved furnaces, I may have to change them.
I don't yet know how much of JEI and CraftTweaker support will go into the SimpleCore API; it's most likely that all of the support classes will be confined to the Fusion mod, because the Fusion furnace is the only non-vanilla crafting mechanic that I need to add support for.
..and re-reading the new Forge docs, to which new stuff is constantly being added, I discovered that I am using the "old", deprecated method for handling inventories in the furnaces. Apparently the new method is with the IItemHandler capability, instead of ISidedInventory, and without support for capabilities, the Simple Ores furnaces (fusion and otherwise), won't properly interact with automation mods that use pipes/conduits/etc that use capabilities.
So, expect some rewrites in the future.
Should I revive the old "Simple Ores plug-in development" thread, or just keep talking about development here? This is a pretty quiet thread, so having all the info in one place seems like the thing to do.
Up to you in regards to reviving the old development thread. Typical of forge to completely change how inventories are handled, though ISidedInventory was never ideal. Oh and good luck subclassing SimpleFurnace... I tried to setup tile entities and gui's for the Machines furnaces I was working on so that you could instance them... not fun, or easy, and requires a lot of dodgy "GetTileEntityByName(string teName)" trickery, which is never ideal, but unfortunately neither is having to create 4+ nearly identical copies of every TileEntity, GUI, Container, and Block class for every furnace...
Up to you in regards to reviving the old development thread. Typical of forge to completely change how inventories are handled, though ISidedInventory was never ideal. Oh and good luck subclassing SimpleFurnace... I tried to setup tile entities and gui's for the Machines furnaces I was working on so that you could instance them... not fun, or easy, and requires a lot of dodgy "GetTileEntityByName(string teName)" trickery, which is never ideal, but unfortunately neither is having to create 4+ nearly identical copies of every TileEntity, GUI, Container, and Block class for every furnace...
I have a feeling a lot of refactoring is in my future and the future of Fusion and Machines....
I have a feeling a lot of refactoring is in my future and the future of Fusion and Machines....
Refactoring for days doesn't help that Forge is constantly changing all their hooks and helpers Minecraft modding in general is fairly unintuitive in my opinion.
Refactoring for days doesn't help that Forge is constantly changing all their hooks and helpers Minecraft modding in general is fairly unintuitive in my opinion.
I know that that Forge has to deal with changes in the underlying Minecraft code, but sometimes I think that LexManos et al do not quite understand the concept of an API. APIs are supposed to be stable, and hide changes in the underlying code from the API user. They've had API-breaking changes within the same minor version of Minecraft (1.9 -> 1.9.4), or even the same version (1.7.10 builds breaking all fluids at one point... killed GrowthCraft until people talked Gwafu into releasing the code so they could update it, which is how we got GrowthCraftCE). ISidedInventory is not even officially deprecated, it's just that capabilities are being encouraged, and not all modders support both in their transport objects. (Smart ones, like McJty, do--I've been looking over RFTools and McJtylib for some good source examples).
Contrariwise, I can use code that was written 20 years ago to call libc, and be confident that those functions in glibc whatever-the-current-version-is still work as advertised. THAT is how you do an API. (Actually, make that 40 years ago; I'm pretty sure that if I took a "Hello, world" program written in original K&R C, it would still compile and work).
I think I need to get Aesthetics out before I tackle re-doing Fusion, just so I'm getting something done and released. Machines will need a good solid implementation of the base "SimpleFurnace" or "SimpleMachine" class worked out, so it will be after I re-do Fusion.
I know that that Forge has to deal with changes in the underlying Minecraft code, but sometimes I think that LexManos et al do not quite understand the concept of an API. APIs are supposed to be stable, and hide changes in the underlying code from the API user. They've had API-breaking changes within the same minor version of Minecraft (1.9 -> 1.9.4), or even the same version (1.7.10 builds breaking all fluids at one point... killed GrowthCraft until people talked Gwafu into releasing the code so they could update it, which is how we got GrowthCraftCE). ISidedInventory is not even officially deprecated, it's just that capabilities are being encouraged, and not all modders support both in their transport objects. (Smart ones, like McJty, do--I've been looking over RFTools and McJtylib for some good source examples).
Contrariwise, I can use code that was written 20 years ago to call libc, and be confident that those functions in glibc whatever-the-current-version-is still work as advertised. THAT is how you do an API. (Actually, make that 40 years ago; I'm pretty sure that if I took a "Hello, world" program written in original K&R C, it would still compile and work).
I think I need to get Aesthetics out before I tackle re-doing Fusion, just so I'm getting something done and released. Machines will need a good solid implementation of the base "SimpleFurnace" or "SimpleMachine" class worked out, so it will be after I re-do Fusion.
Yeah, I agree with you 100%. If you look at Rust's big modding API, Oxide 2, they actually built their to hook into Unity, so the base game engine, which means that very rarely do they need to change hooks. While that's not possible for Minecraft modding, Lex and the Forge teams appear to enjoy reinventing rather than updating or refactoring. Why keep this hook that modders have been using for the last 2 years when we can make a new one that works better, but everyone will have to relearn. If you look on the Forge forums, they are very much of the mindset that every modder should be following the Forge changelogs closely, ensuring they don't miss any new hooks that are added, and fully understand how to use those new hooks so they can move off the ones they have been using for years.
Regardless, Minecraft modding would be completely different without Forge, they have certainly covered a lot of ground since the ModLoader days, and even something as simple as universal versions for both server and client made developing the mods significantly easier and more intuitive.
And yes, it's a good idea to try to get as much common code between Fusion and Machines as you can. Hopefully you can find a good way around the multitudes of Tile Entities, GUIs and Container classes
I finally remembered to flag all the current 1.10.2 versions of SimpleCore, SimpleOres, Fusion and Netherrocks as "release". Should make it easier to include in modpacks. I need to get back to work on Aesthetics--I had all the object classes done, I just threw up my hands at building all the stairs block JSONs and went and hid under a rock for a while.
Hey, so how do I disable the ore generation in SimpleOres? I've tried setting the Spawn Rate for the ores in the base mod to 0, so I can handle that ore gen in another mod. However, when I do set that spawnrate to 0, it still keeps the default spawnrate, letting all the mod's ores spawn in the world. If it's a bug, I'll put it down in Github.
Hey, so how do I disable the ore generation in SimpleOres? I've tried setting the Spawn Rate for the ores in the base mod to 0, so I can handle that ore gen in another mod. However, when I do set that spawnrate to 0, it still keeps the default spawnrate, letting all the mod's ores spawn in the world. If it's a bug, I'll put it down in Github.
That's peculiar. Setting either the spawn rate or the vein size to 0 should prevent generation; spawn rate=0 cuts it off earlier in the process.
Are you sure you're using the correct config file? The names have changed once or twice (to eliminate spaces from file names, etc), and a newer version of Simple Ores won't read the old config file. Which version of Simple Ores2 and Minecraft are you using? The current 1.9.4/1.10.2 Simple Ores2 reads and writes a config file named "SimpleOres2_Settings.xml".
I am using 1.10.2, SimpleOres 2 version 1.8.3.26. And when I tried making fresh configs to see if my configs were wrong, I got a file named "SimpleOres 2 Settings.xml". With spaces, not underlines.
I am using 1.10.2, SimpleOres 2 version 1.8.3.26. And when I tried making fresh configs to see if my configs were wrong, I got a file named "SimpleOres 2 Settings.xml". With spaces, not underlines.
Well, that certainly suggests some interesting possibilities for me to look at. I will try to look at the code tomorrow and see if what I suspect is wrong is actually the problem. Sorry to keep you waiting when you're trying to configure a modpack; I know how frustrating that can be.
Okay, it looks like I forgot to upload the last round of changes. Please download the latest (as of today) SimpleCore and Simple Ores2, and test with a clean setup. (Erase old config files, etc, let it generate new ones). Let me know if you still have problems. I don't see anything obvious in the current code.
ETA: if it's still not recognizing changes in the config file, check the logfile for possible error messages. The config subsystem does try to log an error message if it can't create or read a config file.
I've cleaned the SimpleOres 2 configs, and it still doesn't read the changes, even when I change the spawn rate to 0 and the vein size to 0. Oddly enough, no errors were detected in the logs.
I've cleaned the SimpleOres 2 configs, and it still doesn't read the changes, even when I change the spawn rate to 0 and the vein size to 0. Oddly enough, no errors were detected in the logs.
Okay, trouble-shooting time:
1. Did you upgrade to Simple Core API 1.10.2-1.3.11.0 and Simple Ores 1.10.2-1.8.5.3?
2. Are you completely exiting the game, making your changes, and then re-starting the game? Changes made while the game is running won't be read and will probably be overwritten by the in-memory config when the game exits.
3. If you are changing the config offline and then starting the game: when the game exits, are your config changes still in the config file, or have they been replaced by "default" values?
1. Yes, I have those versions.
2. Yes, I have made the changes after the game is not running.
3. When I change the configs offline, the configs are still the same after I exit the game.
The above has been tested in my normal instance and the instance with only SimpleOres, Fusion and dependencies.
Here's a log from a run done with the Verbose Logging enabled in the minimal instance:
[08:23:56] [main/INFO]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[08:23:56] [main/INFO]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[08:23:56] [main/INFO]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
[08:23:56] [main/INFO]: Forge Mod Loader version 12.18.1.2094 for Minecraft 1.10.2 loading
[08:23:56] [main/INFO]: Java is OpenJDK 64-Bit Server VM, version 1.8.0_102, running on Linux:amd64:4.7.4-1-ARCH, installed at /usr/lib/jvm/java-8-openjdk/jre
[08:23:56] [main/INFO]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[08:23:56] [main/INFO]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[08:23:56] [main/INFO]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[08:23:56] [main/INFO]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[08:23:56] [main/INFO]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[08:23:57] [main/INFO]: Found valid fingerprint for Minecraft Forge. Certificate fingerprint e3c3d50c7c986df74c645c0ac54639741c90a557
[08:23:57] [main/INFO]: Found valid fingerprint for Minecraft. Certificate fingerprint cd99959656f753dc28d863b46769f7f8fbaefcfc
[08:23:57] [main/INFO]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[08:23:57] [main/INFO]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[08:23:57] [main/INFO]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
[08:23:57] [main/INFO]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
[08:23:57] [main/INFO]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[08:23:58] [Client thread/INFO]: Setting user: T10a
[08:24:00] [Client thread/WARN]: Skipping bad option: lastServer:
[08:24:00] [Client thread/INFO]: LWJGL Version: 2.9.1
[08:24:01] [Client thread/INFO]: [net.minecraftforge.fml.client.SplashProgress:start:219]: ---- Minecraft Crash Report ----
// On the bright side, I bought you a teddy bear!
Time: 26/09/16 8:24 AM
Description: Loading screen debug info
This is just a prompt for computer specs to be printed. THIS IS NOT A ERROR
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- System Details --
Details:
Minecraft Version: 1.10.2
Operating System: Linux (amd64) version 4.7.4-1-ARCH
Java Version: 1.8.0_102, Oracle Corporation
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 386854656 bytes (368 MB) / 636485632 bytes (607 MB) up to 954728448 bytes (910 MB)
JVM Flags: 2 total; -Xms512m -Xmx1024m
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML:
Loaded coremods (and transformers):
GL info: ' Vendor: 'X.Org' Version: '3.0 Mesa 12.0.3' Renderer: 'Gallium 0.4 on AMD HAWAII (DRM 2.45.0 / 4.7.4-1-ARCH, LLVM 3.8.1)'
[08:24:01] [Client thread/INFO]: MinecraftForge v12.18.1.2094 Initialized
[08:24:02] [Client thread/INFO]: Replaced 232 ore recipes
[08:24:02] [Client thread/INFO]: Found 0 mods from the command line. Injecting into mod discoverer
[08:24:02] [Client thread/INFO]: Searching /home/thomas/.local/share/multimc5/instances/Terrafirmacraft/minecraft/mods for mods
[08:24:02] [Client thread/INFO]: Forge Mod Loader has identified 6 mods to load
[08:24:03] [Client thread/INFO]: Attempting connection with missing mods [mcp, FML, Forge, fusion, simplecore, simpleores] at CLIENT
[08:24:03] [Client thread/INFO]: Attempting connection with missing mods [mcp, FML, Forge, fusion, simplecore, simpleores] at SERVER
[08:24:03] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Fusion, FMLFileResourcePack:SimpleCore API, FMLFileResourcePack:SimpleOres 2
[08:24:03] [Client thread/INFO]: Processing ObjectHolder annotations
[08:24:03] [Client thread/INFO]: Found 423 ObjectHolder annotations
[08:24:03] [Client thread/INFO]: Identifying ItemStackHolder annotations
[08:24:03] [Client thread/INFO]: Found 0 ItemStackHolder annotations
[08:24:03] [Client thread/INFO]: Applying holder lookups
[08:24:03] [Client thread/INFO]: Holder lookups applied
[08:24:03] [Client thread/INFO]: Applying holder lookups
[08:24:03] [Client thread/INFO]: Holder lookups applied
[08:24:03] [Client thread/INFO]: Applying holder lookups
[08:24:03] [Client thread/INFO]: Holder lookups applied
[08:24:03] [Client thread/INFO]: Configured a dormant chunk cache size of 0
[08:24:03] [Client thread/INFO]: SimpleCore API Loading...
[08:24:03] [Forge Version Check/INFO]: [Forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
[08:24:03] [Client thread/INFO]: Loading...
[08:24:03] [Client thread/INFO]: Loading Fusion...
[08:24:03] [Client thread/INFO]: Applying holder lookups
[08:24:03] [Client thread/INFO]: Holder lookups applied
[08:24:03] [Client thread/INFO]: Injecting itemstacks
[08:24:03] [Client thread/INFO]: Itemstack injection complete
[08:24:03] [Forge Version Check/INFO]: [Forge] Found status: AHEAD Target: null
[08:24:03] [Forge Version Check/INFO]: [simpleores] Starting version check at https://raw.githubusercontent.com/Sinhika/SimpleOres2/dev1.9/update.json
[08:24:04] [Sound Library Loader/INFO]: Starting up SoundSystem...
[08:24:04] [Forge Version Check/INFO]: [simpleores] Found status: BETA Target: null
[08:24:04] [Forge Version Check/INFO]: [fusion] Starting version check at https://raw.githubusercontent.com/Sinhika/Fusion/1.9.4/update.json
[08:24:04] [Forge Version Check/INFO]: [fusion] Found status: BETA Target: null
[08:24:04] [Forge Version Check/INFO]: [simplecore] Starting version check at https://raw.githubusercontent.com/Sinhika/SimpleCoreAPI/1.9.4/update.json
[08:24:04] [Thread-7/INFO]: Initializing LWJGL OpenAL
[08:24:04] [Thread-7/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
[08:24:04] [Thread-7/INFO]: OpenAL initialized.
[08:24:04] [Sound Library Loader/INFO]: Sound engine started
[08:24:05] [Client thread/INFO]: Max texture size: 16384
[08:24:05] [Client thread/INFO]: Created: 16x16 textures-atlas
[08:24:06] [Client thread/INFO]: Injecting itemstacks
[08:24:06] [Client thread/INFO]: Itemstack injection complete
[08:24:06] [Client thread/INFO]: SimpleCore API Loading Complete!
[08:24:06] [Client thread/INFO]: Loading Complete!
[08:24:06] [Client thread/INFO]: Fusion loaded
[08:24:06] [Client thread/INFO]: Forge Mod Loader has successfully loaded 6 mods
[08:24:06] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Fusion, FMLFileResourcePack:SimpleCore API, FMLFileResourcePack:SimpleOres 2
[08:24:06] [Client thread/INFO]: SoundSystem shutting down...
[08:24:06] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
[08:24:06] [Sound Library Loader/INFO]: Starting up SoundSystem...
[08:24:06] [Thread-9/INFO]: Initializing LWJGL OpenAL
[08:24:06] [Thread-9/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
[08:24:06] [Thread-9/INFO]: OpenAL initialized.
[08:24:07] [Sound Library Loader/INFO]: Sound engine started
[08:24:07] [Client thread/INFO]: Max texture size: 16384
[08:24:07] [Client thread/INFO]: Created: 1024x512 textures-atlas
[08:24:08] [Client thread/WARN]: Skipping bad option: lastServer:
[08:25:24] [Client thread/INFO]: Deleting level New World
[08:25:24] [Client thread/INFO]: Attempt 1...
[08:25:28] [Server thread/INFO]: Starting integrated minecraft server version 1.10.2
[08:25:28] [Server thread/INFO]: Generating keypair
[08:25:28] [Server thread/INFO]: Injecting existing block and item data into this server instance
[08:25:28] [Server thread/INFO]: Applying holder lookups
[08:25:28] [Server thread/INFO]: Holder lookups applied
[08:25:28] [Server thread/INFO]: Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@6f6a64b)
[08:25:29] [Server thread/INFO]: Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@6f6a64b)
[08:25:29] [Server thread/INFO]: Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@6f6a64b)
[08:25:29] [Server thread/INFO]: Preparing start region for level 0
[08:25:30] [Server thread/INFO]: Preparing spawn area: 13%
[08:25:31] [Server thread/INFO]: Preparing spawn area: 28%
[08:25:32] [Server thread/INFO]: Preparing spawn area: 41%
[08:25:33] [Server thread/INFO]: Preparing spawn area: 57%
[08:25:34] [Server thread/INFO]: Preparing spawn area: 75%
[08:25:35] [Server thread/INFO]: Preparing spawn area: 90%
[08:25:36] [Server thread/INFO]: Changing view distance to 12, from 10
[08:25:37] [Netty Local Client IO #0/INFO]: Server protocol version 2
[08:25:37] [Netty Server IO #1/INFO]: Client protocol version 2
[08:25:37] [Netty Server IO #1/INFO]: Client attempting to join with 6 mods : [email protected],[email protected],[email protected],[email protected],[email protected],[email protected]
[08:25:37] [Netty Local Client IO #0/INFO]: [Netty Local Client IO #0] Client side modded connection established
[08:25:37] [Server thread/INFO]: [Server thread] Server side modded connection established
[08:25:37] [Server thread/INFO]: T10a[local:E:60ce07c7] logged in with entity id 953 at (-194.5, 67.0, 247.5)
[08:25:37] [Server thread/INFO]: T10a joined the game
[08:25:39] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 2554ms behind, skipping 51 tick(s)
[08:25:58] [Server thread/INFO]: T10a has just earned the achievement [Taking Inventory]
[08:25:58] [Client thread/INFO]: [CHAT] T10a has just earned the achievement [Taking Inventory]
[08:26:56] [Server thread/INFO]: Saving and pausing game...
[08:26:56] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
[08:26:56] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
[08:26:56] [Server thread/INFO]: Saving chunks for level 'New World'/The End
[08:27:11] [Server thread/INFO]: Saving and pausing game...
[08:27:11] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
[08:27:12] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
[08:27:12] [Server thread/INFO]: Saving chunks for level 'New World'/The End
[08:29:24] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 2162ms behind, skipping 43 tick(s)
[08:30:01] [Server thread/INFO]: Saving and pausing game...
[08:30:01] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
[08:30:02] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
[08:30:02] [Server thread/INFO]: Saving chunks for level 'New World'/The End
[08:31:26] [Server thread/INFO]: Saving and pausing game...
[08:31:26] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
[08:31:26] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
[08:31:26] [Server thread/INFO]: Saving chunks for level 'New World'/The End
[08:31:27] [Server thread/INFO]: Stopping server
[08:31:27] [Server thread/INFO]: Saving players
[08:31:27] [Server thread/INFO]: Saving worlds
[08:31:27] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
[08:31:27] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
[08:31:27] [Server thread/INFO]: Saving chunks for level 'New World'/The End
[08:31:27] [Server thread/INFO]: Unloading dimension 0
[08:31:27] [Server thread/INFO]: Unloading dimension -1
[08:31:27] [Server thread/INFO]: Unloading dimension 1
[08:31:28] [Server thread/INFO]: Applying holder lookups
[08:31:28] [Server thread/INFO]: Holder lookups applied
[08:33:18] [Client thread/INFO]: Stopping!
[08:33:18] [Client thread/INFO]: SoundSystem shutting down...
[08:33:18] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
No, they're set to read-write. I tried briefly setting them to read only to see if that would affect how it loads the file, but it still loads the default.
Bad news (or good news, depending): I have not been able to duplicate your bug at all. Setting spawn rate = 0 stops ore generation.
My Test procedure:
1. Create a 1.10/Forge latest profile loaded with SimpleOres 1.10.2-1.8.5.3, Simple Core API 1.10.2-1.3.11.0, latest JEI, latest JER (for measuring ore distribution)
2. Create a standard Simple Ores world for comparison.
3. Generate the custom world-gen.json to show mod ores using /profile 5 all in-game.
4. quit out of game.
5. Log back in so that new world-gen.json is being used by JER. Look at ore distributions for copper, tin, etc, confirm all is normal.
6. quit out of game.
7. Edit Simple Ores config file, set copper ore spawn rate=0. Save file and exit.
8. Create a new test world using the new config, that should have no copper ore.
9. Generate the custom world-gen.json to show mod ores using /profile 5 all in-game.
10. quit out of game.
11. Log back in so that new world-gen.json is being used by JER. Look at ore distributions: copper doesn't have one, tin et al are normal. I have confirmed that setting spawn rate to 0 disables ore generation.
12. quit out of game.
13. Edit Simple Ores config file, set ALL Simple Ore spawn rates to 0. Save file and exit.
14-18: repeat steps 8-12 with the new config file and a new world. Looking at ore distributions, none of the Simple Ores are generating after setting spawn rate to 0.
@TheOldOne,
where are your SimpleOres add-ons posted these days? Do you have a CurseForge account? Your MinecraftForum post is a bit hard to find things in.Nevermind, found it. So the consensus is that catalysts should, in the normal case, continue to be consumed, and we can write special-case recipes with 0-stack-size for "true" catalysts. That makes sense.
SimpleCore API should be mostly stable, unless I wind up adding more base classes to it to support stuff in Machines or Aesthetics (entirely possible). I think I already pulled in everything I find useful from akkamaddiCore API; if there's still something I need, I may add to it. (I'm pretty sure I don't need the old werewolf code, because Mo'Creatures doesn't appear to be porting anytime soon, and was going to change how it handled "silver" anyway). I do not expect to break the already-existing API, so feel free to use it-though if the current SimpleFurnace classes turn out to be too awkward to subclass for improved furnaces, I may have to change them.
I don't yet know how much of JEI and CraftTweaker support will go into the SimpleCore API; it's most likely that all of the support classes will be confined to the Fusion mod, because the Fusion furnace is the only non-vanilla crafting mechanic that I need to add support for.
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
..and re-reading the new Forge docs, to which new stuff is constantly being added, I discovered that I am using the "old", deprecated method for handling inventories in the furnaces. Apparently the new method is with the IItemHandler capability, instead of ISidedInventory, and without support for capabilities, the Simple Ores furnaces (fusion and otherwise), won't properly interact with automation mods that use pipes/conduits/etc that use capabilities.
So, expect some rewrites in the future.
Should I revive the old "Simple Ores plug-in development" thread, or just keep talking about development here? This is a pretty quiet thread, so having all the info in one place seems like the thing to do.
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
Up to you in regards to reviving the old development thread. Typical of forge to completely change how inventories are handled, though ISidedInventory was never ideal. Oh and good luck subclassing SimpleFurnace... I tried to setup tile entities and gui's for the Machines furnaces I was working on so that you could instance them... not fun, or easy, and requires a lot of dodgy "GetTileEntityByName(string teName)" trickery, which is never ideal, but unfortunately neither is having to create 4+ nearly identical copies of every TileEntity, GUI, Container, and Block class for every furnace...
I have a feeling a lot of refactoring is in my future and the future of Fusion and Machines....
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
Refactoring for days doesn't help that Forge is constantly changing all their hooks and helpers Minecraft modding in general is fairly unintuitive in my opinion.
I know that that Forge has to deal with changes in the underlying Minecraft code, but sometimes I think that LexManos et al do not quite understand the concept of an API. APIs are supposed to be stable, and hide changes in the underlying code from the API user. They've had API-breaking changes within the same minor version of Minecraft (1.9 -> 1.9.4), or even the same version (1.7.10 builds breaking all fluids at one point... killed GrowthCraft until people talked Gwafu into releasing the code so they could update it, which is how we got GrowthCraftCE). ISidedInventory is not even officially deprecated, it's just that capabilities are being encouraged, and not all modders support both in their transport objects. (Smart ones, like McJty, do--I've been looking over RFTools and McJtylib for some good source examples).
Contrariwise, I can use code that was written 20 years ago to call libc, and be confident that those functions in glibc whatever-the-current-version-is still work as advertised. THAT is how you do an API. (Actually, make that 40 years ago; I'm pretty sure that if I took a "Hello, world" program written in original K&R C, it would still compile and work).
I think I need to get Aesthetics out before I tackle re-doing Fusion, just so I'm getting something done and released. Machines will need a good solid implementation of the base "SimpleFurnace" or "SimpleMachine" class worked out, so it will be after I re-do Fusion.
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
Yeah, I agree with you 100%. If you look at Rust's big modding API, Oxide 2, they actually built their to hook into Unity, so the base game engine, which means that very rarely do they need to change hooks. While that's not possible for Minecraft modding, Lex and the Forge teams appear to enjoy reinventing rather than updating or refactoring. Why keep this hook that modders have been using for the last 2 years when we can make a new one that works better, but everyone will have to relearn. If you look on the Forge forums, they are very much of the mindset that every modder should be following the Forge changelogs closely, ensuring they don't miss any new hooks that are added, and fully understand how to use those new hooks so they can move off the ones they have been using for years.
Regardless, Minecraft modding would be completely different without Forge, they have certainly covered a lot of ground since the ModLoader days, and even something as simple as universal versions for both server and client made developing the mods significantly easier and more intuitive.
And yes, it's a good idea to try to get as much common code between Fusion and Machines as you can. Hopefully you can find a good way around the multitudes of Tile Entities, GUIs and Container classes
My tinkers addon now has netherrocks support but some of the traits are placeholders.
I finally remembered to flag all the current 1.10.2 versions of SimpleCore, SimpleOres, Fusion and Netherrocks as "release". Should make it easier to include in modpacks. I need to get back to work on Aesthetics--I had all the object classes done, I just threw up my hands at building all the stairs block JSONs and went and hid under a rock for a while.
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
Hey, so how do I disable the ore generation in SimpleOres? I've tried setting the Spawn Rate for the ores in the base mod to 0, so I can handle that ore gen in another mod. However, when I do set that spawnrate to 0, it still keeps the default spawnrate, letting all the mod's ores spawn in the world. If it's a bug, I'll put it down in Github.
That's peculiar. Setting either the spawn rate or the vein size to 0 should prevent generation; spawn rate=0 cuts it off earlier in the process.
Are you sure you're using the correct config file? The names have changed once or twice (to eliminate spaces from file names, etc), and a newer version of Simple Ores won't read the old config file. Which version of Simple Ores2 and Minecraft are you using? The current 1.9.4/1.10.2 Simple Ores2 reads and writes a config file named "SimpleOres2_Settings.xml".
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
I am using 1.10.2, SimpleOres 2 version 1.8.3.26. And when I tried making fresh configs to see if my configs were wrong, I got a file named "SimpleOres 2 Settings.xml". With spaces, not underlines.
Well, that certainly suggests some interesting possibilities for me to look at. I will try to look at the code tomorrow and see if what I suspect is wrong is actually the problem. Sorry to keep you waiting when you're trying to configure a modpack; I know how frustrating that can be.
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
Okay, it looks like I forgot to upload the last round of changes. Please download the latest (as of today) SimpleCore and Simple Ores2, and test with a clean setup. (Erase old config files, etc, let it generate new ones). Let me know if you still have problems. I don't see anything obvious in the current code.
ETA: if it's still not recognizing changes in the config file, check the logfile for possible error messages. The config subsystem does try to log an error message if it can't create or read a config file.
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
I've cleaned the SimpleOres 2 configs, and it still doesn't read the changes, even when I change the spawn rate to 0 and the vein size to 0. Oddly enough, no errors were detected in the logs.
Okay, trouble-shooting time:
1. Did you upgrade to Simple Core API 1.10.2-1.3.11.0 and Simple Ores 1.10.2-1.8.5.3?
2. Are you completely exiting the game, making your changes, and then re-starting the game? Changes made while the game is running won't be read and will probably be overwritten by the in-memory config when the game exits.
3. If you are changing the config offline and then starting the game: when the game exits, are your config changes still in the config file, or have they been replaced by "default" values?
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
The above has been tested in my normal instance and the instance with only SimpleOres, Fusion and dependencies. Here's a log from a run done with the Verbose Logging enabled in the minimal instance:
Here's the config xml text:
Okay, I will try to duplicate the error when I get home. If I can duplicate it, I should be able to chase it down.
ETA: Probably can't get to it tonight, or possibly not until the weekend, depending on work schedule.
One last thing to check at your end--did the config files somehow get write-protected (set read-only)?
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10
No, they're set to read-write. I tried briefly setting them to read only to see if that would affect how it loads the file, but it still loads the default.
Bad news (or good news, depending): I have not been able to duplicate your bug at all. Setting spawn rate = 0 stops ore generation.
My Test procedure:
1. Create a 1.10/Forge latest profile loaded with SimpleOres 1.10.2-1.8.5.3, Simple Core API 1.10.2-1.3.11.0, latest JEI, latest JER (for measuring ore distribution)
2. Create a standard Simple Ores world for comparison.
3. Generate the custom world-gen.json to show mod ores using /profile 5 all in-game.
4. quit out of game.
5. Log back in so that new world-gen.json is being used by JER. Look at ore distributions for copper, tin, etc, confirm all is normal.
6. quit out of game.
7. Edit Simple Ores config file, set copper ore spawn rate=0. Save file and exit.
8. Create a new test world using the new config, that should have no copper ore.
9. Generate the custom world-gen.json to show mod ores using /profile 5 all in-game.
10. quit out of game.
11. Log back in so that new world-gen.json is being used by JER. Look at ore distributions: copper doesn't have one, tin et al are normal. I have confirmed that setting spawn rate to 0 disables ore generation.
12. quit out of game.
13. Edit Simple Ores config file, set ALL Simple Ore spawn rates to 0. Save file and exit.
14-18: repeat steps 8-12 with the new config file and a new world. Looking at ore distributions, none of the Simple Ores are generating after setting spawn rate to 0.
How are you checking if ore is being generated?
--<@ My collection of Actually Somewhat Useful Minecraft Modding Links @>--
My Mods: Sinhika's Bark
Ported Mods: akkamaddi's Additions, akkamaddi's Ashenwheat, AleXndrTheGr8st's SimpleCore/SimpleOres/etc
Other Stuff: old/obsolete Ruins templates, updated to Ruins 1.7.10