BlockLog is the abstract base class for log blocks that handles rotation and leaf decay, BlockOldLog and BlockNewLog are the concrete implementations that handle the variants for the old and new log types, respectively.
WorldGenAbstractTree is the abstract base class for tree generators, WorldGenTrees is the concrete implementation that handles generation for most of the old tree types. There are various other implementations that handle other types and sizes.
Forge's blockstates format (documentation, specification) will come in handy for the logs. This will let you specify the textures and rotation separately without having to create a blockstates file for each log type like vanilla does.
Rollback Post to RevisionRollBack
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.
BlockLog is the abstract base class for log blocks that handles rotation and leaf decay, BlockOldLog and BlockNewLog are the concrete implementations that handle the variants for the old and new log types, respectively.
WorldGenAbstractTree is the abstract base class for tree generators, WorldGenTrees is the concrete implementation that handles generation for most of the old tree types. There are various other implementations that handle other types and sizes.
Forge's blockstates format (documentation, specification) will come in handy for the logs. This will let you specify the textures and rotation separately without having to create a blockstates file for each log type like vanilla does.
Thank you for this. Should I copy and paste the code and modify it or simply extend BlockOldLog and BlockNewLog?
Thank you for this. Should I copy and paste the code and modify it or simply extend BlockOldLog and BlockNewLog?
Extend the base log class, not the subclasses. You should try to understand what the subclasses are doing before you copy their code.
Rollback Post to RevisionRollBack
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.
What should I override once I do extend BlockLog in order to successfully create my own log?
Sorry but the only resources I found was from 1.6.4 and is way too far out of date by the looks. Not even anything for 1.7.10.
Look at what the subclasses override.
You basically need to handle everything related to the log variant including the blockstate creation (variant property and createBlockState method), blockstate <-> metadata conversion (getStateFromMeta and getMetaFromState methods) and item metadata dropped from regular and Silk Touch harvesting (damageDropped and createStackedBlock).
Keep in mind that the SwitchEnumWhatever nested classes in MInecraft's code are automatically generated by the compiler, you can just switch directly on an enum value in your code.
Rollback Post to RevisionRollBack
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.
How do I go about creating my own custom log and trees? Any ideas as to where to get started?
Look at the vanilla implementations.
BlockLog is the abstract base class for log blocks that handles rotation and leaf decay, BlockOldLog and BlockNewLog are the concrete implementations that handle the variants for the old and new log types, respectively.
WorldGenAbstractTree is the abstract base class for tree generators, WorldGenTrees is the concrete implementation that handles generation for most of the old tree types. There are various other implementations that handle other types and sizes.
Forge's blockstates format (documentation, specification) will come in handy for the logs. This will let you specify the textures and rotation separately without having to create a blockstates file for each log type like vanilla does.
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.
Thank you for this. Should I copy and paste the code and modify it or simply extend BlockOldLog and BlockNewLog?
Extend the base log class, not the subclasses. You should try to understand what the subclasses are doing before you copy their code.
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.
Sorry, I just have never worked with this before.
What should I override once I do extend BlockLog in order to successfully create my own log?
Sorry but the only resources I found was from 1.6.4 and is way too far out of date by the looks. Not even anything for 1.7.10.
Look at what the subclasses override.
You basically need to handle everything related to the log variant including the blockstate creation (variant property and createBlockState method), blockstate <-> metadata conversion (getStateFromMeta and getMetaFromState methods) and item metadata dropped from regular and Silk Touch harvesting (damageDropped and createStackedBlock).
Keep in mind that the SwitchEnumWhatever nested classes in MInecraft's code are automatically generated by the compiler, you can just switch directly on an enum value in your code.
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.