diff --git a/src/main/java/ru/betterend/config/Configs.java b/src/main/java/ru/betterend/config/Configs.java index 09fcca40..37019a83 100644 --- a/src/main/java/ru/betterend/config/Configs.java +++ b/src/main/java/ru/betterend/config/Configs.java @@ -1,19 +1,23 @@ package ru.betterend.config; public class Configs { - public static final IdConfig ITEM_CONFIG = new IdConfig("items", (item, category) -> { - return new ConfigKey(item.getNamespace(), category, item.getPath()); + public static final IdConfig ITEM_CONFIG = new IdConfig("items", (itemId, category) -> { + return new ConfigKey(itemId.getNamespace(), category, itemId.getPath()); }); - public static final IdConfig BLOCK_CONFIG = new IdConfig("blocks", (block, category) -> { - return new ConfigKey(block.getNamespace(), category, block.getPath()); + public static final IdConfig BLOCK_CONFIG = new IdConfig("blocks", (blockId, category) -> { + return new ConfigKey(blockId.getNamespace(), category, blockId.getPath()); }); - public static final IdConfig BIOME_CONFIG = new IdConfig("biomes", (biome, entry) -> { - return new ConfigKey(biome.getNamespace(), biome.getPath(), entry); + public static final IdConfig BIOME_CONFIG = new IdConfig("biomes", (biomeId, entry) -> { + return new ConfigKey(biomeId.getNamespace(), biomeId.getPath(), entry); + }); + public static final IdConfig ENTITY_CONFIG = new IdConfig("entities", (entityId, category) -> { + return new ConfigKey(entityId.getNamespace(), category, entityId.getPath()); }); public static void saveConfigs() { ITEM_CONFIG.saveChanges(); BLOCK_CONFIG.saveChanges(); BIOME_CONFIG.saveChanges(); + ENTITY_CONFIG.saveChanges(); } } diff --git a/src/main/java/ru/betterend/registry/EndEntities.java b/src/main/java/ru/betterend/registry/EndEntities.java index 16924e6d..1201df47 100644 --- a/src/main/java/ru/betterend/registry/EndEntities.java +++ b/src/main/java/ru/betterend/registry/EndEntities.java @@ -9,8 +9,10 @@ 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.Identifier; import net.minecraft.util.registry.Registry; import ru.betterend.BetterEnd; +import ru.betterend.config.Configs; import ru.betterend.entity.EntityCubozoa; import ru.betterend.entity.EntityDragonfly; import ru.betterend.entity.EntityEndFish; @@ -35,14 +37,22 @@ public class EndEntities { } protected static EntityType register(String name, SpawnGroup group, float width, float height, EntityFactory entity) { - EntityType type = Registry.register(Registry.ENTITY_TYPE, BetterEnd.makeID(name), FabricEntityTypeBuilder.create(group, entity).dimensions(EntityDimensions.fixed(width, height)).build()); + Identifier id = BetterEnd.makeID(name); + EntityType type = FabricEntityTypeBuilder.create(group, entity).dimensions(EntityDimensions.fixed(width, height)).build(); + if (Configs.ENTITY_CONFIG.getBoolean(id, "entities", true)) { + return Registry.register(Registry.ENTITY_TYPE, id, type); + } return type; } private static EntityType register(String name, SpawnGroup group, float width, float height, EntityFactory entity, Builder attributes, boolean fixedSize, int eggColor, int dotsColor) { - EntityType type = Registry.register(Registry.ENTITY_TYPE, BetterEnd.makeID(name), FabricEntityTypeBuilder.create(group, entity).dimensions(fixedSize ? EntityDimensions.fixed(width, height) : EntityDimensions.changing(width, height)).build()); - FabricDefaultAttributeRegistry.register(type, attributes); - EndItems.registerEgg("spawn_egg_" + name, type, eggColor, dotsColor); + Identifier id = BetterEnd.makeID(name); + EntityType type = FabricEntityTypeBuilder.create(group, entity).dimensions(fixedSize ? EntityDimensions.fixed(width, height) : EntityDimensions.changing(width, height)).build(); + if (Configs.ENTITY_CONFIG.getBoolean(id, "entities", true)) { + FabricDefaultAttributeRegistry.register(type, attributes); + EndItems.registerEgg("spawn_egg_" + name, type, eggColor, dotsColor); + return Registry.register(Registry.ENTITY_TYPE, BetterEnd.makeID(name), type); + } return type; } }