mirror of
https://github.com/FabricMC/fabric.git
synced 2025-03-22 21:15:23 -04:00
update mappings, fix #24
This commit is contained in:
parent
9818bdc49c
commit
686cba9c1b
7 changed files with 43 additions and 18 deletions
|
@ -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"
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue