aw_wolfe Posted April 2, 2017 Posted April 2, 2017 (edited) I want to add an integer and float property to some vanilla blocks...something that can be accessed later with a blockstate.getProperty or something. An example is a weight value. Each block type would have a weight that I specify. I could have a lookup table, but I wanted to see if possible to add it in the 'proper way' that would also then allow other mods to have access to the new property. Further, I was hoping to avoid creating a new extended class for every block I wanted to add the new properties to, but instead add a new IProperty (?) to the default blockstate that I would create/init at mod loading. I do not see a register property function or a way to reset the default state with new property (hopefully, I'm missing one that is exposed). I'm still trying to figure out the properties design, so maybe way off base. --Does this make sense? Am I going about it the correct way? I just want to see if I'm stumbling/fumbling in the correct direction. Thanks, Tony Edited April 2, 2017 by aw_wolfe Quote
TheMasterGabriel Posted April 2, 2017 Posted April 2, 2017 (edited) Even if you could, however, it would probably cause chaos in the model system, as you could theoretically add a block property to a block after the model loads, which MC would not know what do with when it tries to render said block. So, I think you're restricted in terms of options: - Make the IProperty accessible via an API and have other mods use and implement it themselves, which you would need to check for whenever you wanted to do something with the block. (This doesn't help in editing vanilla blocks) - Abandon dynamic properties in place of something else - Manually add substitutions for all the vanilla blocks you want to change, via the GameRegistry#addSubstitutionAlias Edited April 2, 2017 by TheMasterGabriel Quote
aw_wolfe Posted April 2, 2017 Author Posted April 2, 2017 Ok. Thanks. I don't think I need to save the information, more of a physical property, i.e. every stone would always weigh the same. So I was thinking that every load would add the property onto the block type each time. I'm ok with a look up table, but was wanting to design in a way that another mod could access the information if it wanted to. How do mods access other mods ? Can an API be set up like // //PSUEDO CODE--just to express my question // //my_mod external float getBlockWeight(String blockName){ //do my lookup table return doLookupTable(blockName); } //different_mod float weight=my_mod.getBlockWeight("minecraft:stone"); Quote
TheMasterGabriel Posted April 2, 2017 Posted April 2, 2017 If could even look into Registries and Forge's RegistryBuilder, although it is probably not needed for your case. Something for future endeavours, perhaps. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.