mirror of
https://github.com/GTNewHorizons/Binnie.git
synced 2026-11-13 17:04:26 +00:00
Merge remote-tracking branch 'brandyyn/master' into dev
This commit is contained in:
6 files changed
+72
-6
No files matched your search
@@ -167,7 +167,16 @@ public class BlockCeramicBrick extends Block implements IBlockMetadata, IMultipa
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public int getRenderColor(int meta) {
|
||||
return colorMultiplier(meta);
|
||||
final BlockType type = this.getType(meta);
|
||||
if (!MultipassBlockRenderer.isRendering()) {
|
||||
return type.color1.getColor(false);
|
||||
}
|
||||
|
||||
final int layer = MultipassBlockRenderer.getLayer();
|
||||
if (layer == 0) return 0xffffff;
|
||||
if (layer == 1) return type.color1.getColor(false);
|
||||
if (layer == 2) return type.color2.getColor(false);
|
||||
return 0xffffff;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -9,8 +9,12 @@ import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
import com.gtnewhorizon.gtnhlib.config.ConfigException;
|
||||
import com.gtnewhorizon.gtnhlib.config.ConfigurationManager;
|
||||
|
||||
import binnie.Binnie;
|
||||
import binnie.core.block.MultipassBlockRenderer;
|
||||
import binnie.core.config.BCConfig;
|
||||
import binnie.core.block.TileEntityMetadata;
|
||||
import binnie.core.craftgui.minecraft.ModuleCraftGUI;
|
||||
import binnie.core.gui.BinnieCoreGUI;
|
||||
@@ -78,7 +82,9 @@ public class BinnieCore extends AbstractMod {
|
||||
}
|
||||
|
||||
addModule(new ModuleCraftGUI());
|
||||
addModule(new ModuleStorage());
|
||||
if (!BCConfig.disableCompartments) {
|
||||
addModule(new ModuleStorage());
|
||||
}
|
||||
addModule(new ModuleItems());
|
||||
if (Loader.isModLoaded("BuildCraft|Silicon")) {
|
||||
addModule(new ModuleTrigger());
|
||||
|
||||
@@ -14,6 +14,7 @@ public class MultipassBlockRenderer implements ISimpleBlockRenderingHandler {
|
||||
|
||||
public static MultipassBlockRenderer instance;
|
||||
private static int layer = 0;
|
||||
private static boolean rendering = false;
|
||||
|
||||
public MultipassBlockRenderer() {
|
||||
MultipassBlockRenderer.instance = this;
|
||||
@@ -23,30 +24,67 @@ public class MultipassBlockRenderer implements ISimpleBlockRenderingHandler {
|
||||
return MultipassBlockRenderer.layer;
|
||||
}
|
||||
|
||||
public static boolean isRendering() {
|
||||
return MultipassBlockRenderer.rendering;
|
||||
}
|
||||
|
||||
private static int getPassesSafe(Block block) {
|
||||
try {
|
||||
return ((IMultipassBlock) block).getNumberOfPasses();
|
||||
} catch (Throwable t) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
private static int getColorSafe(Block block, int meta) {
|
||||
try {
|
||||
if (block instanceof IMultipassBlock) {
|
||||
try {
|
||||
java.lang.reflect.Method m = block.getClass().getMethod("colorMultiplier", int.class);
|
||||
Object out = m.invoke(block, Integer.valueOf(meta));
|
||||
if (out instanceof Integer) {
|
||||
return ((Integer) out).intValue();
|
||||
}
|
||||
} catch (Throwable ignored) {
|
||||
}
|
||||
}
|
||||
return block.getRenderColor(meta);
|
||||
} catch (Throwable t) {
|
||||
return 16777215;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) {
|
||||
block.setBlockBoundsForItemRender();
|
||||
renderer.setRenderBoundsFromBlock(block);
|
||||
GL11.glTranslatef(-0.5f, -0.5f, -0.5f);
|
||||
|
||||
MultipassBlockRenderer.rendering = true;
|
||||
MultipassBlockRenderer.layer = 0;
|
||||
while (MultipassBlockRenderer.layer < ((IMultipassBlock) block).getNumberOfPasses()) {
|
||||
while (MultipassBlockRenderer.layer < getPassesSafe(block)) {
|
||||
renderItem(block, renderer, meta);
|
||||
MultipassBlockRenderer.layer++;
|
||||
}
|
||||
MultipassBlockRenderer.layer = 0;
|
||||
MultipassBlockRenderer.rendering = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId,
|
||||
RenderBlocks renderer) {
|
||||
boolean r = true;
|
||||
MultipassBlockRenderer.rendering = true;
|
||||
MultipassBlockRenderer.layer = 0;
|
||||
while (MultipassBlockRenderer.layer < ((IMultipassBlock) block).getNumberOfPasses()) {
|
||||
r = renderer.renderStandardBlock(block, x, y, z);
|
||||
while (MultipassBlockRenderer.layer < getPassesSafe(block)) {
|
||||
try {
|
||||
r = renderer.renderStandardBlock(block, x, y, z);
|
||||
} catch (Throwable t) {
|
||||
return false;
|
||||
}
|
||||
MultipassBlockRenderer.layer++;
|
||||
}
|
||||
MultipassBlockRenderer.layer = 0;
|
||||
MultipassBlockRenderer.rendering = false;
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -61,7 +99,7 @@ public class MultipassBlockRenderer implements ISimpleBlockRenderingHandler {
|
||||
}
|
||||
|
||||
public void renderItem(Block block, RenderBlocks renderer, int meta) {
|
||||
setColor(((IMultipassBlock) block).colorMultiplier(meta));
|
||||
setColor(getColorSafe(block, meta));
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
tessellator.startDrawingQuads();
|
||||
tessellator.setNormal(0.0f, -1.0f, 0.0f);
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package binnie.core.config;
|
||||
|
||||
import com.gtnewhorizon.gtnhlib.config.Config;
|
||||
import binnie.core.BinnieCore;
|
||||
|
||||
@Config(modid = BinnieCore.CORE_MODID)
|
||||
public class BCConfig {
|
||||
|
||||
@Config.Comment("If true, disables all compartment storage machines (no blocks/recipes will be registered).")
|
||||
@Config.DefaultBoolean(false)
|
||||
@Config.RequiresMcRestart
|
||||
public static boolean disableCompartments;
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 397 B After Width: | Height: | Size: 732 B |
Binary file not shown.
|
Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 569 B |
Reference in new issue
Block a user