diff --git a/gradle.properties b/gradle.properties index 1bd21c4..86f9edf 100755 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G loader_version=0.11.3 # Mod Properties - mod_version = 0.2.5 + mod_version = 0.2.6 maven_group = eu.midnightdust archives_base_name = midnightlib diff --git a/src/main/java/eu/midnightdust/core/MidnightLibClient.java b/src/main/java/eu/midnightdust/core/MidnightLibClient.java index 145e5e6..7edc302 100755 --- a/src/main/java/eu/midnightdust/core/MidnightLibClient.java +++ b/src/main/java/eu/midnightdust/core/MidnightLibClient.java @@ -10,10 +10,13 @@ import eu.midnightdust.lib.config.MidnightConfig; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityModelLayerRegistry; +import java.util.Calendar; + @SuppressWarnings({"deprecation", "UnstableApiUsage"}) public class MidnightLibClient implements ClientModInitializer { public static final String MOD_ID = "midnightlib"; + public static Event EVENT = Event.NONE; @Override public void onInitializeClient() { @@ -24,8 +27,18 @@ public class MidnightLibClient implements ClientModInitializer { EntityModelLayerRegistry.registerModelLayer(ChristmasHatFeatureRenderer.CHRISTMAS_HAT_MODEL_LAYER, ChristmasHatFeatureRenderer::getTexturedModelData); EntityModelLayerRegistry.registerModelLayer(TinyPotatoFeatureRenderer.TINY_POTATO_MODEL_LAYER, TinyPotatoFeatureRenderer::getTexturedModelData); EntityModelLayerRegistry.registerModelLayer(WitchHatFeatureRenderer.WITCH_HAT_MODEL_LAYER, WitchHatFeatureRenderer::getTexturedModelData); - if (MidnightLibConfig.special_hats) { - HatLoader.init(); - } + if (MidnightLibConfig.special_hats) HatLoader.init(); + if (MidnightLibConfig.event_hats) EVENT = getEvent(); + } + private Event getEvent() { + if (Calendar.getInstance().get(Calendar.MONTH) == Calendar.APRIL && Calendar.getInstance().get(Calendar.DAY_OF_MONTH) <= 4) return Event.EASTER; + if (Calendar.getInstance().get(Calendar.MONTH) == Calendar.OCTOBER && Calendar.getInstance().get(Calendar.DAY_OF_MONTH) >= 30) return Event.HALLOWEEN; + if (Calendar.getInstance().get(Calendar.MONTH) == Calendar.DECEMBER && Calendar.getInstance().get(Calendar.DAY_OF_MONTH) == 10) return Event.FABRIC; + if (Calendar.getInstance().get(Calendar.MONTH) == Calendar.DECEMBER && Calendar.getInstance().get(Calendar.DAY_OF_MONTH) >= 23 && Calendar.getInstance().get(Calendar.DAY_OF_MONTH) <= 26) return Event.CHRISTMAS; + return Event.NONE; + } + + public enum Event { + NONE, EASTER, HALLOWEEN, FABRIC, CHRISTMAS } } diff --git a/src/main/java/eu/midnightdust/hats/bunny/BunnyEarsFeatureRenderer.java b/src/main/java/eu/midnightdust/hats/bunny/BunnyEarsFeatureRenderer.java index 7cecc3e..4006ff8 100755 --- a/src/main/java/eu/midnightdust/hats/bunny/BunnyEarsFeatureRenderer.java +++ b/src/main/java/eu/midnightdust/hats/bunny/BunnyEarsFeatureRenderer.java @@ -6,7 +6,6 @@ import eu.midnightdust.hats.web.HatLoader; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.model.TexturedModelData; -import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; @@ -19,7 +18,6 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; import net.minecraft.util.Identifier; -import java.util.Calendar; import java.util.UUID; @Environment(EnvType.CLIENT) @@ -42,32 +40,24 @@ public class BunnyEarsFeatureRenderer= 23 && Calendar.getInstance().get(Calendar.DAY_OF_MONTH) <= 26) { - if (MidnightLibConfig.event_hats) { - hat_type = CHRISTMAS; - } - else hat_type = DEACTIVATED; - }else { - hat_type = DEACTIVATED; - } - } else { - hat_type = DEACTIVATED; - } + UUID uuid = livingEntity.getUuid(); + Identifier hat_type = getHat(); - if (!(hat_type == DEACTIVATED) && !HatLoader.PLAYER_HATS.containsKey(abstractClientPlayerEntity.getUuid()) && !abstractClientPlayerEntity.getUuid().equals(MOTSCHEN)) { - matrixStack.push(); + if (!(hat_type == DEACTIVATED) && !HatLoader.PLAYER_HATS.containsKey(uuid) && !uuid.equals(MOTSCHEN)) { + matrixStack.push(); - ((ModelWithHead) this.getContextModel()).getHead().rotate(matrixStack); - VertexConsumer vertexConsumer = ItemRenderer.getArmorGlintConsumer(vertexConsumerProvider, RenderLayer.getEntityCutoutNoCull(hat_type), false, false); - this.christmasHat.render(matrixStack, vertexConsumer, i, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F); + ((ModelWithHead) this.getContextModel()).getHead().rotate(matrixStack); + VertexConsumer vertexConsumer = ItemRenderer.getArmorGlintConsumer(vertexConsumerProvider, RenderLayer.getEntityCutoutNoCull(hat_type), false, false); + this.christmasHat.render(matrixStack, vertexConsumer, i, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F); - matrixStack.pop(); - } + matrixStack.pop(); } } + private Identifier getHat() { + if (MidnightLibConfig.event_hats && MidnightLibClient.EVENT.equals(MidnightLibClient.Event.CHRISTMAS)) + return CHRISTMAS; + return DEACTIVATED; + } } diff --git a/src/main/java/eu/midnightdust/hats/tater/TinyPotatoFeatureRenderer.java b/src/main/java/eu/midnightdust/hats/tater/TinyPotatoFeatureRenderer.java index 9fca390..651149c 100755 --- a/src/main/java/eu/midnightdust/hats/tater/TinyPotatoFeatureRenderer.java +++ b/src/main/java/eu/midnightdust/hats/tater/TinyPotatoFeatureRenderer.java @@ -6,7 +6,6 @@ import eu.midnightdust.hats.web.HatLoader; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.model.TexturedModelData; -import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; @@ -22,7 +21,6 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; import net.minecraft.util.Identifier; -import java.util.Calendar; import java.util.UUID; @Environment(EnvType.CLIENT) @@ -45,31 +43,24 @@ public class TinyPotatoFeatureRenderer>(){}.getType(); public static Map PLAYER_HATS; + private static final Gson GSON = new GsonBuilder().create(); + public static void init() { CompletableFuture.supplyAsync(() -> { diff --git a/src/main/java/eu/midnightdust/hats/witch/WitchHatFeatureRenderer.java b/src/main/java/eu/midnightdust/hats/witch/WitchHatFeatureRenderer.java index 736ccfe..3326e78 100755 --- a/src/main/java/eu/midnightdust/hats/witch/WitchHatFeatureRenderer.java +++ b/src/main/java/eu/midnightdust/hats/witch/WitchHatFeatureRenderer.java @@ -6,7 +6,6 @@ import eu.midnightdust.hats.web.HatLoader; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.model.TexturedModelData; -import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; @@ -22,7 +21,6 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; import net.minecraft.util.Identifier; -import java.util.Calendar; import java.util.UUID; @Environment(EnvType.CLIENT) @@ -51,38 +49,32 @@ public class WitchHatFeatureRenderer= 30) { - if (MidnightLibConfig.event_hats) { - hat_type = WITCH; - } - } + if (!(hat_type == DEACTIVATED)) { + matrixStack.push(); - if (!(hat_type == DEACTIVATED)) { - matrixStack.push(); + ((ModelWithHead) this.getContextModel()).getHead().rotate(matrixStack); + VertexConsumer vertexConsumer = ItemRenderer.getArmorGlintConsumer(vertexConsumerProvider, RenderLayer.getEntityCutoutNoCull(hat_type), false, false); + this.witchHat.render(matrixStack, vertexConsumer, i, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F); - ((ModelWithHead) this.getContextModel()).getHead().rotate(matrixStack); - VertexConsumer vertexConsumer = ItemRenderer.getArmorGlintConsumer(vertexConsumerProvider, RenderLayer.getEntityCutoutNoCull(hat_type), false, false); - this.witchHat.render(matrixStack, vertexConsumer, i, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F); - - matrixStack.pop(); - } - } + matrixStack.pop(); } } + private Identifier getHat(UUID uuid) { + if (uuid.equals(MOTSCHEN)) { + return MOTSCHEN_SKIN; + } else if (HatLoader.PLAYER_HATS.containsKey(uuid)) { + if (HatLoader.PLAYER_HATS.get(uuid).getHatType().contains("contributer")) return CONTRIBUTER_SKIN; + else if (HatLoader.PLAYER_HATS.get(uuid).getHatType().contains("friend")) return FRIEND_SKIN; + else if (HatLoader.PLAYER_HATS.get(uuid).getHatType().contains("donator")) return DONATOR_SKIN; + else if (HatLoader.PLAYER_HATS.get(uuid).getHatType().contains("social")) return SOCIAL_SKIN; + else if (HatLoader.PLAYER_HATS.get(uuid).getHatType().contains("pride")) return PRIDE_SKIN; + } else if (MidnightLibClient.EVENT.equals(MidnightLibClient.Event.HALLOWEEN)) { + if (MidnightLibConfig.event_hats) { + return WITCH; + } + } + return DEACTIVATED; + } } diff --git a/src/main/java/eu/midnightdust/hats/witch/WitchHatModel.java b/src/main/java/eu/midnightdust/hats/witch/WitchHatModel.java index 526424e..251c011 100755 --- a/src/main/java/eu/midnightdust/hats/witch/WitchHatModel.java +++ b/src/main/java/eu/midnightdust/hats/witch/WitchHatModel.java @@ -8,23 +8,20 @@ import net.minecraft.entity.LivingEntity; public class WitchHatModel extends SinglePartEntityModel { private final ModelPart headwear; - private final ModelPart bone; - private final ModelPart bone2; - private final ModelPart bone3; public WitchHatModel(ModelPart root) { headwear = root; root.setPivot(5.0F, -9.0F, -5.0F); - bone = headwear.getChild("bone"); + ModelPart bone = headwear.getChild("bone"); bone.setPivot(-8.5F, -0.1F, 1.5F); setRotationAngle(bone, -0.0524F, 0.0F, 0.0349F); - bone2 = bone.getChild("bone2"); + ModelPart bone2 = bone.getChild("bone2"); bone2.setPivot(1.5F, -4.0F, 1.5F); setRotationAngle(bone2, -0.1222F, 0.0F, 0.0698F); - bone3 = bone2.getChild("bone3"); + ModelPart bone3 = bone2.getChild("bone3"); bone3.setPivot(1.5F, -4.0F, 1.5F); setRotationAngle(bone3, -0.2618F, 0.0F, 0.1047F); } diff --git a/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java b/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java index 49f8815..ab576cc 100755 --- a/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java +++ b/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java @@ -1,6 +1,5 @@ package eu.midnightdust.lib.config; -import com.google.common.collect.ImmutableMap; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; import eu.midnightdust.core.config.MidnightLibConfig; diff --git a/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java b/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java index e9a981c..a1baeeb 100755 --- a/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java +++ b/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java @@ -39,9 +39,11 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.regex.Pattern; -/* MidnightConfig v1.0.5 +/* MidnightConfig v1.0.6 Single class config library - feel free to copy! Changelog: + - 1.0.6: + - Abstract & Allow super ticks - 1.0.5: - Custom lang keys - Transparent list background when in game @@ -66,7 +68,7 @@ import java.util.regex.Pattern; * Credits to Minenash */ @SuppressWarnings("unchecked") -public class MidnightConfig { +public abstract class MidnightConfig { public static boolean useTooltipForTitle = true; // Render title as tooltip or as simple text private static final Pattern INTEGER_ONLY = Pattern.compile("(-?[0-9]*)"); @@ -213,6 +215,7 @@ public class MidnightConfig { // Real Time config update // @Override public void tick() { + super.tick(); for (EntryInfo info : entries) try { info.field.set(null, info.value); } catch (IllegalAccessException ignored) {} diff --git a/src/main/resources/assets/midnightlib/icon.png b/src/main/resources/assets/midnightlib/icon.png index b194da5..ddc1a49 100755 Binary files a/src/main/resources/assets/midnightlib/icon.png and b/src/main/resources/assets/midnightlib/icon.png differ diff --git a/src/main/resources/assets/midnightlib/textures/gui/midnightlib_button.png b/src/main/resources/assets/midnightlib/textures/gui/midnightlib_button.png index 8c778ea..349d935 100755 Binary files a/src/main/resources/assets/midnightlib/textures/gui/midnightlib_button.png and b/src/main/resources/assets/midnightlib/textures/gui/midnightlib_button.png differ diff --git a/src/main/resources/assets/midnightlib/textures/hats/christmas.png b/src/main/resources/assets/midnightlib/textures/hats/christmas.png index 07ac65d..7e092c3 100755 Binary files a/src/main/resources/assets/midnightlib/textures/hats/christmas.png and b/src/main/resources/assets/midnightlib/textures/hats/christmas.png differ diff --git a/src/main/resources/assets/midnightlib/textures/hats/donator.png b/src/main/resources/assets/midnightlib/textures/hats/donator.png index 6498afc..ec52883 100755 Binary files a/src/main/resources/assets/midnightlib/textures/hats/donator.png and b/src/main/resources/assets/midnightlib/textures/hats/donator.png differ diff --git a/src/main/resources/assets/midnightlib/textures/hats/friend.png b/src/main/resources/assets/midnightlib/textures/hats/friend.png index 5e6686a..80d4996 100755 Binary files a/src/main/resources/assets/midnightlib/textures/hats/friend.png and b/src/main/resources/assets/midnightlib/textures/hats/friend.png differ diff --git a/src/main/resources/assets/midnightlib/textures/hats/pride.png b/src/main/resources/assets/midnightlib/textures/hats/pride.png index 42df88c..4058af7 100755 Binary files a/src/main/resources/assets/midnightlib/textures/hats/pride.png and b/src/main/resources/assets/midnightlib/textures/hats/pride.png differ diff --git a/src/main/resources/assets/midnightlib/textures/hats/social.png b/src/main/resources/assets/midnightlib/textures/hats/social.png index 9bd9e66..b0a052b 100755 Binary files a/src/main/resources/assets/midnightlib/textures/hats/social.png and b/src/main/resources/assets/midnightlib/textures/hats/social.png differ diff --git a/src/main/resources/assets/midnightlib/textures/hats/tater.png b/src/main/resources/assets/midnightlib/textures/hats/tater.png index fc4f63d..169af8f 100755 Binary files a/src/main/resources/assets/midnightlib/textures/hats/tater.png and b/src/main/resources/assets/midnightlib/textures/hats/tater.png differ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index de56e18..f80b4a1 100755 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -40,7 +40,7 @@ "custom": { "modmenu": { "links": { - "modmenu.discord": "https://discord.gg/jAGnWYHm3r", + "modmenu.discord": "https://discord.midnightdust.eu/", "modmenu.website": "https://www.midnightdust.eu/" }, "badges": [ "library" ]