Jump to content

3d Rendering Armor


BreadBear

Recommended Posts

does anyone know how i can add a 3d render for my armor i followed a tutorial from technovision for 1.15.2 but it only shows how to add basic vanilla style armor but i have 3d model for custom armor and im not sure about how to make it 3d from the point i have gotten to if anyone could help me i would greatly appreciate it.

Heres the link to the tutorial to reference what i have done so far i have completed everything else and everything else aside from the armor on the body render is fine.

https://www.youtube.com/watch?v=kJrlfzjrHqE&list=PLDhiRTZ_vnoWsCqtoG1X1MbGY5xATTadb&index=8

Link to comment
Share on other sites

  • 2 weeks later...
On 8/13/2021 at 5:07 PM, diesieben07 said:

Show your code.

//Main Class
import com.breadbear.petalsprettyhats.util.RegistryHandler;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;


@Mod("pph")
public class PrettyHats
{
    private static final Logger LOGGER = LogManager.getLogger();
    public static final String MOD_ID = "pph";

    public PrettyHats() {
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff);

        RegistryHandler.init();

        MinecraftForge.EVENT_BUS.register(this);
    }

    private void setup(final FMLCommonSetupEvent event) { }

    private void doClientStuff(final FMLClientSetupEvent event) { }

    public static final ItemGroup TAB = new ItemGroup("Petals_Petally_Hats") {

        @Override
        public ItemStack createIcon() {
            return new ItemStack(RegistryHandler.RED_TULIP_HAT.get());
        }

    };

}
//ArmorMaterialClass
import com.breadbear.petalsprettyhats.PrettyHats;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.item.IArmorMaterial;
import net.minecraft.item.Items;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.SoundEvents;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;

import java.util.function.Supplier;

public enum RPHModArmorMaterial implements IArmorMaterial {

    RED_TULIP(PrettyHats.MOD_ID + "red_tulip", 0, new int[] { 0,0,0,0 }, 18,
            SoundEvents.BLOCK_GRASS_PLACE, 0.0f, () -> { return Ingredient.fromItems(Items.RED_TULIP.getItem()); });


    private static final int[] MAX_DAMAGE_ARRAY = new int[] {0, 0, 0, 0 };
    private final String name;
    private final int maxDamageFactor;
    private final int[] damageReductionAmountArray;
    private final int enchantability;
    private final SoundEvent soundEvent;
    private final float toughness;
    private final Supplier<Ingredient> repairMaterial;

    RPHModArmorMaterial(String name, int maxDamageFactor, int[] damageReductionAmountArray, int enchantability,
                        SoundEvent soundEvent, float toughness, Supplier<Ingredient> repairMaterial) {
        this.name = name;
        this.maxDamageFactor = maxDamageFactor;
        this.damageReductionAmountArray = damageReductionAmountArray;
        this.enchantability = enchantability;
        this.soundEvent = soundEvent;
        this.toughness = toughness;
        this.repairMaterial = repairMaterial;

    }


    @Override
    public int getDurability(EquipmentSlotType slotIn) {
        return MAX_DAMAGE_ARRAY[slotIn.getIndex()] * this.maxDamageFactor;
    }

    @Override
    public int getDamageReductionAmount(EquipmentSlotType slotIn) {
        return this.damageReductionAmountArray[slotIn.getIndex()];
    }

    @Override
    public int getEnchantability() {
        return this.enchantability;
    }

    @Override
    public SoundEvent getSoundEvent() {
        return this.soundEvent;
    }

    @Override
    public Ingredient getRepairMaterial() {
        return this.repairMaterial.get();
    }


    @OnlyIn(Dist.CLIENT)
    @Override
    public String getName() {
        return this.name;
    }

    @Override
    public float getToughness() {
        return this.toughness;
    }
}
//RegistryHandler
import com.breadbear.petalsprettyhats.PrettyHats;
import com.breadbear.petalsprettyhats.armour.OPHModArmorMaterial;
import com.breadbear.petalsprettyhats.armour.PPHModArmorMaterial;
import com.breadbear.petalsprettyhats.armour.RPHModArmorMaterial;
import com.breadbear.petalsprettyhats.armour.WPHModArmorMaterial;
import com.breadbear.petalsprettyhats.items.ItemBase;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.Item;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;

public class RegistryHandler {

    public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, PrettyHats.MOD_ID);

    public static void init() {
        ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus());
    }


    // Items
    public static final RegistryObject<Item> RED_TULIP_HAT = ITEMS.register("red_tulip_hat", ItemBase::new);

    // Armour
    public static final RegistryObject<ArmorItem> RED_TULIP_POT_HAT = ITEMS.register("red_tulip_pot_hat", () ->
            new ArmorItem(RPHModArmorMaterial.RED_TULIP, EquipmentSlotType.HEAD, new Item.Properties().group(PrettyHats.TAB)));

    public static final RegistryObject<ArmorItem> WHITE_TULIP_POT_HAT = ITEMS.register("white_tulip_pot_hat", () ->
            new ArmorItem(WPHModArmorMaterial.WHITE_TULIP, EquipmentSlotType.HEAD, new Item.Properties().group(PrettyHats.TAB)));

    public static final RegistryObject<ArmorItem> ORANGE_TULIP_POT_HAT = ITEMS.register("orange_tulip_pot_hat", () ->
            new ArmorItem(OPHModArmorMaterial.ORANGE_TULIP, EquipmentSlotType.HEAD, new Item.Properties().group(PrettyHats.TAB)));

    public static final RegistryObject<ArmorItem> PINK_TULIP_POT_HAT = ITEMS.register("pink_tulip_pot_hat", () ->
            new ArmorItem(PPHModArmorMaterial.PINK_TULIP, EquipmentSlotType.HEAD, new Item.Properties().group(PrettyHats.TAB)));
}

sorry if this isnt  up to scratch this is my first time asking for support here sorry for the big delay also

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Ligadewa138 telah menjadi pilihan utama bagi para pecinta perjudian daring di Thailand yang mencari pengalaman bermain slot yang unggul dan mengasyikkan. Dengan koleksi permainan slot yang menakjubkan dan reputasi yang kokoh, Ligadewa138 menawarkan pengalaman bermain yang tak tertandingi bagi para pemainnya. Dalam panduan ini, kami akan menjelaskan mengapa Ligadewa138 dianggap sebagai situs slot terbaik di Thailand dengan jaminan maxwin. 1. Koleksi Permainan Slot yang Luas dan Beragam Ligadewa138 menawarkan koleksi permainan slot yang luas dan beragam dengan berbagai tema yang menarik. Dari slot klasik hingga slot modern dengan fitur-fitur canggih, pemain dapat menemukan berbagai pilihan permainan yang sesuai dengan selera dan preferensi mereka. Kualitas grafis yang memukau dan efek suara yang realistis menciptakan pengalaman bermain yang mendebarkan dan menghibur. 2. Jaminan Maxwin untuk Kemenangan Besar Salah satu keunggulan Ligadewa138 adalah jaminan maxwin untuk kemenangan besar. Dengan pembayaran maksimal yang ditawarkan, pemain memiliki peluang untuk meraih kemenangan besar dan mengubah hidup mereka dalam sekejap. Fitur ini menjadikan Ligadewa138 sebagai pilihan utama bagi para pemain yang mencari peluang untuk meraih jackpot besar. 3. Bonus dan Promosi Menguntungkan Ligadewa138 sering menawarkan berbagai bonus dan promosi yang menguntungkan kepada para pemainnya. Mulai dari bonus selamat datang hingga bonus setoran dan putaran gratis, pemain dapat menikmati berbagai penawaran yang meningkatkan peluang mereka untuk meraih kemenangan besar. Program loyalitas yang murah hati juga memberi kesempatan kepada pemain untuk mendapatkan hadiah eksklusif dan manfaat tambahan. 4. Layanan Pelanggan yang Profesional dan Responsif Tim dukungan pelanggan Ligadewa138 terdiri dari para profesional yang ramah dan berpengetahuan luas. Mereka siap membantu pemain dengan segala pertanyaan atau masalah yang mereka hadapi, baik melalui obrolan langsung, email, atau telepon. Dengan layanan pelanggan yang tersedia 24/7, pemain dapat merasa tenang karena bantuan selalu tersedia jika diperlukan. 5. Keamanan dan Keadilan Terjamin Ligadewa138 mengutamakan keamanan dan keadilan dalam setiap aspek permainan. Situs ini dilengkapi dengan teknologi enkripsi tingkat tinggi untuk melindungi informasi pribadi dan keuangan pemain. Selain itu, semua permainan dijamin adil dan tidak dimanipulasi, sehingga pemain dapat bermain dengan keyakinan penuh bahwa mereka memiliki peluang yang sama untuk meraih kemenangan. Dengan kombinasi koleksi permainan yang luas, jaminan maxwin untuk kemenangan besar, bonus yang menguntungkan, layanan pelanggan yang profesional, dan keamanan serta keadilan terjamin, tidak heran jika Ligadewa138 dianggap sebagai situs slot terbaik di Thailand. Jadi, jangan ragu untuk bergabung dan nikmati pengalaman bermain yang tak tertandingi hanya di Ligadewa138!
    • Ligadewa138 telah menjadi tujuan utama bagi para pecinta perjudian daring di Indonesia yang mencari pengalaman bermain slot yang mengasyikkan dan menguntungkan. Dikenal dengan koleksi permainan slot yang mengagumkan dan kemudahan transaksi menggunakan bank BNI, Ligadewa138 menjadi pilihan utama bagi pemain yang mencari pengalaman bermain yang tak terlupakan. Dalam panduan ini, kami akan menjelaskan mengapa Ligadewa138 dianggap sebagai situs slot BNI gacor maxwin terus. 1. Koleksi Permainan Slot yang Luar Biasa Ligadewa138 menawarkan koleksi permainan slot yang luas dengan berbagai tema dan fitur menarik. Dari slot klasik hingga slot progresif dengan jackpot besar, pemain dapat menemukan berbagai pilihan permainan yang sesuai dengan selera dan preferensi mereka. Kualitas grafis yang memukau dan efek suara yang realistis menciptakan pengalaman bermain yang mendebarkan dan menghibur. 2. Transaksi Menggunakan Bank BNI yang Mudah dan Cepat Salah satu keunggulan utama Ligadewa138 adalah kemudahan dalam melakukan transaksi menggunakan bank BNI. Pemain dapat melakukan deposit dan penarikan dengan cepat dan aman melalui layanan perbankan online BNI. Prosesnya sederhana dan mudah dipahami, sehingga pemain dapat fokus pada permainan tanpa harus khawatir tentang masalah transaksi. 3. Bonus dan Promosi Menggiurkan Ligadewa138 sering menawarkan berbagai bonus dan promosi yang menggiurkan kepada para pemainnya. Mulai dari bonus selamat datang hingga bonus setoran dan putaran gratis, pemain dapat menikmati berbagai penawaran yang meningkatkan peluang mereka untuk meraih kemenangan besar. Program loyalitas yang murah hati juga memberi kesempatan kepada pemain untuk mendapatkan hadiah eksklusif dan manfaat tambahan. 4. Layanan Pelanggan yang Profesional dan Responsif Tim dukungan pelanggan Ligadewa138 terdiri dari para profesional yang ramah dan berpengetahuan luas. Mereka siap membantu pemain dengan segala pertanyaan atau masalah yang mereka hadapi, baik melalui obrolan langsung, email, atau telepon. Dengan layanan pelanggan yang tersedia 24/7, pemain dapat merasa tenang karena bantuan selalu tersedia jika diperlukan. 5. Pengalaman Bermain yang Aman dan Adil Ligadewa138 mengutamakan keamanan dan keadilan dalam setiap aspek permainan. Situs ini dilengkapi dengan teknologi enkripsi tingkat tinggi untuk melindungi informasi pribadi dan keuangan pemain. Selain itu, semua permainan dijamin adil dan tidak dimanipulasi, sehingga pemain dapat bermain dengan keyakinan penuh bahwa mereka memiliki peluang yang sama untuk meraih kemenangan. Dengan kombinasi koleksi permainan yang luar biasa, kemudahan transaksi menggunakan bank BNI, bonus yang menggiurkan, layanan pelanggan yang profesional, dan pengalaman bermain yang aman dan adil, tidak heran jika Ligadewa138 dianggap sebagai situs slot BNI gacor maxwin terus.
    • Dikenal dengan jenis permainan yang populer adalah slot 0nline. Dalam dunia slot online, terdapat beberapa server yang dikenal memiliki tingkat kemenangan yang tinggi, salah satunya adalah server Kamboja. Di server ini, terdapat seorang pemain yang dikenal dengan sebutan "Abang Gac0r", yang memiliki reputasi sebagai pemain yang sering menang besar. >> DAFTAR SEKARANG DISINI << Slot Server THAILAND - Abang Gacor dikenal sebagai pemain slot online yang sangat berpengalaman dan memiliki keberuntungan yang luar biasa. Dia sering kali berhasil memenangkan jackpot dan hadiah besar dalam permainan slot online. Banyak pemain lain yang mengagumi kemampuannya dalam bermain slot online di server THAILAND ini. Slot Gac0r Resmi - Selain itu, Abang Gacor juga sering memanfaatkan promo dan bonus yang ditawarkan oleh situs slot online. Dengan memanfaatkan promo dan bonus ini, dia dapat meningkatkan peluangnya untuk menang tanpa harus mengeluarkan banyak modal. Bocoran Pola Bettlng Olympuss Sebagai hidangan penutup yang manis untuk bahasan tentang teknik bermain ini, akan memberikan bocoran OLYMPUSS. Daftar bocoran pola ini berasal dari rekomendasi yang batten sering beredar di komunitas pecinta kami. Pola gacornya adalah sebagai berikut: Turbo ❌ – Auto Circuit 20 Turbo ❌ – Auto Circuit 30 Turbo ❌ – Auto Circuit 10 Turbo ✅ – Auto Circuit 50 Turbo ✅ – Auto Circuit 20 Turbo ✅ – Auto Circuit 20 BUY SPIN SESUAIKAN BET Bet: 400 – 2000 Bet: 4000 - 8000 Game Gac0r Olympuss Means diketahui punya jam panas tergacor antara pukul 06:10 pagi hingga pukul 10:15 pagi. Disclaimer, bahwa pola dan jam gacor yang kami bagikan tidak menjamin 100% kemenangan terbaik. Namun layak untuk dicoba karena pola tersebut berasal dari riwayat taruhan yang telah menghasilkan maxwin besar.
    • Jadikan Sakura38 Sebagai Tempat Anda Meraih Kemenangan Besar! Dengan Daftar Link Slot Minimal Deposit 1000 Dijamin Menang Bergabunglah Sekarang Dan Rasakan Pengalaman Berjudi Yang Mengasyikkan Serta Peluang Menang Yang Tinggi  
    • Hello, for educational purpose I am trying to port a mod from 1.20.1 to 1.20.2+ but I can't understand how the new networking system works. I manage to get through it for the most part, but I'm stuck on how to register packets. The previous method was: INSTANCE.registerMessage(id++, CPExecuteSkill.class, CPExecuteSkill::toBytes, CPExecuteSkill::fromBytes, CPExecuteSkill::handle); with instance being of type SimpleChannel.  (The forge document is not up to date for this part unfortunatly) Any help or clear documentation would be welcome.
  • Topics

×
×
  • Create New...

Important Information

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