Jump to content

CmdrFluffy

Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by CmdrFluffy

  1. I should add I also want a way to repair the tools with the same element of their head component
  2. Ok so again I preface this with I am an amateur at JAVA coding, and all I know is from youtube tutorials. Now I am trying to make a custom tool (axe, pickaxe, hoe, shovel, sword) but I am wanting to be able to add to them a hand wrap that can be enchanted, the idea is I want a tool that I can upgrade with an enchanted mod, giving the tool the enchantments, but only making the handwrap glow like enchanted tools do. I am making custom recipes and crafting blocks for the assembly of parts into the full item, the handwrap is one of those parts, and the enchantment should be able to follow from initial crafting to finished crafting, I am still trying to figure out how to make the custom recipes and crafting blocks, but in the meantime I am putting standard recipes in place to make sure that the combination of items works along with the enchantments.I have been able to add each part into minecraft, and the textures work on the full item, still working on the recipes and how to make the item and also hopefully not fill up my creative tabs with every single variant of each tool, I currently have 12 head materials for each tool, 3 handwrap materials and 2 handle materials that are used in the creation of the items. I know this may seem like alot for a complete and utter noob to try and create, but I have an idea of a rather immersive mod, and im just trying to get the basics down, but with little to no JAVA knowledge(yes bad on me) I am relying on what I can put together from various youtube tutorials as well as ones I find online. so far my mod has several many features working, including biomes, structures, blocks and variants, tools and variants, tree gen, ore gen, im still learning tile entities and inventories, my next feature is a way to give an effect while wearing a full suit of armor with an inventory in the chest to allow 1 of 2 different effects depending on the item in the chest. but I think I have babbled enough, any assistance on how to get started on the items with upgrades I would greatly appreciate it.
  3. I want to preface this with I am a complete amatuer in JAVA coding, and everything I know is from YouTube tutorials, so examples of code would be greatly appreciated. I am creating a custom slab for my mod, but when doing so I am having an issue where the double slab will not display correctly, the top slab will be invisible when placed after the bottom slab, and when trying to place a top slab first then bottom, the game will not let me place the bottom slab at all. BLOCKSLABBASE.java package guardia.coremod.objects.blocks.slab; import java.util.Random; import guardia.coremod.Main; import guardia.coremod.init.BlockInit; import guardia.coremod.init.ItemInit; import guardia.coremod.utils.interfaces.IHasModel; import net.minecraft.block.BlockSlab; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemSlab; import net.minecraft.item.ItemStack; public abstract class BlockSlabBase extends BlockSlab implements IHasModel { public BlockSlabBase(String name) { super(Material.WOOD); setUnlocalizedName(name); setRegistryName(name); setHardness(3F); setResistance(15F); setCreativeTab(Main.coretab); IBlockState state = this.blockState.getBaseState(); if (!this.isDouble()) { state = state.withProperty(HALF, EnumBlockHalf.BOTTOM); } setDefaultState(state); this.useNeighborBrightness = true; this.fullBlock = !this.isDouble(); BlockInit.BLOCKS.add(this); } @Override public String getUnlocalizedName(int meta) { return this.getUnlocalizedName(); } @Override public IProperty<?> getVariantProperty() { return HALF; } @Override public Comparable<?> getTypeForItem(ItemStack stack) { return EnumBlockHalf.BOTTOM; } @Override public int damageDropped(IBlockState state) { return 0; } @Override public IBlockState getStateFromMeta(int meta) { if (!this.isDouble()) return this.getDefaultState().withProperty(HALF, EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]); return this.getDefaultState(); } @Override public int getMetaFromState(IBlockState state) { if (this.isDouble()) return 0; return((EnumBlockHalf) state.getValue(HALF)).ordinal() + 1; } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Item.getItemFromBlock(BlockInit.HALF_SLAB); } @Override protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, new IProperty[] {HALF}); } @Override public void registerModels() { Main.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory"); } } REGISTRYHANDLER.java package guardia.coremod.utils.handlers; import guardia.coremod.init.BiomeInit; import guardia.coremod.init.BlockInit; import guardia.coremod.init.EntityInit; import guardia.coremod.init.ItemInit; import guardia.coremod.utils.interfaces.IHasModel; import guardia.coremod.world.gen.WorldGenCustomOres; import guardia.coremod.world.gen.WorldGenCustomStructures; import guardia.coremod.world.gen.WorldGenCustomTrees; import guardia.coremod.world.types.WorldTypeCustom; import guardia.coremod.world.types.WorldTypeElderOak; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemSlab; import net.minecraft.world.WorldType; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.registry.ForgeRegistries; import net.minecraftforge.fml.common.registry.GameRegistry; @EventBusSubscriber public class RegistryHandler { @SubscribeEvent public static void onItemRegister(RegistryEvent.Register<Item> event) { event.getRegistry().registerAll(ItemInit.ITEMS.toArray(new Item[0])); ItemBlock item = new ItemSlab(BlockInit.HALF_SLAB, BlockInit.HALF_SLAB, BlockInit.DOUBLE_SLAB); item.setRegistryName(BlockInit.HALF_SLAB.getRegistryName()); ForgeRegistries.ITEMS.register(item); } @SubscribeEvent public static void onBlockRegister(RegistryEvent.Register<Block> event) { event.getRegistry().registerAll(BlockInit.BLOCKS.toArray(new Block[0])); } @SubscribeEvent public static void onModelRegister(ModelRegistryEvent event) { for(Item item : ItemInit.ITEMS) { if(item instanceof IHasModel) { ((IHasModel)item).registerModels(); } } for(Block block : BlockInit.BLOCKS) { if(block instanceof IHasModel) { ((IHasModel)block).registerModels(); } } } public static void preInitRegistries() { GameRegistry.registerWorldGenerator(new WorldGenCustomOres(), 0); GameRegistry.registerWorldGenerator(new WorldGenCustomTrees(), 0); GameRegistry.registerWorldGenerator(new WorldGenCustomStructures(), 0); BiomeInit.registerBiomes(); EntityInit.registerEntities(); RenderHandler.registerEntityRenders(); } public static void Client() { RecipeHandler.registerSmelting(); } public static void initRegistries() { SoundsHandler.registerSounds(); } public static void postInitRegistries() { WorldType ELDER_OAK = new WorldTypeElderOak(); WorldType CUSTOM = new WorldTypeCustom(); } }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.