Jello mob

This commit is contained in:
paulevsGitch 2020-12-06 17:11:02 +03:00
parent 9a4bfa1698
commit d37e55b101
15 changed files with 295 additions and 25 deletions

View file

@ -15,6 +15,7 @@ import ru.betterend.BetterEnd;
import ru.betterend.entity.EntityDragonfly;
import ru.betterend.entity.EntityEndFish;
import ru.betterend.entity.EntityEndSlime;
import ru.betterend.entity.EntityJello;
import ru.betterend.entity.EntityShadowWalker;
import ru.betterend.util.MHelper;
import ru.betterend.util.SpawnHelper;
@ -24,11 +25,13 @@ public class EndEntities {
public static final EntityType<EntityEndSlime> END_SLIME = register("end_slime", SpawnGroup.MONSTER, 2F, 2F, EntityEndSlime::new, EntityEndSlime.createMobAttributes(), false, MHelper.color(28, 28, 28), MHelper.color(99, 11, 99));
public static final EntityType<EntityEndFish> END_FISH = register("end_fish", SpawnGroup.WATER_AMBIENT, 0.5F, 0.5F, EntityEndFish::new, EntityEndFish.createMobAttributes(), true, MHelper.color(3, 50, 76), MHelper.color(120, 206, 255));
public static final EntityType<EntityShadowWalker> SHADOW_WALKER = register("shadow_walker", SpawnGroup.MONSTER, 0.6F, 1.95F, EntityShadowWalker::new, EntityShadowWalker.createMobAttributes(), true, MHelper.color(30, 30, 30), MHelper.color(5, 5, 5));
public static final EntityType<EntityJello> JELLO = register("jello", SpawnGroup.WATER_AMBIENT, 0.6F, 1F, EntityJello::new, EntityJello.createMobAttributes(), true, MHelper.color(151, 77, 181), MHelper.color(93, 176, 238));
public static void register() {
SpawnHelper.restrictionLand(END_SLIME, EntityEndSlime::canSpawn);
SpawnHelper.restrictionWater(END_FISH, EntityEndFish::canSpawn);
SpawnHelper.restrictionLand(SHADOW_WALKER, HostileEntity::canSpawnInDark);
SpawnHelper.restrictionWater(JELLO, EntityJello::canSpawn);
}
protected static <T extends Entity> EntityType<T> register(String name, SpawnGroup group, float width, float height, EntityFactory<T> entity) {

View file

@ -1,31 +1,30 @@
package ru.betterend.registry;
import java.util.function.Function;
import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry;
import net.minecraft.client.render.entity.EntityRenderDispatcher;
import net.minecraft.client.render.entity.MobEntityRenderer;
import net.minecraft.entity.EntityType;
import ru.betterend.entity.render.RendererEntityDragonfly;
import ru.betterend.entity.render.RendererEntityEndFish;
import ru.betterend.entity.render.RendererEntityEndSlime;
import ru.betterend.entity.render.RendererEntityJello;
import ru.betterend.entity.render.RendererEntityShadowWalker;
public class EndEntitiesRenders {
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.DRAGONFLY, RendererEntityDragonfly::new);
register(EndEntities.END_SLIME, RendererEntityEndSlime::new);
register(EndEntities.END_FISH, RendererEntityEndFish::new);
register(EndEntities.SHADOW_WALKER, RendererEntityShadowWalker::new);
register(EndEntities.JELLO, RendererEntityJello::new);
}
private static void register(EntityType<?> type, Class<? extends MobEntityRenderer<?, ?>> renderer) {
private static void register(EntityType<?> type, Function<EntityRenderDispatcher, MobEntityRenderer<?, ?>> render) {
EntityRendererRegistry.INSTANCE.register(type, (entityRenderDispatcher, context) -> {
MobEntityRenderer<?, ?> render = null;
try {
render = renderer.getConstructor(entityRenderDispatcher.getClass()).newInstance(entityRenderDispatcher);
} catch (Exception e) {
e.printStackTrace();
}
return render;
return render.apply(entityRenderDispatcher);
});
}
}

View file

@ -41,6 +41,7 @@ import ru.betterend.item.EndPickaxe;
import ru.betterend.item.EndToolMaterial;
import ru.betterend.item.EternalCrystal;
import ru.betterend.item.GuideBook;
import ru.betterend.item.ItemSpawnEgg;
import ru.betterend.item.PatternedItem;
import ru.betterend.tab.CreativeTabs;
import ru.betterend.util.TagHelper;
@ -157,7 +158,7 @@ public class EndItems {
}
public static Item registerEgg(String name, EntityType<?> type, int background, int dots) {
SpawnEggItem item = new SpawnEggItem(type, background, dots, makeItemSettings());
SpawnEggItem item = new ItemSpawnEgg(type, background, dots, makeItemSettings());
ItemDispenserBehavior behavior = new ItemDispenserBehavior() {
public ItemStack dispenseSilently(BlockPointer pointer, ItemStack stack) {
Direction direction = pointer.getBlockState().get(DispenserBlock.FACING);