This commit is contained in:
paulevsGitch 2020-10-05 02:20:56 +03:00
parent e7a6bdaa93
commit 4578130799
15 changed files with 308 additions and 44 deletions

View file

@ -0,0 +1,31 @@
package ru.betterend.registry;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityDimensions;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.EntityType.EntityFactory;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.SpawnGroup;
import net.minecraft.entity.attribute.DefaultAttributeContainer.Builder;
import net.minecraft.util.registry.Registry;
import ru.betterend.BetterEnd;
import ru.betterend.entity.EntityDragonfly;
public class EntityRegistry {
public static final EntityType<EntityDragonfly> DRAGONFLY = register("dragonfly", SpawnGroup.CREATURE, 0.5F, 0.25F, EntityDragonfly::new, EntityDragonfly.createMobAttributes());
public static void register() {}
protected static <T extends Entity> EntityType<T> register(String name, SpawnGroup group, float width, float height, EntityFactory<T> entity) {
EntityType<T> type = Registry.register(Registry.ENTITY_TYPE, BetterEnd.makeID(name), FabricEntityTypeBuilder.<T>create(group, entity).dimensions(EntityDimensions.fixed(width, height)).build());
return type;
}
private static <T extends LivingEntity> EntityType<T> register(String name, SpawnGroup group, float width, float height, EntityFactory<T> entity, Builder attributes) {
EntityType<T> type = Registry.register(Registry.ENTITY_TYPE, BetterEnd.makeID(name), FabricEntityTypeBuilder.<T>create(group, entity).dimensions(EntityDimensions.fixed(width, height)).build());
FabricDefaultAttributeRegistry.register(type, attributes);
return type;
}
}

View file

@ -0,0 +1,25 @@
package ru.betterend.registry;
import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry;
import net.minecraft.client.render.entity.MobEntityRenderer;
import net.minecraft.entity.EntityType;
import ru.betterend.entity.render.RendererEntityDragonfly;
public class EntityRenderRegistry {
public static void register() {
register(EntityRegistry.DRAGONFLY, RendererEntityDragonfly.class);
}
private static void register(EntityType<?> type, Class<? extends MobEntityRenderer<?, ?>> renderer) {
EntityRendererRegistry.INSTANCE.register(type, (entityRenderDispatcher, context) -> {
MobEntityRenderer<?, ?> render = null;
try {
render = renderer.getConstructor(entityRenderDispatcher.getClass()).newInstance(entityRenderDispatcher);
} catch (Exception e) {
e.printStackTrace();
}
return render;
});
}
}

View file

@ -6,10 +6,20 @@ import ru.betterend.BetterEnd;
public class SoundsRegistry
{
// Music
public static final SoundEvent MUSIC_FOGGY_MUSHROOMLAND = registerMusic("foggy_mushroomland");
// Ambient
public static final SoundEvent AMBIENT_FOGGY_MUSHROOMLAND = registerAmbient("foggy_mushroomland");
public static void register() {}
private static SoundEvent registerMusic(String id)
{
id = "betterend.music." + id;
return Registry.register(Registry.SOUND_EVENT, id, new SoundEvent(BetterEnd.makeID(id)));
}
private static SoundEvent registerAmbient(String id)
{
id = "betterend.ambient." + id;