-
IDE plugin for @SidedProxy, _factories.json, etc
Can we get an IDE plugin that is aware that the strings in those things are actually fully qualified names? That way I don't need to use string refactoring which doesn't even work when you use "rename"-type refactoring in IDEA. (proof: make class, put FQN in some string somewhere, open class in editor, run shift+f6 while with the cursor over the class name, etc, watch as the FQN string is untouched. there are also a few other cases where it doesn't work properly.) Also would be nice if it displays an error when the FQN doesn't specify an IRecipeFactory/IConditionFactory/etc. (Alternatively, could someone hack an event-based IRecipeFactory/IConditionFactory/etc registration system with a coremod? That just so happens to also solve my problem, and is much simpler than an IDE plugin.)
-
@Mod as a shorthand for the mod package in _factories.json
Actually @ is invalid in package names. We could also use super for the parent package (a la @Mod.super), which is also invalid in package names. So no, no ambiguity there. Also what do you mean requires parsing binary files? They're already parsed by the time _factories.json is loaded. And you'll need to parse those binary files anyway if you wanna add IDE support (error reporting) for factories.
-
@Mod as a shorthand for the mod package in _factories.json
I'd like to be able to use @Mod as a shorthand for the package in which the @Mod is in, in _factories.json. That is, the following _factories.json: { "conditions": { "zero_max_energy": "@Mod.conditions.ZeroMaxEnergy" } } in assets/powercrops/recipes, should use the modid from the path (powercrops) to fetch the matching @Mod, and use the package it's in. In powercrops case, this is io.github.soniex2.powercrops. Currently I'm using package powercrops for _factories.json stuff (e.g. as in powercrops.ZeroMaxEnergy), because it's easier.
-
Have BlockCrops default to crop type
Why's the crop block not a crop by default?
-
Dynamic JSON recipe output
Okay figured out how to use the awful _factories.json-based system, nvm.
-
Dynamic JSON recipe output
I need to select between 2 different recipe outputs based on a config value. How do I do that? Create dummy item name and register an alias based on the config? How do I register alias? Reflect into ForgeRegistry?
-
Where to register tile entities
It seems the old pre-1.12 way of registering tile entities (in preinit) still works, but is that the right way to do it?
-
Have BlockCrops default to crop type
Currently, BlockCrops,getPlantType defaults to EnumPlantType.Plains. It would make more sense if it defaulted to EnumPlantType.Crop instead. (I do not mean BlockBush should default to Crop type, I mean only BlockCrops specifically should default to Crop type!)
- Registering item models
-
Registering item models
Currently in the process of porting to 1.12. Previously, in 1.11.2, I had: @Mod.EventHandler @SideOnly(Side.CLIENT) public void yUNoPerMethodDependenciesClient(FMLPreInitializationEvent event) { yUNoPerMethodDependencies(event); ModelLoader.setCustomModelResourceLocation(powerSeeds, 0, new ModelResourceLocation(new ResourceLocation(MODID, ItemPowerSeeds.ITEMID), "")); ModelLoader.setCustomModelResourceLocation(realizedPowerSeeds, 0, new ModelResourceLocation(new ResourceLocation(MODID, ItemRealizedPowerSeeds.ITEMID), "")); } (https://bitbucket.org/SoniEx2/powercrops/src/3003fdfde9fbaa245b3b366e2a718b27c619570f/src/main/java/io/github/soniex2/powercrops/PowerCrops.java?at=master&fileviewer=file-view-default#PowerCrops.java-91:97) This no longer works in 1.12. How do I register item models in 1.12?
-
Dealing with overrides
I have a mod. It registers a Block, and an ItemSeeds which uses that Block. I'd like to let other mods replace the Block using the overrides system, without them also having to replace the ItemSeeds. To do that, the only way I know of is to make my own subclass of ItemSeeds that doesn't use the final Block inside it, but rather uses some sort of thing that stays in sync with the registry. This involves overriding all ItemSeeds methods in my subclass, which defeats using ItemSeeds in the first place. The question is, is there a better way?
-
Dealing with overrides
Sorry, extend the ItemSeeds and override all of the methods that touch the final Block field.
-
Dealing with overrides
I need to override the ItemSeeds methods, not my own items. I want other mods to be able to override my stuff painlessly.
-
Dealing with overrides
Those would be IRegistryDelegate? Also, that's not exactly what I'd call "a better way", since I still need to override everything.
-
Dealing with overrides
What I came up with is, I could extend ItemSeeds and hope nobody's reflecting into the crops field, then override the relevant methods using a static @ObjectHolder field instead of a private final (instance) field, such that I need different classes for different seeds, but at least the Block is automatically updated. That would probably work, but is there a better way I can do it?
IPS spam blocked by CleanTalk.