diff --git a/build.properties b/build.properties index 5605e4ea..0a4c6c2f 100644 --- a/build.properties +++ b/build.properties @@ -1,7 +1,7 @@ minecraft.version=1.10.2 forge.version=12.18.1.2079 -gt.version=5.10.20 +gt.version=5.10.21 forestry.version=5.2.7.220 ic2.version=2.6.99-ex110 diff --git a/build/libs/gregtech-5.10.20-dev.jar b/build/libs/gregtech-5.10.20-dev.jar index cbdfc392..5653fe7a 100644 Binary files a/build/libs/gregtech-5.10.20-dev.jar and b/build/libs/gregtech-5.10.20-dev.jar differ diff --git a/build/libs/gregtech-5.10.20-sources.jar b/build/libs/gregtech-5.10.20-sources.jar index f4f3a513..0958dd18 100644 Binary files a/build/libs/gregtech-5.10.20-sources.jar and b/build/libs/gregtech-5.10.20-sources.jar differ diff --git a/build/libs/gregtech-5.10.20.jar b/build/libs/gregtech-5.10.20.jar index 8ac59e40..422d2973 100644 Binary files a/build/libs/gregtech-5.10.20.jar and b/build/libs/gregtech-5.10.20.jar differ diff --git a/src/main/java/gregtech/api/enums/StoneTypes.java b/src/main/java/gregtech/api/enums/StoneTypes.java index 076b4219..a69f75f8 100644 --- a/src/main/java/gregtech/api/enums/StoneTypes.java +++ b/src/main/java/gregtech/api/enums/StoneTypes.java @@ -9,26 +9,28 @@ import gregtech.api.objects.RegIconContainer; public enum StoneTypes { //vanilla ones - STONE(new RegIconContainer("blocks/stone"), OrePrefixes.ore), - NETHERRACK(new RegIconContainer("blocks/netherrack"), OrePrefixes.oreNetherrack), - ENDSTONE(new RegIconContainer("blocks/end_stone"), OrePrefixes.oreEndstone), + STONE(new RegIconContainer("blocks/stone"), OrePrefixes.ore, Materials.Stone), + NETHERRACK(new RegIconContainer("blocks/netherrack"), OrePrefixes.oreNetherrack, Materials.Netherrack), + ENDSTONE(new RegIconContainer("blocks/end_stone"), OrePrefixes.oreEndstone, Materials.Endstone), //gt ones - BLACK_GRANITE(Textures.BlockIcons.GRANITE_BLACK_STONE, OrePrefixes.oreBlackgranite), - RED_GRANITE(Textures.BlockIcons.GRANITE_RED_STONE, OrePrefixes.oreRedgranite), - MARBLE(Textures.BlockIcons.MARBLE_STONE, OrePrefixes.oreMarble), - BASALT(Textures.BlockIcons.BASALT_STONE, OrePrefixes.oreBasalt); + BLACK_GRANITE(Textures.BlockIcons.GRANITE_BLACK_STONE, OrePrefixes.oreBlackgranite, Materials.BlackGranite), + RED_GRANITE(Textures.BlockIcons.GRANITE_RED_STONE, OrePrefixes.oreRedgranite, Materials.RedGranite), + MARBLE(Textures.BlockIcons.MARBLE_STONE, OrePrefixes.oreMarble, Materials.Marble), + BASALT(Textures.BlockIcons.BASALT_STONE, OrePrefixes.oreBasalt, Materials.Basalt); public final int mId = ordinal(); public final IIconContainer mIconContainer; public final OrePrefixes processingPrefix; + public final Materials stoneMaterial; public static StoneTypes[] mTypes = values(); - StoneTypes(IIconContainer mIconContainer, OrePrefixes processingPrefix) { + StoneTypes(IIconContainer mIconContainer, OrePrefixes processingPrefix, Materials stoneMaterial) { this.mIconContainer = mIconContainer; this.processingPrefix= processingPrefix; + this.stoneMaterial = stoneMaterial; } } diff --git a/src/main/java/gregtech/api/items/GT_Generic_Block.java b/src/main/java/gregtech/api/items/GT_Generic_Block.java index 4c0b78a8..2d55a814 100644 --- a/src/main/java/gregtech/api/items/GT_Generic_Block.java +++ b/src/main/java/gregtech/api/items/GT_Generic_Block.java @@ -1,5 +1,6 @@ package gregtech.api.items; +import codechicken.lib.render.DigIconParticle; import gregtech.api.util.GT_LanguageManager; import gregtech.common.render.RenderBlocks; import net.minecraft.block.Block; @@ -8,21 +9,28 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyInteger; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; +import net.minecraft.client.particle.ParticleDigging; +import net.minecraft.client.particle.ParticleManager; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import java.util.Random; + import static gregtech.api.enums.GT_Values.W; public abstract class GT_Generic_Block extends Block { @@ -40,6 +48,81 @@ public abstract class GT_Generic_Block extends Block { setBlockBounds(0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f); } + @Override + public boolean addLandingEffects(IBlockState state, WorldServer worldObj, BlockPos blockPosition, IBlockState iblockstate, EntityLivingBase entity, int numberOfParticles) { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean addHitEffects(IBlockState state, World worldObj, RayTraceResult target, ParticleManager manager) { + addBlockHitEffects(worldObj, target.getBlockPos() != null ? target.getBlockPos() : BlockPos.ORIGIN, + target.sideHit != null ? target.sideHit : EnumFacing.UP, worldObj.rand, manager); + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean addDestroyEffects(World world, BlockPos pos, ParticleManager manager) { + int count = 14 + world.rand.nextInt(10); + for(int i = 0; i < count; i++) { + addBlockHitEffects(world, pos, EnumFacing.UP, world.rand, manager); + } + return true; + } + + @SideOnly(Side.CLIENT) + public void addBlockHitEffects(World worldObj, BlockPos pos, EnumFacing side, Random rand, ParticleManager manager) + { + IBlockState iblockstate = worldObj.getBlockState(pos); + + if (iblockstate.getRenderType() != EnumBlockRenderType.INVISIBLE) { + int i = pos.getX(); + int j = pos.getY(); + int k = pos.getZ(); + float f = 0.1F; + AxisAlignedBB axisalignedbb = iblockstate.getBoundingBox(worldObj, pos); + double d0 = (double) i + rand.nextDouble() * (axisalignedbb.maxX - axisalignedbb.minX - 0.20000000298023224D) + 0.10000000149011612D + axisalignedbb.minX; + double d1 = (double) j + rand.nextDouble() * (axisalignedbb.maxY - axisalignedbb.minY - 0.20000000298023224D) + 0.10000000149011612D + axisalignedbb.minY; + double d2 = (double) k + rand.nextDouble() * (axisalignedbb.maxZ - axisalignedbb.minZ - 0.20000000298023224D) + 0.10000000149011612D + axisalignedbb.minZ; + + if (side == EnumFacing.DOWN) { + d1 = (double) j + axisalignedbb.minY - 0.10000000149011612D; + } + + if (side == EnumFacing.UP) { + d1 = (double) j + axisalignedbb.maxY + 0.10000000149011612D; + } + + if (side == EnumFacing.NORTH) { + d2 = (double) k + axisalignedbb.minZ - 0.10000000149011612D; + } + + if (side == EnumFacing.SOUTH) { + d2 = (double) k + axisalignedbb.maxZ + 0.10000000149011612D; + } + + if (side == EnumFacing.WEST) { + d0 = (double) i + axisalignedbb.minX - 0.10000000149011612D; + } + + if (side == EnumFacing.EAST) { + d0 = (double) i + axisalignedbb.maxX + 0.10000000149011612D; + } + + + TextureAtlasSprite sprite = getParticleSprite(worldObj, pos, side); + if (sprite != null) { + manager.addEffect((new DigIconParticle(worldObj, d0, d1, d2, 0.0D, 0.0D, 0.0D, sprite)).multiplyVelocity(0.2F).multipleParticleScaleBy(0.6F)); + } + } + } + + @SideOnly(Side.CLIENT) + public TextureAtlasSprite getParticleSprite(World worldObj, BlockPos aPos, EnumFacing side) { + return getWorldIcon(worldObj, aPos, worldObj.getBlockState(aPos), side); + } + @SideOnly(Side.CLIENT) public void registerIcons(TextureMap textureMap) {} @@ -71,9 +154,8 @@ public abstract class GT_Generic_Block extends Block { this.maxZ = maxZ; } - public void setBlockBoundsForItemRender() { - setBlockBounds(0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f); - } + public void setBlockBoundsForItemRender() {} + public void setBlockBoundsBasedOnState(IBlockAccess world, BlockPos pos, IBlockState state) {} @Override protected BlockStateContainer createBlockState() { diff --git a/src/main/java/gregtech/api/objects/GT_RenderedTexture.java b/src/main/java/gregtech/api/objects/GT_RenderedTexture.java index 31d6f99a..612a24c8 100644 --- a/src/main/java/gregtech/api/objects/GT_RenderedTexture.java +++ b/src/main/java/gregtech/api/objects/GT_RenderedTexture.java @@ -13,8 +13,8 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class GT_RenderedTexture implements ITexture, IColorModulationContainer { - private final IIconContainer mIconContainer; - private final boolean mAllowAlpha; + public final IIconContainer mIconContainer; + public final boolean mAllowAlpha; /** * DO NOT MANIPULATE THE VALUES INSIDE THIS ARRAY!!! *

diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java index 457e91e1..2186063f 100644 --- a/src/main/java/gregtech/common/GT_Client.java +++ b/src/main/java/gregtech/common/GT_Client.java @@ -244,12 +244,6 @@ public class GT_Client extends GT_Proxy } } - @SubscribeEvent - public void receiveRenderEvent(net.minecraftforge.client.event.RenderPlayerEvent.Pre aEvent) { - if (GT_Utility.getFullInvisibility(aEvent.getEntityPlayer())) { - aEvent.setCanceled(true); - } - } @SubscribeEvent public void onClientTickEvent(net.minecraftforge.fml.common.gameevent.TickEvent.ClientTickEvent aEvent) { diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java index b4038818..7b1d7c13 100644 --- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java +++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java @@ -3,13 +3,12 @@ package gregtech.common; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.world.GT_Worldgen; -import gregtech.common.blocks.rework.GT_Block_GeneratedOres; +import gregtech.common.blocks.GT_Block_GeneratedOres; import gregtech.loaders.misc.GT_Achievements; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkGenerator; import net.minecraft.world.chunk.IChunkProvider; -import org.apache.commons.lang3.time.StopWatch; import java.util.ArrayList; import java.util.Random; diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java index a2a9b3f6..4afa5ea7 100644 --- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java +++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java @@ -3,7 +3,7 @@ package gregtech.common; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.world.GT_Worldgen; -import gregtech.common.blocks.rework.GT_Block_GeneratedOres; +import gregtech.common.blocks.GT_Block_GeneratedOres; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkGenerator; diff --git a/src/main/java/gregtech/common/GT_Worldgen_Stone.java b/src/main/java/gregtech/common/GT_Worldgen_Stone.java index 6b377cd8..c780f0f7 100644 --- a/src/main/java/gregtech/common/GT_Worldgen_Stone.java +++ b/src/main/java/gregtech/common/GT_Worldgen_Stone.java @@ -1,12 +1,10 @@ package gregtech.common; -import gregtech.api.GregTech_API; import gregtech.api.world.GT_Worldgen_Ore; import gregtech.api.world.GT_Worldgen_Constants; -import gregtech.common.blocks.rework.GT_Block_GeneratedOres; +import gregtech.common.blocks.GT_Block_GeneratedOres; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; diff --git a/src/main/java/gregtech/common/GT_Worldgenerator.java b/src/main/java/gregtech/common/GT_Worldgenerator.java index 3cb37533..a2a53e14 100644 --- a/src/main/java/gregtech/common/GT_Worldgenerator.java +++ b/src/main/java/gregtech/common/GT_Worldgenerator.java @@ -4,7 +4,7 @@ import gregtech.api.GregTech_API; import gregtech.api.objects.XSTR; import gregtech.api.util.GT_Log; import gregtech.api.world.GT_Worldgen; -import gregtech.common.blocks.rework.GT_Block_GeneratedOres; +import gregtech.common.blocks.GT_Block_GeneratedOres; import net.minecraft.init.Biomes; import net.minecraft.init.Blocks; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/gregtech/common/blocks/rework/GT_Block_GeneratedOres.java b/src/main/java/gregtech/common/blocks/GT_Block_GeneratedOres.java similarity index 91% rename from src/main/java/gregtech/common/blocks/rework/GT_Block_GeneratedOres.java rename to src/main/java/gregtech/common/blocks/GT_Block_GeneratedOres.java index 4aef7a5a..cef32f1d 100644 --- a/src/main/java/gregtech/common/blocks/rework/GT_Block_GeneratedOres.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_GeneratedOres.java @@ -1,4 +1,4 @@ -package gregtech.common.blocks.rework; +package gregtech.common.blocks; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; @@ -13,6 +13,7 @@ import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -21,10 +22,13 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumBlockRenderType; +import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.util.ArrayList; import java.util.List; @@ -158,19 +162,22 @@ public class GT_Block_GeneratedOres extends GT_Generic_Block { return false; //never allow silk touch } + @Override + @SideOnly(Side.CLIENT) + public TextureAtlasSprite getParticleSprite(World worldObj, BlockPos aPos, EnumFacing side) { + return StoneTypes.mTypes[worldObj.getBlockState(aPos).getValue(METADATA) % MATERIALS_META_OFFSET].mIconContainer.getIcon(); + } + @Override public List getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { ArrayList rList = new ArrayList<>(); int aMetaData = state.getValue(METADATA); - if (aMetaData <= 0) { - rList.add(new ItemStack(Blocks.COBBLESTONE, 1, 0)); - return rList; - } if (!mSmall) { rList.add(new ItemStack(this, 1, aMetaData)); return rList; } - Materials aMaterial = GregTech_API.sGeneratedMaterials[(aMetaData % 1000)]; + Materials aMaterial = mMaterials[aMetaData / MATERIALS_META_OFFSET]; + Materials aBaseMaterial = StoneTypes.mTypes[aMetaData % MATERIALS_META_OFFSET].stoneMaterial; if (aMaterial != null) { Random tRandom = new Random(pos.hashCode()); ArrayList tSelector = new ArrayList<>(); @@ -217,9 +224,13 @@ public class GT_Block_GeneratedOres extends GT_Generic_Block { tSelector.add(tStack); } } - if (tSelector.size() > 0) { - rList.add(GT_Utility.copyAmount(1L, tSelector.get(tRandom.nextInt(tSelector.size())))); + + tStack = GT_OreDictUnificator.get(OrePrefixes.dustImpure, aBaseMaterial, 1L); + if(tStack != null && tRandom.nextInt(4) == 0) { + rList.add(tStack); } + + rList.add(GT_Utility.copyAmount(1L, tSelector.get(tRandom.nextInt(tSelector.size())))); } return rList; } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java index 56b93055..07194ca2 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java @@ -2,13 +2,16 @@ package gregtech.common.blocks; import gregtech.api.GregTech_API; import gregtech.api.interfaces.IDebugableBlock; +import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.interfaces.tileentity.ITexturedTileEntity; import gregtech.api.items.GT_Generic_Block; import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.metatileentity.BaseMetaTileEntity; import gregtech.api.metatileentity.BaseTileEntity; +import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; @@ -16,6 +19,7 @@ import gregtech.common.render.GT_Renderer_Block; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.SoundType; import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; @@ -274,6 +278,8 @@ public class GT_Block_Machines extends GT_Generic_Block implements IDebugableBlo return false; } + + @Override public void onBlockClicked(World worldIn, BlockPos pos, EntityPlayer playerIn) { IGregTechTileEntity gregTechTileEntity = getGregTile(worldIn, pos); @@ -282,6 +288,19 @@ public class GT_Block_Machines extends GT_Generic_Block implements IDebugableBlo } } + @Override + @SideOnly(Side.CLIENT) + public TextureAtlasSprite getParticleSprite(World worldObj, BlockPos aPos, EnumFacing side) { + TileEntity tileEntity = worldObj.getTileEntity(aPos); + if(tileEntity instanceof ITexturedTileEntity) { + ITexture[] textures = ((ITexturedTileEntity) tileEntity).getTexture(this, (byte) 1); + if(textures.length > 0 && textures[0].isValidTexture() && textures[0] instanceof GT_RenderedTexture) { + return ((GT_RenderedTexture) textures[0]).mIconContainer.getIcon(); + } + } + return null; + } + @Override public void onBlockExploded(World world, BlockPos pos, Explosion explosion) { IGregTechTileEntity gregTechTileEntity = getGregTile(world, pos); diff --git a/src/main/java/gregtech/common/blocks/rework/GT_Item_GeneratedOres.java b/src/main/java/gregtech/common/blocks/GT_Item_GeneratedOres.java similarity index 93% rename from src/main/java/gregtech/common/blocks/rework/GT_Item_GeneratedOres.java rename to src/main/java/gregtech/common/blocks/GT_Item_GeneratedOres.java index 191e4c8c..df7f4ee3 100644 --- a/src/main/java/gregtech/common/blocks/rework/GT_Item_GeneratedOres.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_GeneratedOres.java @@ -1,4 +1,4 @@ -package gregtech.common.blocks.rework; +package gregtech.common.blocks; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; diff --git a/src/main/java/gregtech/common/render/ItemRenderer.java b/src/main/java/gregtech/common/render/ItemRenderer.java index 407cc01d..5b893a9a 100644 --- a/src/main/java/gregtech/common/render/ItemRenderer.java +++ b/src/main/java/gregtech/common/render/ItemRenderer.java @@ -327,7 +327,6 @@ public class ItemRenderer implements IItemRenderer, IStackPerspectiveAwareModel return ItemOverrideList.NONE; } - @Override public Pair handlePerspective(ItemStack stack, ItemCameraTransforms.TransformType cameraTransformType) { Matrix4f mat = new Matrix4f(); diff --git a/src/main/java/gregtech/common/render/RenderBlocks.java b/src/main/java/gregtech/common/render/RenderBlocks.java index 08489f03..c80d8d41 100644 --- a/src/main/java/gregtech/common/render/RenderBlocks.java +++ b/src/main/java/gregtech/common/render/RenderBlocks.java @@ -5,15 +5,18 @@ import codechicken.lib.render.block.ICCBlockRenderer; import gregtech.api.enums.Materials; import gregtech.api.enums.StoneTypes; import gregtech.api.enums.TextureSet; +import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.items.GT_Generic_Block; -import gregtech.common.blocks.rework.GT_Block_GeneratedOres; +import gregtech.common.blocks.GT_Block_GeneratedOres; import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumBlockRenderType; @@ -39,7 +42,10 @@ public class RenderBlocks implements ICCBlockRenderer { } @Override - public void handleRenderBlockDamage(IBlockAccess world, BlockPos pos, IBlockState state, TextureAtlasSprite sprite, VertexBuffer buffer) {} + public void handleRenderBlockDamage(IBlockAccess world, BlockPos pos, IBlockState state, TextureAtlasSprite sprite, VertexBuffer buffer) { + IBlockState stone = Blocks.STONE.getDefaultState(); + Minecraft.getMinecraft().getBlockRendererDispatcher().renderBlockDamage(stone, pos, sprite, world); + } @Override public boolean renderBlock(IBlockAccess world, BlockPos pos, IBlockState state, VertexBuffer buffer) { @@ -47,7 +53,10 @@ public class RenderBlocks implements ICCBlockRenderer { double y = pos.getY(); double z = pos.getZ(); + GT_Generic_Block aOres = (GT_Generic_Block) state.getBlock(); + aOres.setBlockBoundsBasedOnState(world, pos, state); + setRenderBoundsFromBlock1(aOres); int lightmap; int color; @@ -176,6 +185,9 @@ public class RenderBlocks implements ICCBlockRenderer { VertexBuffer buf = tes.getBuffer(); GT_Generic_Block aBlock = (GT_Generic_Block) ((ItemBlock) itemStack.getItem()).block; + aBlock.setBlockBoundsForItemRender(); + setRenderBoundsFromBlock1(aBlock); + TextureAtlasSprite sprite; buf.begin(GL11.GL_QUADS, DefaultVertexFormats.ITEM); @@ -399,8 +411,8 @@ public class RenderBlocks implements ICCBlockRenderer { float a = ((color >> 24) & 0xFF) / 255.0f; - int light1 = lightmap >> 16 & 65535; - int light2 = lightmap & 65535; + int light1 = Math.max(0, (lightmap >> 16 & 65535) - 26); + int light2 = Math.max(0, (lightmap & 65535) - 26); double minU = sprite.getMinU(); double minV = sprite.getMinV(); @@ -421,8 +433,8 @@ public class RenderBlocks implements ICCBlockRenderer { float a = ((color >> 24) & 0xFF) / 255.0f; - int light1 = lightmap >> 16 & 65535; - int light2 = lightmap & 65535; + int light1 = Math.max(0, (lightmap >> 16 & 65535) - 26); + int light2 = Math.max(0, (lightmap & 65535) - 26); double minU = sprite.getMinU(); double minV = sprite.getMinV(); @@ -442,8 +454,8 @@ public class RenderBlocks implements ICCBlockRenderer { float a = ((color >> 24) & 0xFF) / 255.0f; - int light1 = lightmap >> 16 & 65535; - int light2 = lightmap & 65535; + int light1 = Math.max(0, (lightmap >> 16 & 65535) - 26); + int light2 = Math.max(0, (lightmap & 65535) - 26); double minU = sprite.getMinU(); double minV = sprite.getMinV(); @@ -463,8 +475,8 @@ public class RenderBlocks implements ICCBlockRenderer { float a = ((color >> 24) & 0xFF) / 255.0f; - int light1 = lightmap >> 16 & 65535; - int light2 = lightmap & 65535; + int light1 = Math.max(0, (lightmap >> 16 & 65535) - 26); + int light2 = Math.max(0, (lightmap & 65535) - 26); double minU = sprite.getMinU(); double minV = sprite.getMinV(); @@ -484,8 +496,8 @@ public class RenderBlocks implements ICCBlockRenderer { float a = ((color >> 24) & 0xFF) / 255.0f; - int light1 = lightmap >> 16 & 65535; - int light2 = lightmap & 65535; + int light1 = Math.max(0, (lightmap >> 16 & 65535) - 26); + int light2 = Math.max(0, (lightmap & 65535) - 26); double minU = sprite.getMinU(); double minV = sprite.getMinV(); @@ -504,8 +516,8 @@ public class RenderBlocks implements ICCBlockRenderer { float b = ((color) & 0xFF) / 255.0f; float a = ((color >> 24) & 0xFF) / 255.0f; - int light1 = lightmap >> 16 & 65535; - int light2 = lightmap & 65535; + int light1 = Math.max(0, (lightmap >> 16 & 65535) - 26); + int light2 = Math.max(0, (lightmap & 65535) - 26); double minU = sprite.getMinU(); double minV = sprite.getMinV(); diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index 0a44c9bc..aa172d84 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -12,7 +12,7 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gregtech.common.blocks.*; -import gregtech.common.blocks.rework.GT_Block_GeneratedOres; +import gregtech.common.blocks.GT_Block_GeneratedOres; import gregtech.common.items.*; import gregtech.common.items.armor.ElectricModularArmor1; import gregtech.common.items.armor.ModularArmor_Item; @@ -28,7 +28,6 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.event.FMLInterModComms; import net.minecraftforge.fml.common.registry.GameRegistry;