Skip to content

Commit 1975446

Browse files
CardinalstarsFalsePattern
authored andcommitted
Chisel compat for textures that are block location dependent (Mineshopper#12)
(cherry picked from commit 5aec83aaa95e9400c2f07aa82380c63e83ab12c8)
1 parent d2da399 commit 1975446

File tree

3 files changed

+52
-2
lines changed

3 files changed

+52
-2
lines changed

dependencies.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
dependencies {
2-
compileOnly('com.github.GTNewHorizons:Angelica:1.0.0-alpha36:api')
2+
compileOnly('com.github.GTNewHorizons:Angelica:1.0.0-alpha52:api')
3+
compileOnly('com.github.GTNewHorizons:Chisel:2.15.3-GTNH:dev')
34
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.carpentersblocks.api.compat;
2+
3+
import cpw.mods.fml.common.Loader;
4+
5+
public enum Mods {
6+
7+
CHISEL("chisel");
8+
9+
public final String ID;
10+
11+
private Boolean modLoaded;
12+
13+
Mods(String ID) {
14+
this.ID = ID;
15+
}
16+
17+
public boolean isModLoaded() {
18+
if (this.modLoaded == null) {
19+
this.modLoaded = Loader.isModLoaded(ID);
20+
}
21+
return this.modLoaded;
22+
}
23+
}

src/main/java/com/carpentersblocks/renderer/BlockHandlerBase.java

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.carpentersblocks.renderer;
22

3+
import static com.carpentersblocks.api.compat.Mods.CHISEL;
4+
35
import com.carpentersblocks.block.BlockCoverable;
46
import com.carpentersblocks.data.Slope;
57
import com.carpentersblocks.renderer.helper.*;
@@ -11,6 +13,7 @@
1113
import com.carpentersblocks.util.handler.OverlayHandler.Overlay;
1214
import com.carpentersblocks.util.registry.FeatureRegistry;
1315
import com.carpentersblocks.util.registry.IconRegistry;
16+
import com.cricketcraft.chisel.api.ICarvable;
1417
import com.gtnewhorizons.angelica.api.ThreadSafeISBRHFactory;
1518
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
1619
import cpw.mods.fml.common.Optional;
@@ -536,6 +539,18 @@ protected IIcon getIcon(ItemStack itemStack, int side) {
536539
return icon;
537540
}
538541

542+
protected IIcon getIcon(ItemStack itemStack, int side, IBlockAccess world, int x, int y, int z) {
543+
BlockProperties.prepareItemStackForRendering(itemStack);
544+
IIcon icon = renderBlocks.getIconSafe(
545+
getUniqueIcon(itemStack, side, BlockProperties.toBlock(itemStack).getIcon(world, x, y, z, side)));
546+
547+
if (hasIconOverride[side]) {
548+
icon = renderBlocks.getIconSafe(iconOverride[side]);
549+
}
550+
551+
return icon;
552+
}
553+
539554
/**
540555
* Renders multiple textures to side.
541556
*/
@@ -562,7 +577,18 @@ protected void renderMultiTexturedSide(ItemStack itemStack, int x, int y, int z,
562577
if (BlockProperties.blockRotates(itemStack)) {
563578
setTextureRotationForDirectionalBlock(side);
564579
}
565-
setColorAndRender(itemStack, x, y, z, side, getIcon(itemStack, side));
580+
if (CHISEL.isModLoaded() && Block.getBlockFromItem(itemStack.getItem()) instanceof ICarvable) {
581+
setColorAndRender(
582+
itemStack,
583+
x,
584+
y,
585+
z,
586+
side,
587+
getIcon(itemStack, side, renderBlocks.blockAccess, x, y, z));
588+
} else {
589+
setColorAndRender(itemStack, x, y, z, side, getIcon(itemStack, side));
590+
}
591+
566592
setTextureRotation(side, tempRotation);
567593
}
568594

0 commit comments

Comments
 (0)