All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.magistuarmory.client.render.model.Models Maven / Gradle / Ivy

The newest version!
package com.magistuarmory.client.render.model;

import com.magistuarmory.client.render.model.armor.*;
import com.magistuarmory.client.render.model.block.PaviseBlockModel;
import com.magistuarmory.client.render.model.decoration.*;
import com.magistuarmory.client.render.model.item.*;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.animal.horse.Horse;

import static java.util.Map.entry;
import java.util.Map;

@Environment(EnvType.CLIENT)
public class Models
{
    public enum ArmorEnum
    {
        ARMET,
        STECHHELM,
        SALLET,
        MAXIMILIAN_HELMET,
        KETTLEHAT,
        BARBUTE,
        BASCINET,
        GRAND_BASCINET,
        WINGED_HUSSAR_CHESTPLATE,
        ARMOR,
        ARMOR_LEGGINGS,
    }

    public enum ShieldEnum
    {
        HEATER_SHIELD,
	    PAVISE,
        ROUND_SHIELD,
        ELLIPTICAL_SHIELD,
        TARTSCHE,
        RONDACHE,
        KITE_SHIELD,
        BUCKLER,
        TARGET,
        CORRUPTED_ROUND_SHIELD,
    }
    
    public enum ArmorDecorationEnum
    {
        SURCOAT,
        HORNS,
        TORSE_AND_MANTLE,
        CROWN,
        FLOWERCROWN,
        ECRANCHE,
        RONDEL,
        HOOD,
        TOP_DECORATION,
        TOP_DECORATION_2,
        MINICROWN,
        TORSE,
        PLUME_LEFT,
        PLUME_MIDDLE,
        PLUME_RIGHT,
    }

    public static final HumanoidModel ARMET = new HumanoidModel<>(ArmetModel.createModel());
    public static final HumanoidModel STECHHELM = new HumanoidModel<>(StechhelmModel.createModel());
    public static final HumanoidModel SALLET = new HumanoidModel<>(SalletModel.createModel());
    public static final HumanoidModel MAXIMILIAN_HELMET = new HumanoidModel<>(MaximilianHelmetModel.createModel());
    public static final HumanoidModel KETTLEHAT = new HumanoidModel<>(KettlehatModel.createModel());
    public static final HumanoidModel BARBUTE = new HumanoidModel<>(BarbuteModel.createModel());
    public static final HumanoidModel BASCINET = new HumanoidModel<>(BascinetModel.createModel());
    public static final HumanoidModel GRAND_BASCINET = new HumanoidModel<>(GrandBascinetModel.createModel());
    public static final HumanoidModel WINGED_HUSSAR_CHESTPLATE = new HumanoidModel<>(WingedHussarChestplateModel.createModel());

    public static final HumanoidModel ARMOR = new HumanoidModel<>(LayerDefinition.m_171565_(HumanoidModel.m_170681_(new CubeDeformation(1.0F), 0.0F), 64, 32).m_171564_());
    public static final HumanoidModel ARMOR_LEGGINGS = new HumanoidModel<>(LayerDefinition.m_171565_(HumanoidModel.m_170681_(new CubeDeformation(0.5F), 0.0F), 64, 32).m_171564_());

    public static final Map> ARMOR_MAP = Map.ofEntries(
            entry(ArmorEnum.ARMET, ARMET),
            entry(ArmorEnum.STECHHELM, STECHHELM),
            entry(ArmorEnum.SALLET, SALLET),
            entry(ArmorEnum.MAXIMILIAN_HELMET, MAXIMILIAN_HELMET),
            entry(ArmorEnum.KETTLEHAT, KETTLEHAT),
            entry(ArmorEnum.BARBUTE, BARBUTE),
            entry(ArmorEnum.BASCINET, BASCINET),
            entry(ArmorEnum.GRAND_BASCINET, GRAND_BASCINET),
            entry(ArmorEnum.WINGED_HUSSAR_CHESTPLATE, WINGED_HUSSAR_CHESTPLATE),
            entry(ArmorEnum.ARMOR, ARMOR),
            entry(ArmorEnum.ARMOR_LEGGINGS, ARMOR_LEGGINGS)
    );

    public static MedievalShieldModel HEATER_SHIELD = new HeaterShieldModel(HeaterShieldModel.createLayer().m_171564_());
    public static MedievalShieldModel PAVISE = new PaviseModel(PaviseModel.createLayer().m_171564_());
    public static MedievalShieldModel ROUND_SHIELD = new RoundShieldModel(RoundShieldModel.createLayer().m_171564_());
    public static MedievalShieldModel ELLIPTICAL_SHIELD = new EllipticalShieldModel(EllipticalShieldModel.createLayer().m_171564_());
    public static MedievalShieldModel TARTSCHE = new TartscheModel(TartscheModel.createLayer().m_171564_());
    public static MedievalShieldModel RONDACHE = new RondacheModel(RondacheModel.createLayer().m_171564_());
    public static MedievalShieldModel KITE_SHIELD = new KiteShieldModel(KiteShieldModel.createLayer().m_171564_());
    public static MedievalShieldModel BUCKLER = new BucklerModel(BucklerModel.createLayer().m_171564_());
    public static MedievalShieldModel TARGET = new TargeModel(TargeModel.createLayer().m_171564_());
    public static MedievalShieldModel CORRUPTED_ROUND_SHIELD = new CorruptedRoundShieldModel(CorruptedRoundShieldModel.createLayer().m_171564_());

    public static final Map SHIELD_MAP = Map.ofEntries(
            entry(ShieldEnum.HEATER_SHIELD, HEATER_SHIELD),
            entry(ShieldEnum.PAVISE, PAVISE),
            entry(ShieldEnum.ROUND_SHIELD, ROUND_SHIELD),
            entry(ShieldEnum.ELLIPTICAL_SHIELD, ELLIPTICAL_SHIELD),
            entry(ShieldEnum.TARTSCHE, TARTSCHE),
            entry(ShieldEnum.RONDACHE, RONDACHE),
            entry(ShieldEnum.KITE_SHIELD, KITE_SHIELD),
            entry(ShieldEnum.BUCKLER, BUCKLER),
            entry(ShieldEnum.TARGET, TARGET),
            entry(ShieldEnum.CORRUPTED_ROUND_SHIELD, CORRUPTED_ROUND_SHIELD)
    );

    public static class ArmorDecorations
    {
        public final SurcoatModel surcoat;
        public final HornsModel horns;
        public final TorseAndMantleModel torseAndMantle;
        public final CrownModel crown;
        public final FlowercrownModel flowercrown;
        public final EcrancheModel ecranche;
        public final RondelModel rondel;
        public final HoodModel hood;
        public final TopDecorationModel topDecoration;
        public final TopDecoration2Model topDecoration2;
        public final MiniCrownModel minicrown;
        public final TorseModel torse;
        public final PlumeLeftModel plumeLeft;
        public final PlumeMiddleModel plumeMiddle;
        public final PlumeRightModel plumeRight;

        final Map> map;

        public ArmorDecorations()
        {
            this.surcoat = new SurcoatModel<>(SurcoatModel.createLayer().m_171564_());
            this.horns = new HornsModel<>(HornsModel.createLayer().m_171564_());
            this.torseAndMantle = new TorseAndMantleModel<>(TorseAndMantleModel.createLayer().m_171564_());
            this.crown = new CrownModel<>(CrownModel.createLayer().m_171564_());
            this.flowercrown = new FlowercrownModel<>(FlowercrownModel.createLayer().m_171564_());
            this.ecranche = new EcrancheModel<>(EcrancheModel.createLayer().m_171564_());
            this.rondel = new RondelModel<>(RondelModel.createLayer().m_171564_());
            this.hood = new HoodModel<>(HoodModel.createLayer().m_171564_());
            this.topDecoration = new TopDecorationModel<>(TopDecorationModel.createLayer().m_171564_());
            this.topDecoration2 = new TopDecoration2Model<>(TopDecoration2Model.createLayer().m_171564_());
            this.minicrown = new MiniCrownModel<>(MiniCrownModel.createLayer().m_171564_());
            this.torse = new TorseModel<>(TorseModel.createLayer().m_171564_());
            this.plumeLeft = new PlumeLeftModel<>(PlumeLeftModel.createLayer().m_171564_());
            this.plumeMiddle = new PlumeMiddleModel<>(PlumeMiddleModel.createLayer().m_171564_());
            this.plumeRight = new PlumeRightModel<>(PlumeRightModel.createLayer().m_171564_());

            this.map = Map.ofEntries(
                    entry(ArmorDecorationEnum.SURCOAT.toString().toLowerCase(), this.surcoat),
                    entry(ArmorDecorationEnum.HORNS.toString().toLowerCase(), this.horns),
                    entry(ArmorDecorationEnum.TORSE_AND_MANTLE.toString().toLowerCase(), this.torseAndMantle),
                    entry(ArmorDecorationEnum.CROWN.toString().toLowerCase(), this.crown),
                    entry("flowercrown", this.flowercrown),
                    entry(ArmorDecorationEnum.ECRANCHE.toString().toLowerCase(), this.ecranche),
                    entry(ArmorDecorationEnum.RONDEL.toString().toLowerCase(), this.rondel),
                    entry(ArmorDecorationEnum.HOOD.toString().toLowerCase(), this.hood),
                    entry(ArmorDecorationEnum.TORSE.toString().toLowerCase(), this.torse),
                    entry("demon_horns", this.topDecoration2),
                    entry("griffin", this.topDecoration2),
                    entry("feathers", this.topDecoration2),
                    entry(ArmorDecorationEnum.MINICROWN.toString().toLowerCase(), this.minicrown),
                    entry(ArmorDecorationEnum.PLUME_LEFT.toString().toLowerCase(), this.plumeLeft),
                    entry(ArmorDecorationEnum.PLUME_MIDDLE.toString().toLowerCase(), this.plumeMiddle),
                    entry(ArmorDecorationEnum.PLUME_RIGHT.toString().toLowerCase(), this.plumeRight)
            );
        }
        
        public ArmorDecorationModel getModelByName(String name)
        {
            return this.map.getOrDefault(name, this.topDecoration);
        }
    }
    
    public static final CaparisonModel CAPARISON = new CaparisonModel<>(CaparisonModel.createLayer().m_171564_());

    public static final LayerDefinition PAVISE_BLOCK_LAYER = PaviseBlockModel.createLayer();
    public static final PaviseBlockModel PAVISE_BLOCK = new PaviseBlockModel(PAVISE_BLOCK_LAYER.m_171564_());
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy