Cleanup, update entity render registry

This commit is contained in:
paulevsGitch 2021-08-10 12:15:15 +03:00
parent bc887e8cd7
commit 9c8de4a70a
14 changed files with 32 additions and 91 deletions

View file

@ -127,7 +127,6 @@ import ru.betterend.blocks.UmbrellaTreeClusterEmptyBlock;
import ru.betterend.blocks.UmbrellaTreeMembraneBlock;
import ru.betterend.blocks.UmbrellaTreeSaplingBlock;
import ru.betterend.blocks.VentBubbleColumnBlock;
import ru.betterend.blocks.basis.EndPlantBlock;
import ru.betterend.blocks.basis.EndTerrainBlock;
import ru.betterend.blocks.basis.EndTripleTerrain;
import ru.betterend.blocks.basis.EndUnderwaterWallPlantBlock;

View file

@ -101,9 +101,10 @@ public class EndEntities {
protected static <T extends Entity> EntityType<T> register(String name, MobCategory group, float width, float height, EntityFactory<T> entity) {
ResourceLocation id = BetterEnd.makeID(name);
EntityType<T> type = FabricEntityTypeBuilder.<T>create(group, entity)
.dimensions(EntityDimensions.fixed(width, height))
.build();
EntityType<T> type = FabricEntityTypeBuilder
.<T>create(group, entity)
.dimensions(EntityDimensions.fixed(width, height))
.build();
if (Configs.ENTITY_CONFIG.getBooleanRoot(id.getPath(), true)) {
return Registry.register(Registry.ENTITY_TYPE, id, type);
}
@ -112,12 +113,10 @@ public class EndEntities {
private static <T extends Mob> EntityType<T> register(String name, MobCategory group, float width, float height, EntityFactory<T> entity, Builder attributes, boolean fixedSize, int eggColor, int dotsColor) {
ResourceLocation id = BetterEnd.makeID(name);
EntityType<T> type = FabricEntityTypeBuilder.<T>create(group, entity)
.dimensions(fixedSize ? EntityDimensions.fixed(
width,
height
) : EntityDimensions.scalable(width, height))
.build();
EntityType<T> type = FabricEntityTypeBuilder
.<T>create(group, entity)
.dimensions(fixedSize ? EntityDimensions.fixed(width, height) : EntityDimensions.scalable(width, height))
.build();
if (Configs.ENTITY_CONFIG.getBooleanRoot(id.getPath(), true)) {
FabricDefaultAttributeRegistry.register(type, attributes);
EndItems.registerEndEgg("spawn_egg_" + name, type, eggColor, dotsColor);

View file

@ -3,8 +3,8 @@ package ru.betterend.registry;
import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityModelLayerRegistry;
import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.renderer.entity.EntityRendererProvider.Context;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.EntityType;
import ru.betterend.BetterEnd;
import ru.betterend.entity.model.CubozoaEntityModel;
@ -24,16 +24,17 @@ import ru.betterend.item.model.CrystaliteChestplateModel;
import ru.betterend.item.model.CrystaliteHelmetModel;
import ru.betterend.item.model.CrystaliteLeggingsModel;
import java.util.function.Function;
public class EndEntitiesRenders {
public static final ModelLayerLocation DRAGONFLY_MODEL = registerMain("dragonfly");
public static final ModelLayerLocation END_SLIME_SHELL_MODEL = registerMain("endslime_shell");
public static final ModelLayerLocation END_SLIME_MODEL = registerMain("endslime");
public static final ModelLayerLocation END_FISH_MODEL = registerMain("endfish");
public static final ModelLayerLocation CUBOZOA_MODEL = registerMain("cubozoa");
public static final ModelLayerLocation SILK_MOTH_MODEL = registerMain("silkmoth");
public static final ModelLayerLocation TEST_MODEL = registerMain("test");
//Not sure if this should go to another registry
public static final ModelLayerLocation ARMORED_ELYTRA = registerMain("armored_elytra");
public static final ModelLayerLocation CRYSTALITE_CHESTPLATE = registerMain("crystalite_chestplate");
public static final ModelLayerLocation CRYSTALITE_CHESTPLATE_THIN = registerMain("crystalite_chestplate_thin");
@ -42,51 +43,33 @@ public class EndEntitiesRenders {
public static final ModelLayerLocation CRYSTALITE_BOOTS = registerMain("crystalite_boots");
public static void register() {
register(EndEntities.DRAGONFLY, RendererEntityDragonfly.class);
register(EndEntities.END_SLIME, RendererEntityEndSlime.class);
register(EndEntities.END_FISH, RendererEntityEndFish.class);
register(EndEntities.SHADOW_WALKER, RendererEntityShadowWalker.class);
register(EndEntities.CUBOZOA, RendererEntityCubozoa.class);
register(EndEntities.SILK_MOTH, SilkMothEntityRenderer.class);
register(EndEntities.DRAGONFLY, RendererEntityDragonfly::new);
register(EndEntities.END_SLIME, RendererEntityEndSlime::new);
register(EndEntities.END_FISH, RendererEntityEndFish::new);
register(EndEntities.SHADOW_WALKER, RendererEntityShadowWalker::new);
register(EndEntities.CUBOZOA, RendererEntityCubozoa::new);
register(EndEntities.SILK_MOTH, SilkMothEntityRenderer::new);
EntityModelLayerRegistry.registerModelLayer(DRAGONFLY_MODEL, DragonflyEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(
END_SLIME_SHELL_MODEL,
EndSlimeEntityModel::getShellOnlyTexturedModelData
);
EntityModelLayerRegistry.registerModelLayer(END_SLIME_SHELL_MODEL, EndSlimeEntityModel::getShellOnlyTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(END_SLIME_MODEL, EndSlimeEntityModel::getCompleteTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(END_FISH_MODEL, EndFishEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(CUBOZOA_MODEL, CubozoaEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(SILK_MOTH_MODEL, SilkMothEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(ARMORED_ELYTRA, ArmoredElytraModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(
CRYSTALITE_CHESTPLATE,
CrystaliteChestplateModel::getRegularTexturedModelData
);
EntityModelLayerRegistry.registerModelLayer(
CRYSTALITE_CHESTPLATE_THIN,
CrystaliteChestplateModel::getThinTexturedModelData
);
EntityModelLayerRegistry.registerModelLayer(CRYSTALITE_CHESTPLATE, CrystaliteChestplateModel::getRegularTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(CRYSTALITE_CHESTPLATE_THIN, CrystaliteChestplateModel::getThinTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(CRYSTALITE_HELMET, CrystaliteHelmetModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(CRYSTALITE_LEGGINGS, CrystaliteLeggingsModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(CRYSTALITE_BOOTS, CrystaliteBootsModel::getTexturedModelData);
}
private static void register(EntityType<?> type, Class<? extends MobRenderer<?, ?>> renderer) {
EntityRendererRegistry.INSTANCE.register(type, (context) -> {
MobRenderer render = null;
try {
render = renderer.getConstructor(context.getClass()).newInstance(context);
}
catch (Exception e) {
e.printStackTrace();
}
return render;
});
private static void register(EntityType<?> type, Function<Context, MobRenderer> renderer) {
EntityRendererRegistry.INSTANCE.register(type, (context) -> renderer.apply(context));
}
private static ModelLayerLocation registerMain(String id) {
return new ModelLayerLocation(new ResourceLocation(BetterEnd.MOD_ID, id), "main");
return new ModelLayerLocation(BetterEnd.makeID(id), "main");
}
}