Posted May 25, 20196 yr I want to make my swords look like this in first person And they look like this Here is my sword base: import java.util.Collection; import java.util.Optional; import java.util.UUID; import org.lwjgl.opengl.GL11; import com.google.common.collect.Multimap; import me.Jaycen.FirstMod.Main; import me.Jaycen.FirstMod.init.ModItems; import me.Jaycen.FirstMod.util.IHasModel; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.ai.attributes.IAttribute; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; public class SwordBase extends ItemSword implements IHasModel { double speed = 1; private void replaceModifier(Multimap<String, AttributeModifier> modifierMultimap, IAttribute attribute, UUID id, double multiplier) { // Get the modifiers for the specified attribute final Collection<AttributeModifier> modifiers = modifierMultimap.get(attribute.getName()); // Find the modifier with the specified ID, if any final Optional<AttributeModifier> modifierOptional = modifiers.stream().filter(attributeModifier -> attributeModifier.getID().equals(id)).findFirst(); if (modifierOptional.isPresent()) { // If it exists, final AttributeModifier modifier = modifierOptional.get(); modifiers.remove(modifier); // Remove it modifiers.add(new AttributeModifier(modifier.getID(), modifier.getName(), modifier.getAmount() * multiplier, modifier.getOperation())); // Add the new modifier } } @Override public Multimap<String, AttributeModifier> getAttributeModifiers(EntityEquipmentSlot slot, ItemStack stack) { final Multimap<String, AttributeModifier> modifiers = super.getAttributeModifiers(slot, stack); if (slot == EntityEquipmentSlot.MAINHAND) { replaceModifier(modifiers, SharedMonsterAttributes.ATTACK_DAMAGE, ATTACK_DAMAGE_MODIFIER, speed); replaceModifier(modifiers, SharedMonsterAttributes.ATTACK_SPEED, ATTACK_SPEED_MODIFIER, speed); } return modifiers; } public SwordBase(String name, ToolMaterial mat, double speed) { super(mat); this.speed = speed; isFull3D(); setUnlocalizedName(name); setRegistryName(name); setCreativeTab(CreativeTabs.COMBAT); ModItems.ITEMS.add(this); } @Override public void registerModels() { Main.proxy.registerItemRenderer(this, 0, "inventory"); } } And my class that registers models package me.Jaycen.FirstMod.util.handlers; import org.lwjgl.opengl.GL11; import me.Jaycen.FirstMod.init.ModBlocks; import me.Jaycen.FirstMod.init.ModItems; import me.Jaycen.FirstMod.items.SwordBase; import me.Jaycen.FirstMod.util.IHasModel; import net.minecraft.block.Block; import net.minecraft.item.Item; 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; @EventBusSubscriber public class RegisteryHandler { @SubscribeEvent public static void onItemRegister(RegistryEvent.Register<Item> event) { event.getRegistry().registerAll(ModItems.ITEMS.toArray(new Item[0])); } @SubscribeEvent public static void onBlockRegister(RegistryEvent.Register<Block> event) { event.getRegistry().registerAll(ModBlocks.BLOCKS.toArray(new Block[0])); } @SubscribeEvent public static void onModelRegister(ModelRegistryEvent event) { for(Item item : ModItems.ITEMS) { if(item instanceof IHasModel) { ((IHasModel)item).registerModels(); } } for(Block item : ModBlocks.BLOCKS) { if(item instanceof IHasModel) { ((IHasModel)item).registerModels(); } } } } Edited May 25, 20196 yr by Jaycen1000 Solved
November 24, 20195 yr Late reaction, but since I ended up here through search, a tip for future readers: If you want to find out how the minecraft items achieve something, look at the minecraft implementation. E.g. if you're using IntelliJ IDEA in your project window, expand 'External libraries' and then the forgeSrc jar file.
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.