mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-11-24 05:47:59 +01:00
Fix item colours and crash when using an item
This commit is contained in:
parent
2620ac5de1
commit
bc1d6f40e6
3 changed files with 7 additions and 11 deletions
|
@ -162,9 +162,9 @@ public interface URenderers {
|
||||||
|
|
||||||
ColorProviderRegistry.BLOCK.register(URenderers::getTintedBlockColor, TintedBlock.REGISTRY.stream().toArray(Block[]::new));
|
ColorProviderRegistry.BLOCK.register(URenderers::getTintedBlockColor, TintedBlock.REGISTRY.stream().toArray(Block[]::new));
|
||||||
ColorProviderRegistry.ITEM.register((stack, i) -> getTintedBlockColor(Block.getBlockFromItem(stack.getItem()).getDefaultState(), null, null, i), TintedBlock.REGISTRY.stream().map(Block::asItem).filter(i -> i != Items.AIR).toArray(Item[]::new));
|
ColorProviderRegistry.ITEM.register((stack, i) -> getTintedBlockColor(Block.getBlockFromItem(stack.getItem()).getDefaultState(), null, null, i), TintedBlock.REGISTRY.stream().map(Block::asItem).filter(i -> i != Items.AIR).toArray(Item[]::new));
|
||||||
ColorProviderRegistry.ITEM.register((stack, i) -> i > 0 ? -1 : DyedColorComponent.getColor(stack, Colors.WHITE), UItems.FRIENDSHIP_BRACELET);
|
ColorProviderRegistry.ITEM.register((stack, i) -> i > 0 ? -1 : DyedColorComponent.getColor(stack, DyedColorComponent.DEFAULT_COLOR), UItems.FRIENDSHIP_BRACELET);
|
||||||
ColorProviderRegistry.ITEM.register((stack, i) -> i > 0 || !EnchantableItem.isEnchanted(stack) ? -1 : EnchantableItem.getSpellKey(stack).getColor(), UItems.GEMSTONE);
|
ColorProviderRegistry.ITEM.register((stack, i) -> i > 0 || !EnchantableItem.isEnchanted(stack) ? Colors.WHITE : EnchantableItem.getSpellKey(stack).getColor() | 0xFF000000, UItems.GEMSTONE);
|
||||||
ColorProviderRegistry.ITEM.register((stack, i) -> i == 1 && EnchantableItem.isEnchanted(stack) ? EnchantableItem.getSpellKey(stack).getColor() : -1, UItems.MAGIC_STAFF);
|
ColorProviderRegistry.ITEM.register((stack, i) -> i == 1 && EnchantableItem.isEnchanted(stack) ? EnchantableItem.getSpellKey(stack).getColor() | 0xFF000000 : Colors.WHITE, UItems.MAGIC_STAFF);
|
||||||
|
|
||||||
BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), UBlocks.TRANSLUCENT_BLOCKS.stream().toArray(Block[]::new));
|
BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), UBlocks.TRANSLUCENT_BLOCKS.stream().toArray(Block[]::new));
|
||||||
BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getTranslucent(), UBlocks.SEMI_TRANSPARENT_BLOCKS.stream().toArray(Block[]::new));
|
BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getTranslucent(), UBlocks.SEMI_TRANSPARENT_BLOCKS.stream().toArray(Block[]::new));
|
||||||
|
|
|
@ -82,8 +82,7 @@ public record DietProfile(
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public FoodComponent getAdjustedFoodComponent(ItemStack stack) {
|
public FoodComponent getAdjustedFoodComponent(ItemStack stack, FoodComponent food) {
|
||||||
var food = stack.get(DataComponentTypes.FOOD);
|
|
||||||
if (this == EMPTY) {
|
if (this == EMPTY) {
|
||||||
return food;
|
return food;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,10 +23,7 @@ public class TransientComponentMap {
|
||||||
private static final BiFunction<ItemStack, ?, ?> DEFAULT = (stack, t) -> t;
|
private static final BiFunction<ItemStack, ?, ?> DEFAULT = (stack, t) -> t;
|
||||||
public static final TransientComponentMap INITIAL = Util.make(new TransientComponentMap(null), map -> {
|
public static final TransientComponentMap INITIAL = Util.make(new TransientComponentMap(null), map -> {
|
||||||
map.set(UDataComponentTypes.DIET_PROFILE, (s, original) -> {
|
map.set(UDataComponentTypes.DIET_PROFILE, (s, original) -> {
|
||||||
if (original != null) {
|
return original != null ? original : ItemStackDuck.of(s).getTransientComponents().getCarrier()
|
||||||
return original;
|
|
||||||
}
|
|
||||||
return ItemStackDuck.of(s).getTransientComponents().getCarrier()
|
|
||||||
.flatMap(Pony::of)
|
.flatMap(Pony::of)
|
||||||
.map(pony -> PonyDiets.getInstance().getDiet(pony))
|
.map(pony -> PonyDiets.getInstance().getDiet(pony))
|
||||||
.orElse(DietProfile.EMPTY);
|
.orElse(DietProfile.EMPTY);
|
||||||
|
@ -34,12 +31,12 @@ public class TransientComponentMap {
|
||||||
map.set(DataComponentTypes.FOOD, (s, originalFood) -> {
|
map.set(DataComponentTypes.FOOD, (s, originalFood) -> {
|
||||||
DietProfile diet = s.get(UDataComponentTypes.DIET_PROFILE);
|
DietProfile diet = s.get(UDataComponentTypes.DIET_PROFILE);
|
||||||
|
|
||||||
if (diet == null) {
|
if (diet == null || diet == DietProfile.EMPTY) {
|
||||||
return originalFood;
|
return originalFood;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (originalFood != null) {
|
if (originalFood != null) {
|
||||||
return diet.getAdjustedFoodComponent(s);
|
return diet.getAdjustedFoodComponent(s, originalFood);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ItemStackDuck.of(s).getTransientComponents().getCarrier()
|
if (ItemStackDuck.of(s).getTransientComponents().getCarrier()
|
||||||
|
|
Loading…
Reference in a new issue