update mappings, fix

This commit is contained in:
Adrian Siekierka 2018-12-15 22:09:30 +01:00
parent 9818bdc49c
commit 686cba9c1b
7 changed files with 43 additions and 18 deletions
build.gradle
src/main/java/net/fabricmc/fabric

View file

@ -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"
}

View file

@ -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;

View file

@ -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() {

View file

@ -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);
}
};

View file

@ -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;
}
}

View file

@ -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()));
}
}

View file

@ -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;
}
}