Fix pattern TESR rendering + pattern item color

This commit is contained in:
raoulvdberge
2019-10-15 22:15:29 +02:00
parent 4036926487
commit 4659bcc042
14 changed files with 58 additions and 71 deletions

View File

@@ -5,9 +5,10 @@ import com.raoulvdberge.refinedstorage.container.CrafterContainer;
import com.raoulvdberge.refinedstorage.container.CrafterManagerContainer; import com.raoulvdberge.refinedstorage.container.CrafterManagerContainer;
import com.raoulvdberge.refinedstorage.container.slot.CrafterManagerSlot; import com.raoulvdberge.refinedstorage.container.slot.CrafterManagerSlot;
import com.raoulvdberge.refinedstorage.render.BakedModelOverrideRegistry; import com.raoulvdberge.refinedstorage.render.BakedModelOverrideRegistry;
import com.raoulvdberge.refinedstorage.render.model.baked.DiskDriveBakedModel; import com.raoulvdberge.refinedstorage.render.color.PatternItemColor;
import com.raoulvdberge.refinedstorage.render.model.baked.FullbrightBakedModel; import com.raoulvdberge.refinedstorage.render.model.DiskDriveBakedModel;
import com.raoulvdberge.refinedstorage.render.model.baked.PatternBakedModel; import com.raoulvdberge.refinedstorage.render.model.FullbrightBakedModel;
import com.raoulvdberge.refinedstorage.render.model.PatternBakedModel;
import com.raoulvdberge.refinedstorage.screen.*; import com.raoulvdberge.refinedstorage.screen.*;
import com.raoulvdberge.refinedstorage.screen.factory.GridScreenFactory; import com.raoulvdberge.refinedstorage.screen.factory.GridScreenFactory;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@@ -122,6 +123,8 @@ public class ClientSetup {
ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR); ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR);
ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX); ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX);
e.getMinecraftSupplier().get().getItemColors().register(new PatternItemColor(), RSItems.PATTERN);
} }
@SubscribeEvent @SubscribeEvent

View File

@@ -6,6 +6,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
import com.raoulvdberge.refinedstorage.render.tesr.PatternItemStackTileEntityRenderer;
import com.raoulvdberge.refinedstorage.util.RenderUtils; import com.raoulvdberge.refinedstorage.util.RenderUtils;
import net.minecraft.client.gui.screen.inventory.ContainerScreen; import net.minecraft.client.gui.screen.inventory.ContainerScreen;
import net.minecraft.client.util.ITooltipFlag; import net.minecraft.client.util.ITooltipFlag;
@@ -44,22 +45,11 @@ public class PatternItem extends Item implements ICraftingPatternProvider {
private static final int VERSION = 1; private static final int VERSION = 1;
public PatternItem() { public PatternItem() {
super(new Item.Properties().group(RS.MAIN_GROUP)); super(new Item.Properties().group(RS.MAIN_GROUP).setTEISR(() -> () -> new PatternItemStackTileEntityRenderer()));
this.setRegistryName(RS.ID, "pattern"); this.setRegistryName(RS.ID, "pattern");
} }
/* TODO - Pattern rendering
@Override
@SideOnly(Side.CLIENT)
public void registerModels(IModelRegistration modelRegistration) {
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
modelRegistration.addBakedModelOverride(info.getId(), BakedModelPattern::new);
modelRegistration.addItemColor(this, new ItemColorPattern());
}*/
public static CraftingPattern fromCache(World world, ItemStack stack) { public static CraftingPattern fromCache(World world, ItemStack stack) {
if (!CACHE.containsKey(stack)) { if (!CACHE.containsKey(stack)) {
CACHE.put(stack, new CraftingPattern(world, null, stack)); CACHE.put(stack, new CraftingPattern(world, null, stack));

View File

@@ -50,25 +50,13 @@ public class ProxyClient extends ProxyCommon implements IModelRegistration {
} }
/*private List<Pair<Item, IItemColor>> itemColors = new LinkedList<>(); /*
@Override @Override
public void preInit(FMLPreInitializationEvent e) { public void preInit(FMLPreInitializationEvent e) {
super.preInit(e); super.preInit(e);
MinecraftForge.EVENT_BUS.register(new BlockHighlightListener()); MinecraftForge.EVENT_BUS.register(new BlockHighlightListener());
MinecraftForge.EVENT_BUS.register(new KeyInputListener()); MinecraftForge.EVENT_BUS.register(new KeyInputListener());
RSItems.PATTERN.setTileEntityItemStackRenderer(new TileEntityItemStackRendererPattern());
}
@Override
public void init(FMLInitializationEvent e) {
super.init(e);
RSKeyBindings.init();
itemColors.forEach(p -> Minecraft.getMinecraft().getItemColors().registerItemColorHandler(p.getRight(), p.getKey()));
} }
@Override @Override

View File

@@ -1,22 +0,0 @@
package com.raoulvdberge.refinedstorage.render.color;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.item.ItemStack;
public class ItemColorPattern implements IItemColor {
@Override
public int getColor(ItemStack stack, int tintIndex) {
// TODO CraftingPattern pattern = ItemPattern.getPatternFromCache(Minecraft.getInstance().world, stack);
/*
if (BakedModelPattern.canDisplayOutput(stack, pattern)) {
int color = Minecraft.getInstance().getItemColors().getColor(pattern.getOutputs().get(0), tintIndex);
if (color != -1) {
return color;
}
}*/
return 0xFFFFFF;
}
}

View File

@@ -0,0 +1,25 @@
package com.raoulvdberge.refinedstorage.render.color;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
import com.raoulvdberge.refinedstorage.item.PatternItem;
import com.raoulvdberge.refinedstorage.render.model.PatternBakedModel;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.item.ItemStack;
public class PatternItemColor implements IItemColor {
@Override
public int getColor(ItemStack stack, int tintIndex) {
CraftingPattern pattern = PatternItem.fromCache(Minecraft.getInstance().world, stack);
if (PatternBakedModel.canDisplayOutput(stack, pattern)) {
int color = Minecraft.getInstance().getItemColors().getColor(pattern.getOutputs().get(0), tintIndex);
if (color != -1) {
return color;
}
}
return 0xFFFFFF;
}
}

View File

@@ -1,4 +1,4 @@
package com.raoulvdberge.refinedstorage.render.model.baked; package com.raoulvdberge.refinedstorage.render.model;
/* /*
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;

View File

@@ -1,4 +1,4 @@
package com.raoulvdberge.refinedstorage.render.model.baked; package com.raoulvdberge.refinedstorage.render.model;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.BakedQuad;

View File

@@ -1,4 +1,4 @@
package com.raoulvdberge.refinedstorage.render.model.baked; package com.raoulvdberge.refinedstorage.render.model;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;

View File

@@ -1,4 +1,4 @@
package com.raoulvdberge.refinedstorage.render.model.baked; package com.raoulvdberge.refinedstorage.render.model;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;

View File

@@ -1,4 +1,4 @@
package com.raoulvdberge.refinedstorage.render.model.baked; package com.raoulvdberge.refinedstorage.render.model;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternRenderHandler; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternRenderHandler;

View File

@@ -1,4 +1,4 @@
package com.raoulvdberge.refinedstorage.render.model.baked; package com.raoulvdberge.refinedstorage.render.model;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;

View File

@@ -1,14 +0,0 @@
package com.raoulvdberge.refinedstorage.render.teisr;
import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer;
import net.minecraft.item.ItemStack;
public class TileEntityItemStackRendererPattern extends ItemStackTileEntityRenderer {
@Override
public void renderByItem(ItemStack stack) {
/* TODO CraftingPattern pattern = ItemPattern.getPatternFromCache(null, stack);*/
//ItemStack outputStack = pattern.getOutputs().get(0);
//outputStack.getItem().getTileEntityItemStackRenderer().renderByItem(outputStack);
}
}

View File

@@ -0,0 +1,17 @@
package com.raoulvdberge.refinedstorage.render.tesr;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
import com.raoulvdberge.refinedstorage.item.PatternItem;
import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer;
import net.minecraft.item.ItemStack;
public class PatternItemStackTileEntityRenderer extends ItemStackTileEntityRenderer {
@Override
public void renderByItem(ItemStack stack) {
CraftingPattern pattern = PatternItem.fromCache(null, stack);
ItemStack outputStack = pattern.getOutputs().get(0);
outputStack.getItem().getTileEntityItemStackRenderer().renderByItem(outputStack);
}
}

View File

@@ -10,7 +10,7 @@ import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.ForgeHooksClient;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
public class TileEntitySpecialRendererStorageMonitor extends TileEntityRenderer<TileStorageMonitor> { public class StorageMonitorTileEntityRenderer extends TileEntityRenderer<TileStorageMonitor> {
@Override @Override
public void render(TileStorageMonitor tile, double x, double y, double z, float partialTicks, int destroyStage) { public void render(TileStorageMonitor tile, double x, double y, double z, float partialTicks, int destroyStage) {
setLightmapDisabled(true); setLightmapDisabled(true);