From 686cba9c1be0067830584b41220972078e90f987 Mon Sep 17 00:00:00 2001 From: Adrian Siekierka <kontakt@asie.pl> Date: Sat, 15 Dec 2018 22:09:30 +0100 Subject: [PATCH] update mappings, fix #24 --- build.gradle | 2 +- .../client/render/ColorProviderRegistry.java | 4 ++-- .../fabric/block/FabricBlockSettings.java | 18 ++++++++++++++++++ .../render/ColorProviderRegistryImpl.java | 8 ++++---- .../fabric/mixin/block/MixinBlockBuilder.java | 7 +++++++ .../mixin/client/render/MixinItemColorMap.java | 14 +++++++------- .../registry/client/MixinItemColorMap.java | 8 ++++---- 7 files changed, 43 insertions(+), 18 deletions(-) diff --git a/build.gradle b/build.gradle index 1fdd0a8de..af80382b4 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,7 @@ minecraft { dependencies { minecraft "com.mojang:minecraft:$mcVersion" - mappings "net.fabricmc:yarn:$mcVersion.9" + mappings "net.fabricmc:yarn:$mcVersion.21" modCompile "net.fabricmc:fabric-loader:0.2.0.68" } diff --git a/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java b/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java index 88e23ffbe..d77488172 100644 --- a/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java +++ b/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java @@ -20,10 +20,10 @@ import net.fabricmc.fabric.impl.client.render.ColorProviderRegistryImpl; import net.minecraft.block.Block; import net.minecraft.client.render.block.BlockColorMapper; import net.minecraft.client.render.item.ItemColorMapper; -import net.minecraft.item.ItemContainer; +import net.minecraft.item.ItemProvider; public interface ColorProviderRegistry<T, Provider> { - ColorProviderRegistry<ItemContainer, ItemColorMapper> ITEM = ColorProviderRegistryImpl.ITEM; + ColorProviderRegistry<ItemProvider, ItemColorMapper> ITEM = ColorProviderRegistryImpl.ITEM; ColorProviderRegistry<Block, BlockColorMapper> BLOCK = ColorProviderRegistryImpl.BLOCK; diff --git a/src/main/java/net/fabricmc/fabric/block/FabricBlockSettings.java b/src/main/java/net/fabricmc/fabric/block/FabricBlockSettings.java index 8e5da693f..112b1e22d 100644 --- a/src/main/java/net/fabricmc/fabric/block/FabricBlockSettings.java +++ b/src/main/java/net/fabricmc/fabric/block/FabricBlockSettings.java @@ -48,6 +48,7 @@ public class FabricBlockSettings { void fabric_setRandomTicks(boolean value); void fabric_setFriction(float value); void fabric_setDropTable(Identifier id); + void fabric_setDynamicBounds(boolean value); } protected final Block.Settings delegate; @@ -74,6 +75,10 @@ public class FabricBlockSettings { return new FabricBlockSettings(material, color); } + public static FabricBlockSettings of(Material material, DyeColor color) { + return new FabricBlockSettings(material, color.getMaterialColor()); + } + public static FabricBlockSettings copy(Block base) { return new FabricBlockSettings(base); } @@ -110,6 +115,10 @@ public class FabricBlockSettings { return this; } + public FabricBlockSettings noCollision() { + return collidable(false); + } + public FabricBlockSettings sounds(BlockSoundGroup group) { castDelegate.fabric_setSoundGroup(group); return this; @@ -141,6 +150,10 @@ public class FabricBlockSettings { return this; } + public FabricBlockSettings breakInstantly() { + return hardness(0.0F); + } + public FabricBlockSettings dropsNothing() { return this.drops(LootTables.EMPTY); } @@ -159,6 +172,11 @@ public class FabricBlockSettings { return this; } + public FabricBlockSettings dynamicBounds() { + castDelegate.fabric_setDynamicBounds(true); + return this; + } + /* BUILDING LOGIC */ public Block.Settings build() { diff --git a/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java b/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java index c635679db..29c62cc39 100644 --- a/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java +++ b/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java @@ -22,7 +22,7 @@ import net.minecraft.client.render.block.BlockColorMap; import net.minecraft.client.render.block.BlockColorMapper; import net.minecraft.client.render.item.ItemColorMap; import net.minecraft.client.render.item.ItemColorMapper; -import net.minecraft.item.ItemContainer; +import net.minecraft.item.ItemProvider; import java.util.IdentityHashMap; import java.util.Map; @@ -35,10 +35,10 @@ public abstract class ColorProviderRegistryImpl<T, Provider, Underlying> impleme } }; - public static final ColorProviderRegistryImpl<ItemContainer, ItemColorMapper, ItemColorMap> ITEM = new ColorProviderRegistryImpl<ItemContainer, ItemColorMapper, ItemColorMap>() { + public static final ColorProviderRegistryImpl<ItemProvider, ItemColorMapper, ItemColorMap> ITEM = new ColorProviderRegistryImpl<ItemProvider, ItemColorMapper, ItemColorMap>() { @Override - void registerUnderlying(ItemColorMap map, ItemColorMapper mapper, ItemContainer block) { - map.method_1708(mapper, block); + void registerUnderlying(ItemColorMap map, ItemColorMapper mapper, ItemProvider block) { + map.register(mapper, block); } }; diff --git a/src/main/java/net/fabricmc/fabric/mixin/block/MixinBlockBuilder.java b/src/main/java/net/fabricmc/fabric/mixin/block/MixinBlockBuilder.java index 85372fa34..e37e72e60 100644 --- a/src/main/java/net/fabricmc/fabric/mixin/block/MixinBlockBuilder.java +++ b/src/main/java/net/fabricmc/fabric/mixin/block/MixinBlockBuilder.java @@ -47,6 +47,8 @@ public class MixinBlockBuilder implements FabricBlockSettings.Delegate { private float friction; @Shadow private Identifier dropTableId; + @Shadow + private boolean dynamicBounds; @Override public void fabric_setMaterialColor(MaterialColor color) { @@ -92,4 +94,9 @@ public class MixinBlockBuilder implements FabricBlockSettings.Delegate { public void fabric_setDropTable(Identifier id) { dropTableId = id; } + + @Override + public void fabric_setDynamicBounds(boolean value) { + dynamicBounds = value; + } } diff --git a/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java b/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java index c52ab756f..f4fbe374d 100644 --- a/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java +++ b/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java @@ -20,7 +20,7 @@ import net.fabricmc.fabric.impl.client.render.ColorProviderRegistryImpl; import net.minecraft.client.render.block.BlockColorMap; import net.minecraft.client.render.item.ItemColorMap; import net.minecraft.client.render.item.ItemColorMapper; -import net.minecraft.item.ItemContainer; +import net.minecraft.item.ItemProvider; import net.minecraft.util.IdList; import net.minecraft.util.registry.Registry; import org.spongepowered.asm.mixin.Final; @@ -31,18 +31,18 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ItemColorMap.class) -public class MixinItemColorMap implements ColorProviderRegistryImpl.ColorMapperHolder<ItemContainer, ItemColorMapper> { +public class MixinItemColorMap implements ColorProviderRegistryImpl.ColorMapperHolder<ItemProvider, ItemColorMapper> { @Shadow @Final - private IdList<ItemColorMapper> field_1996; + private IdList<ItemColorMapper> mappers; - @Inject(method = "method_1706", at = @At("RETURN")) - private static void method_1706(BlockColorMap blockMap, CallbackInfoReturnable<ItemColorMap> info) { + @Inject(method = "create", at = @At("RETURN")) + private static void create(BlockColorMap blockMap, CallbackInfoReturnable<ItemColorMap> info) { ColorProviderRegistryImpl.ITEM.initialize(info.getReturnValue()); } @Override - public ItemColorMapper get(ItemContainer item) { - return field_1996.getInt(Registry.ITEM.getRawId(item.getItem())); + public ItemColorMapper get(ItemProvider item) { + return mappers.getInt(Registry.ITEM.getRawId(item.getItem())); } } diff --git a/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java b/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java index 801d2119a..11263090d 100644 --- a/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java +++ b/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java @@ -33,15 +33,15 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ItemColorMap.class) public class MixinItemColorMap implements IdListUpdater.Container<ItemColorMapper> { @Shadow - private IdList<ItemColorMapper> field_1996; + private IdList<ItemColorMapper> mappers; - @Inject(method = "method_1706", at = @At("RETURN")) - private static void method_1706(BlockColorMap blockMap, CallbackInfoReturnable<ItemColorMap> info) { + @Inject(method = "create", at = @At("RETURN")) + private static void create(BlockColorMap blockMap, CallbackInfoReturnable<ItemColorMap> info) { ((ListenableRegistry) Registry.ITEM).registerListener(new IdListUpdater<Item, ItemColorMapper>((IdListUpdater.Container<ItemColorMapper>) (Object) info.getReturnValue())); } @Override public IdList<ItemColorMapper> getIdListForRegistryUpdating() { - return field_1996; + return mappers; } }