From 3c477745e46923cb367b9e3ad341067f6208fe6e Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 12 Jul 2019 17:06:03 +0200 Subject: [PATCH] Removed the PonySettings enum and separate the ModRenderers enum from the config --- .../com/minelittlepony/client/HorseCam.java | 3 +- .../client/PonyRenderManager.java | 7 +- .../client/gui/GuiPonySettings.java | 12 +- .../client/model/components/PonySnout.java | 4 +- .../client/model/races/PlayerModels.java | 3 + .../client/render/LevitatingItemRenderer.java | 3 +- .../client/render/RenderPony.java | 4 +- .../client/render/entities/MobRenderers.java | 122 ++++++++---------- .../tileentities/skull/PonySkullRenderer.java | 3 +- .../client/settings/ClientPonyConfig.java | 2 +- .../com/minelittlepony/pony/meta/Size.java | 7 +- .../minelittlepony/settings/PonyConfig.java | 16 ++- .../minelittlepony/settings/PonySettings.java | 28 ---- 13 files changed, 83 insertions(+), 131 deletions(-) delete mode 100644 src/main/java/com/minelittlepony/settings/PonySettings.java diff --git a/src/main/java/com/minelittlepony/client/HorseCam.java b/src/main/java/com/minelittlepony/client/HorseCam.java index 627dcd2e..442f19aa 100644 --- a/src/main/java/com/minelittlepony/client/HorseCam.java +++ b/src/main/java/com/minelittlepony/client/HorseCam.java @@ -6,7 +6,6 @@ import net.minecraft.util.hit.HitResult; import net.minecraft.util.math.Vec3d; import com.minelittlepony.pony.IPony; -import com.minelittlepony.settings.PonySettings; public class HorseCam { /** @@ -14,7 +13,7 @@ public class HorseCam { */ public static float transformCameraAngle(float pitch) { - if (!PonySettings.FILLYCAM.get()) { + if (!MineLittlePony.getInstance().getConfig().fillycam.get()) { return pitch; } diff --git a/src/main/java/com/minelittlepony/client/PonyRenderManager.java b/src/main/java/com/minelittlepony/client/PonyRenderManager.java index 709991fd..490ef59f 100644 --- a/src/main/java/com/minelittlepony/client/PonyRenderManager.java +++ b/src/main/java/com/minelittlepony/client/PonyRenderManager.java @@ -46,12 +46,7 @@ public class PonyRenderManager { * Registers all new player skin types. (currently only pony and slimpony). */ public void initialiseRenderers(EntityRenderDispatcher manager) { - PlayerModels[] models = PlayerModels.values(); - - for (int i = 1; i < models.length; i++) { - registerPlayerSkin(manager, models[i]); - } - + PlayerModels.registry.forEach(i -> registerPlayerSkin(manager, i)); MobRenderers.registry.forEach(i -> i.apply(this)); } diff --git a/src/main/java/com/minelittlepony/client/gui/GuiPonySettings.java b/src/main/java/com/minelittlepony/client/gui/GuiPonySettings.java index 7ac904f0..152bb21b 100644 --- a/src/main/java/com/minelittlepony/client/gui/GuiPonySettings.java +++ b/src/main/java/com/minelittlepony/client/gui/GuiPonySettings.java @@ -14,8 +14,8 @@ import com.minelittlepony.common.client.gui.element.EnumSlider; import com.minelittlepony.common.client.gui.element.Label; import com.minelittlepony.common.client.gui.element.Slider; import com.minelittlepony.common.client.gui.element.Toggle; +import com.minelittlepony.common.util.settings.Setting; import com.minelittlepony.settings.PonyLevel; -import com.minelittlepony.settings.PonySettings; /** * In-Game options menu. @@ -54,6 +54,7 @@ public class GuiPonySettings extends GameGui { content.init(this::rebuildContent); } + @SuppressWarnings("unchecked") private void rebuildContent() { content.padding.left = 10; @@ -96,9 +97,10 @@ public class GuiPonySettings extends GameGui { row += 20; content.addButton(new Label(LEFT, row)).getStyle().setText(OPTIONS_PREFIX + "options"); - for (PonySettings i : PonySettings.values()) { - content.addButton(new Toggle(LEFT, row += 20, i.get())) - .onChange(i) + + for (Setting i : MineLittlePony.getInstance().getConfig().getByCategory("settings")) { + content.addButton(new Toggle(LEFT, row += 20, ((Setting)i).get())) + .onChange((Setting)i) .getStyle().setText(OPTIONS_PREFIX + i.name().toLowerCase()); } @@ -116,7 +118,7 @@ public class GuiPonySettings extends GameGui { content.addButton(new Label(RIGHT, row)).getStyle().setText(MOB_PREFIX + "title"); for (MobRenderers i : MobRenderers.registry) { content.addButton(new Toggle(RIGHT, row += 20, i.get())) - .onChange(i) + .onChange(i::set) .getStyle().setText(MOB_PREFIX + i.name().toLowerCase()); } } diff --git a/src/main/java/com/minelittlepony/client/model/components/PonySnout.java b/src/main/java/com/minelittlepony/client/model/components/PonySnout.java index 25bacac3..ea1beff1 100644 --- a/src/main/java/com/minelittlepony/client/model/components/PonySnout.java +++ b/src/main/java/com/minelittlepony/client/model/components/PonySnout.java @@ -3,10 +3,10 @@ package com.minelittlepony.client.model.components; import net.minecraft.client.model.Cuboid; import net.minecraft.client.model.Model; +import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.util.render.plane.PlaneRenderer; import com.minelittlepony.model.ICapitated; import com.minelittlepony.pony.meta.Gender; -import com.minelittlepony.settings.PonySettings; import static com.minelittlepony.model.PonyModelConstants.*; @@ -59,7 +59,7 @@ public class PonySnout { } public void setGender(Gender gender) { - boolean show = !head.hasHeadGear() && !isHidden && PonySettings.SNUZZLES.get(); + boolean show = !head.hasHeadGear() && !isHidden && MineLittlePony.getInstance().getConfig().snuzzles.get(); mare.field_3664 = !(show && gender.isMare()); stallion.field_3664 = !(show && gender.isStallion()); diff --git a/src/main/java/com/minelittlepony/client/model/races/PlayerModels.java b/src/main/java/com/minelittlepony/client/model/races/PlayerModels.java index 51cd8c1e..230c156f 100644 --- a/src/main/java/com/minelittlepony/client/model/races/PlayerModels.java +++ b/src/main/java/com/minelittlepony/client/model/races/PlayerModels.java @@ -13,6 +13,8 @@ import javax.annotation.Nullable; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.entity.LivingEntity; +import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.function.Function; @@ -35,6 +37,7 @@ public enum PlayerModels { } }; + public static final List registry = Arrays.asList(values()); private static final Map raceModelsMap = Maps.newEnumMap(Race.class); static { diff --git a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java index c5e0fac6..48d1e9e8 100644 --- a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java @@ -5,7 +5,6 @@ import org.lwjgl.opengl.GL14; import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.util.render.Color; import com.minelittlepony.pony.IPony; -import com.minelittlepony.settings.PonySettings; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.AbstractClientPlayerEntity; @@ -80,7 +79,7 @@ public class LevitatingItemRenderer { pushMatrix(); - boolean doMagic = PonySettings.FPSMAGIC.get() && pony.getMetadata().hasMagic(); + boolean doMagic = MineLittlePony.getInstance().getConfig().fpsmagic.get() && pony.getMetadata().hasMagic(); ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer(); diff --git a/src/main/java/com/minelittlepony/client/render/RenderPony.java b/src/main/java/com/minelittlepony/client/render/RenderPony.java index 283519df..5c2d5704 100644 --- a/src/main/java/com/minelittlepony/client/render/RenderPony.java +++ b/src/main/java/com/minelittlepony/client/render/RenderPony.java @@ -1,11 +1,11 @@ package com.minelittlepony.client.render; +import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.PonyRenderManager; import com.minelittlepony.client.model.IPonyModel; import com.minelittlepony.client.model.ModelWrapper; import com.minelittlepony.client.transform.PonyPosture; import com.minelittlepony.pony.IPony; -import com.minelittlepony.settings.PonySettings; import com.minelittlepony.util.math.MathUtil; import com.mojang.blaze3d.platform.GlStateManager; @@ -41,7 +41,7 @@ public class RenderPony & IPony } public VisibleRegion getFrustrum(T entity, VisibleRegion vanilla) { - if (entity.isSleeping() || !PonySettings.FRUSTRUM.get()) { + if (entity.isSleeping() || !MineLittlePony.getInstance().getConfig().frustrum.get()) { return vanilla; } return frustrum.withCamera(entity, vanilla); diff --git a/src/main/java/com/minelittlepony/client/render/entities/MobRenderers.java b/src/main/java/com/minelittlepony/client/render/entities/MobRenderers.java index b6f67203..0beb3796 100644 --- a/src/main/java/com/minelittlepony/client/render/entities/MobRenderers.java +++ b/src/main/java/com/minelittlepony/client/render/entities/MobRenderers.java @@ -1,12 +1,12 @@ package com.minelittlepony.client.render.entities; -import com.google.common.collect.Lists; import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.PonyRenderManager; -import com.minelittlepony.common.util.settings.Config; import com.minelittlepony.common.util.settings.Setting; +import java.util.Arrays; import java.util.List; +import java.util.function.BiConsumer; import net.minecraft.entity.mob.*; import net.minecraft.entity.passive.*; @@ -14,91 +14,71 @@ import net.minecraft.entity.passive.*; /** * Central location where new entity renderers are registered and applied. */ -public enum MobRenderers implements Setting { - VILLAGERS { - @Override - void register(boolean state, PonyRenderManager pony) { - pony.switchRenderer(state, VillagerEntity.class, RenderPonyVillager::new); - pony.switchRenderer(state, WitchEntity.class, RenderPonyWitch::new); - pony.switchRenderer(state, ZombieVillagerEntity.class, RenderPonyZombieVillager::new); - pony.switchRenderer(state, WanderingTraderEntity.class, RenderPonyTrader::new); - pony.switchRenderer(state, PillagerEntity.class, RenderPonyPillager::new); - } - }, - ZOMBIES { - @Override - void register(boolean state, PonyRenderManager pony) { - pony.switchRenderer(state, ZombieEntity.class, RenderPonyZombie::new); - pony.switchRenderer(state, HuskEntity.class, RenderPonyZombie.Husk::new); - pony.switchRenderer(state, GiantEntity.class, RenderPonyZombie.Giant::new); - pony.switchRenderer(state, DrownedEntity.class, RenderPonyZombie.Drowned::new); - } - }, - PIGZOMBIES { - @Override - void register(boolean state, PonyRenderManager pony) { - pony.switchRenderer(state, ZombiePigmanEntity.class, RenderPonyZombie.Pigman::new); - } - }, - SKELETONS { - @Override - void register(boolean state, PonyRenderManager pony) { - pony.switchRenderer(state, SkeletonEntity.class, RenderPonySkeleton::new); - pony.switchRenderer(state, StrayEntity.class, RenderPonySkeleton.Stray::new); - pony.switchRenderer(state, WitherSkeletonEntity.class, RenderPonySkeleton.Wither::new); - } - }, - ILLAGERS { - @Override - void register(boolean state, PonyRenderManager pony) { - pony.switchRenderer(state, VexEntity.class, RenderPonyVex::new); - pony.switchRenderer(state, EvokerEntity.class, RenderPonyIllager.Evoker::new); - pony.switchRenderer(state, VindicatorEntity.class, RenderPonyIllager.Vindicator::new); - pony.switchRenderer(state, IllusionerEntity.class, RenderPonyIllager.Illusionist::new); - } - }, - GUARDIANS { - @Override - void register(boolean state, PonyRenderManager pony) { - pony.switchRenderer(state, GuardianEntity.class, RenderPonyGuardian::new); - pony.switchRenderer(state, ElderGuardianEntity.class, RenderPonyGuardian.Elder::new); - } - }, - ENDERMEN { - @Override - void register(boolean state, PonyRenderManager pony) { - pony.switchRenderer(state, EndermanEntity.class, RenderEnderStallion::new); - } - }; +public enum MobRenderers { + VILLAGERS((state, pony) -> { + pony.switchRenderer(state, VillagerEntity.class, RenderPonyVillager::new); + pony.switchRenderer(state, WitchEntity.class, RenderPonyWitch::new); + pony.switchRenderer(state, ZombieVillagerEntity.class, RenderPonyZombieVillager::new); + pony.switchRenderer(state, WanderingTraderEntity.class, RenderPonyTrader::new); + pony.switchRenderer(state, PillagerEntity.class, RenderPonyPillager::new); + }), + ZOMBIES((state, pony) -> { + pony.switchRenderer(state, ZombieEntity.class, RenderPonyZombie::new); + pony.switchRenderer(state, HuskEntity.class, RenderPonyZombie.Husk::new); + pony.switchRenderer(state, GiantEntity.class, RenderPonyZombie.Giant::new); + pony.switchRenderer(state, DrownedEntity.class, RenderPonyZombie.Drowned::new); + }), + PIGZOMBIES((state, pony) -> { + pony.switchRenderer(state, ZombiePigmanEntity.class, RenderPonyZombie.Pigman::new); + }), + SKELETONS((state, pony) -> { + pony.switchRenderer(state, SkeletonEntity.class, RenderPonySkeleton::new); + pony.switchRenderer(state, StrayEntity.class, RenderPonySkeleton.Stray::new); + pony.switchRenderer(state, WitherSkeletonEntity.class, RenderPonySkeleton.Wither::new); + }), + ILLAGERS((state, pony) -> { + pony.switchRenderer(state, VexEntity.class, RenderPonyVex::new); + pony.switchRenderer(state, EvokerEntity.class, RenderPonyIllager.Evoker::new); + pony.switchRenderer(state, VindicatorEntity.class, RenderPonyIllager.Vindicator::new); + pony.switchRenderer(state, IllusionerEntity.class, RenderPonyIllager.Illusionist::new); + }), + GUARDIANS((state, pony) -> { + pony.switchRenderer(state, GuardianEntity.class, RenderPonyGuardian::new); + pony.switchRenderer(state, ElderGuardianEntity.class, RenderPonyGuardian.Elder::new); + }), + ENDERMEN((state, pony) -> { + pony.switchRenderer(state, EndermanEntity.class, RenderEnderStallion::new); + }); - public static final List registry = Lists.newArrayList(values()); + public static final List registry = Arrays.asList(values()); - @Override - public Boolean getDefault() { - return true; + private final BiConsumer changer; + + MobRenderers(BiConsumer changer) { + this.changer = changer; } - @Override - public Boolean set(Boolean value) { - value = Setting.super.set(value); + public Setting option() { + return MineLittlePony.getInstance().getConfig().get(name().toLowerCase()); + } + + public boolean set(boolean value) { + value = option().set(value); apply(PonyRenderManager.getInstance()); return value; } - @Override - public Config config() { - return MineLittlePony.getInstance().getConfig(); + public boolean get() { + return option().get(); } public void apply(PonyRenderManager pony) { boolean state = get(); - register(state, pony); + changer.accept(state, pony); if (state) { MineLittlePony.logger.info(name() + " are now ponies."); } else { MineLittlePony.logger.info(name() + " are no longer ponies."); } } - - abstract void register(boolean state, PonyRenderManager pony); } \ No newline at end of file diff --git a/src/main/java/com/minelittlepony/client/render/tileentities/skull/PonySkullRenderer.java b/src/main/java/com/minelittlepony/client/render/tileentities/skull/PonySkullRenderer.java index 88592738..f16cb909 100644 --- a/src/main/java/com/minelittlepony/client/render/tileentities/skull/PonySkullRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/tileentities/skull/PonySkullRenderer.java @@ -5,7 +5,6 @@ import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.render.LevitatingItemRenderer; import com.minelittlepony.pony.IPony; import com.minelittlepony.settings.PonyConfig; -import com.minelittlepony.settings.PonySettings; import com.mojang.authlib.GameProfile; import net.fabricmc.fabric.api.client.render.BlockEntityRendererRegistry; @@ -45,7 +44,7 @@ public class PonySkullRenderer extends SkullBlockEntityRenderer { * Original/Existing renderer is stored to a backup variable as a fallback in case of mods. */ public static SkullBlockEntityRenderer resolve() { - if (PonySettings.PONYSKULLS.get()) { + if (MineLittlePony.getInstance().getConfig().ponyskulls.get()) { if (!(INSTANCE instanceof PonySkullRenderer)) { backup = INSTANCE; BlockEntityRendererRegistry.INSTANCE.register(SkullBlockEntity.class, ponyInstance); diff --git a/src/main/java/com/minelittlepony/client/settings/ClientPonyConfig.java b/src/main/java/com/minelittlepony/client/settings/ClientPonyConfig.java index 6b436530..d26ff320 100644 --- a/src/main/java/com/minelittlepony/client/settings/ClientPonyConfig.java +++ b/src/main/java/com/minelittlepony/client/settings/ClientPonyConfig.java @@ -16,7 +16,7 @@ public class ClientPonyConfig extends PonyConfig { public final Setting horseButton = value("horseButton", VisibilityMode.AUTO); public ClientPonyConfig() { - initWith(MobRenderers.values()); + MobRenderers.registry.forEach(r -> value(r.name().toLowerCase(), true)); } @Override diff --git a/src/main/java/com/minelittlepony/pony/meta/Size.java b/src/main/java/com/minelittlepony/pony/meta/Size.java index cbd86d93..b41d928a 100644 --- a/src/main/java/com/minelittlepony/pony/meta/Size.java +++ b/src/main/java/com/minelittlepony/pony/meta/Size.java @@ -2,7 +2,6 @@ package com.minelittlepony.pony.meta; import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.pony.ITriggerPixelMapped; -import com.minelittlepony.settings.PonySettings; public enum Size implements ITriggerPixelMapped { TALL (0x764b53, 0.45f, 1.1F, 1.15F), @@ -37,14 +36,14 @@ public enum Size implements ITriggerPixelMapped { } public float getEyeHeightFactor() { - if (!PonySettings.FILLYCAM.get()) { + if (!MineLittlePony.getInstance().getConfig().fillycam.get()) { return 1; } return camera * MineLittlePony.getInstance().getConfig().getGlobalScaleFactor(); } public float getEyeDistanceFactor() { - if (!PonySettings.FILLYCAM.get()) { + if (!MineLittlePony.getInstance().getConfig().fillycam.get()) { return 1; } return camera * MineLittlePony.getInstance().getConfig().getGlobalScaleFactor(); @@ -62,7 +61,7 @@ public enum Size implements ITriggerPixelMapped { return sz; } - if (this == UNSET || !PonySettings.SIZES.get()) { + if (this == UNSET || !MineLittlePony.getInstance().getConfig().sizes.get()) { return NORMAL; } diff --git a/src/main/java/com/minelittlepony/settings/PonyConfig.java b/src/main/java/com/minelittlepony/settings/PonyConfig.java index 2d8e4cc4..bace3e56 100644 --- a/src/main/java/com/minelittlepony/settings/PonyConfig.java +++ b/src/main/java/com/minelittlepony/settings/PonyConfig.java @@ -17,15 +17,19 @@ public class PonyConfig extends JsonConfig { public final Setting ponyLevel = value("ponylevel", PonyLevel.PONIES); private final Setting scaleFactor = value("globalScaleFactor", 0.9F); + public final Setting sizes = value("settings", "sizes", false); + public final Setting snuzzles = value("settings", "snuzzles", false); + public final Setting fillycam = value("settings", "fillycam", false); + private final Setting showscale = value("settings", "showscale", false); + public final Setting fpsmagic = value("settings", "fpsmagic", false); + public final Setting ponyskulls = value("settings", "ponyskulls", false); + public final Setting frustrum = value("settings", "frustrum", false); + /** * Debug override for pony sizes. */ public final Setting sizeOverride = value("sizeOverride", Size.UNSET); - public PonyConfig() { - initWith(PonySettings.values()); - } - /** * Gets the current PonyLevel. That is the level of ponies you would like to see. * @@ -39,7 +43,7 @@ public class PonyConfig extends JsonConfig { f = Math.round(MathHelper.clamp(f, 0.1F, 3) * 100) / 100F; scaleFactor.set(f); - PonySettings.SHOWSCALE.set(f != 1); + showscale.set(f != 1); return getGlobalScaleFactor(); } @@ -48,6 +52,6 @@ public class PonyConfig extends JsonConfig { * Gets the universal scale factor used to determine how tall ponies are. */ public float getGlobalScaleFactor() { - return PonySettings.SHOWSCALE.get() ? scaleFactor.get() : 1; + return showscale.get() ? scaleFactor.get() : 1; } } diff --git a/src/main/java/com/minelittlepony/settings/PonySettings.java b/src/main/java/com/minelittlepony/settings/PonySettings.java deleted file mode 100644 index 28e5ed2c..00000000 --- a/src/main/java/com/minelittlepony/settings/PonySettings.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.minelittlepony.settings; - -import com.minelittlepony.client.MineLittlePony; -import com.minelittlepony.common.util.settings.Config; -import com.minelittlepony.common.util.settings.Setting; - -/** - * Mod settings. - */ -public enum PonySettings implements Setting { - SIZES, - SNUZZLES, - FILLYCAM, - SHOWSCALE, - FPSMAGIC, - PONYSKULLS, - FRUSTRUM; - - @Override - public Boolean getDefault() { - return true; - } - - @Override - public Config config() { - return MineLittlePony.getInstance().getConfig(); - } -}