From a71f94a4dbd58d15eae32b1b2dc79349aec1613f Mon Sep 17 00:00:00 2001 From: Justin Parsell Date: Sat, 27 Feb 2021 17:41:59 -0500 Subject: [PATCH] Added mixin for log -> stripped variants --- .../net/parsell/cherry/core/CherryBlocks.java | 12 ++++++++++ .../parsell/cherry/mixin/AxeItemAccessor.java | 22 +++++++++++++++++++ src/main/resources/cherry.mixins.json | 2 +- 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/main/java/net/parsell/cherry/mixin/AxeItemAccessor.java diff --git a/src/main/java/net/parsell/cherry/core/CherryBlocks.java b/src/main/java/net/parsell/cherry/core/CherryBlocks.java index f014cf4..e026f3c 100644 --- a/src/main/java/net/parsell/cherry/core/CherryBlocks.java +++ b/src/main/java/net/parsell/cherry/core/CherryBlocks.java @@ -10,6 +10,11 @@ import net.minecraft.block.PillarBlock; import net.minecraft.item.AxeItem; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; +import net.parsell.cherry.mixin.AxeItemAccessor; + +import java.util.Map; + +import com.google.common.collect.ImmutableMap.Builder; public class CherryBlocks { public static final Block CHERRYLOG = registerPillar("cherry_log", FabricBlockSettings.copyOf(Blocks.OAK_LOG), 5, 5); @@ -44,5 +49,12 @@ public class CherryBlocks { } public static void init(){ + // Register unique logs + Builder STRIPPED_BLOCKS = new Builder(); + AxeItemAccessor.getStrippedLogs().forEach((log, strippedLog) -> { + STRIPPED_BLOCKS.put(log, strippedLog); + }); + STRIPPED_BLOCKS.put(CHERRYLOG, CHERRYLOGSTRIPPED); + AxeItemAccessor.setStrippedLogs(STRIPPED_BLOCKS.build()); } } diff --git a/src/main/java/net/parsell/cherry/mixin/AxeItemAccessor.java b/src/main/java/net/parsell/cherry/mixin/AxeItemAccessor.java new file mode 100644 index 0000000..417e705 --- /dev/null +++ b/src/main/java/net/parsell/cherry/mixin/AxeItemAccessor.java @@ -0,0 +1,22 @@ +package net.parsell.cherry.mixin; + +import java.util.Map; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import net.minecraft.block.Block; +import net.minecraft.item.AxeItem; + +@Mixin(AxeItem.class) +public interface AxeItemAccessor { + @Accessor("STRIPPED_BLOCKS") + public static Map getStrippedLogs(){ + throw new AssertionError(); + } + + @Accessor("STRIPPED_BLOCKS") + public static void setStrippedLogs(Map STRIPPED_BLOCKS){ + throw new AssertionError(); + } +} diff --git a/src/main/resources/cherry.mixins.json b/src/main/resources/cherry.mixins.json index 97abffe..34db0cc 100644 --- a/src/main/resources/cherry.mixins.json +++ b/src/main/resources/cherry.mixins.json @@ -6,7 +6,7 @@ "mixins": [ ], "client": [ - "CherryMixin" + "AxeItemAccessor" ], "injectors": { "defaultRequire": 1