From 405779bee8499b038c444efb706301a389a8a513 Mon Sep 17 00:00:00 2001 From: o7Moon <0167moon@gmail.com> Date: Fri, 29 Dec 2023 13:48:05 -0600 Subject: [PATCH] vanilla slipperiness from registry --- gradle.properties | 2 +- .../o7moon/openboatutils/OpenBoatUtils.java | 40 +++++++++++++++---- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/gradle.properties b/gradle.properties index 0c29ea1..2b53f78 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G loader_version=0.14.21 # Mod Properties - mod_version = 0.3.1 + mod_version = 0.4 maven_group = dev.o7Moon archives_base_name = OpenBoatUtils diff --git a/src/main/java/dev/o7moon/openboatutils/OpenBoatUtils.java b/src/main/java/dev/o7moon/openboatutils/OpenBoatUtils.java index 45fa9f8..fd268c6 100644 --- a/src/main/java/dev/o7moon/openboatutils/OpenBoatUtils.java +++ b/src/main/java/dev/o7moon/openboatutils/OpenBoatUtils.java @@ -9,7 +9,10 @@ import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.block.Block; import net.minecraft.network.PacketByteBuf; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; import net.minecraft.util.Identifier; @@ -55,14 +58,34 @@ public void onInitialize() { public static boolean waterJumping = false; public static float swimForce = 0.0f; - public static HashMap slipperinessMap = new HashMap<>(){{ + public static HashMap vanillaSlipperinessMap; + + public static HashMap slipperinessMap;/* = new HashMap<>(){{ put("minecraft:slime_block",0.8f); put("minecraft:ice",0.98f); put("minecraft:packed_ice",0.98f); put("minecraft:blue_ice",0.989f); put("minecraft:frosted_ice",0.98f); - }}; + }};*/ + + public static HashMap getVanillaSlipperinessMap() { + if (vanillaSlipperinessMap == null) { + vanillaSlipperinessMap = new HashMap<>(); + for (Block b : Registries.BLOCK.stream().toList()) { + if (b.getSlipperiness() != 0.6){ + vanillaSlipperinessMap.put(Registries.BLOCK.getId(b).toString(), b.getSlipperiness()); + } + } + } + return vanillaSlipperinessMap; + } + public static HashMap getSlipperinessMap() { + if (slipperinessMap == null) { + slipperinessMap = new HashMap<>(getVanillaSlipperinessMap()); + } + return slipperinessMap; + } public static void resetSettings(){ enabled = false; @@ -83,13 +106,14 @@ public static void resetSettings(){ coyoteTime = 0; waterJumping = false; swimForce = 0.0f; - slipperinessMap = new HashMap<>(){{ + slipperinessMap = new HashMap<>(getVanillaSlipperinessMap());/*{{ put("minecraft:slime_block",0.8f); put("minecraft:ice",0.98f); put("minecraft:packed_ice",0.98f); put("minecraft:blue_ice",0.989f); put("minecraft:frosted_ice",0.98f); - }}; + }};*/ + } public static void setStepSize(float stepsize){ @@ -110,11 +134,11 @@ public static void setAllBlocksSlipperiness(float slipperiness){ } static void setBlockSlipperiness(String block, float slipperiness){ - slipperinessMap.put(block, slipperiness); + getSlipperinessMap().put(block, slipperiness); } public static float getBlockSlipperiness(String block){ - if (slipperinessMap.containsKey(block)) return slipperinessMap.get(block); + if (getSlipperinessMap().containsKey(block)) return getSlipperinessMap().get(block); return defaultSlipperiness; } @@ -204,8 +228,8 @@ public static void setSwimForce(float value) { } public static void breakSlimePlease() { enabled = true; - if (slipperinessMap.containsKey("minecraft:slime_block")) { - slipperinessMap.remove("minecraft:slime_block"); + if (getSlipperinessMap().containsKey("minecraft:slime_block")) { + getSlipperinessMap().remove("minecraft:slime_block"); } } }