updating render classes to fix bugs when breaking blocks

This commit is contained in:
Mohammad-Ali Minaie
2017-05-29 14:24:01 -04:00
parent 2764cae3e9
commit fabc149a77
9 changed files with 623 additions and 597 deletions

View File

@@ -4,9 +4,7 @@ To-Dos
*** Priority *** *** Priority ***
- [ ] Bloomery not accepting raw clean crucible
- [ ] Move Ingot break into chunks logic out of the block and into the ForgeHammer
- [ ] Add Yew
*** Feature Musket *** *** Feature Musket ***
- [ ] Create powder charge item (copper, charcoal, gunpowder) - [ ] Create powder charge item (copper, charcoal, gunpowder)
@@ -20,6 +18,8 @@ To-Dos
- [ ] Create lock assembly item - [ ] Create lock assembly item
*** Backlog *** *** Backlog ***
- [ ] Move Ingot break into chunks logic out of the block and into the ForgeHammer
- [ ] Add Yew
- [ ] Add Iron Ring Recipe - [ ] Add Iron Ring Recipe
- [ ] Add chainmail recipe - [ ] Add chainmail recipe
- [ ] Add Iron Shield - [ ] Add Iron Shield

View File

@@ -5,12 +5,12 @@ org.gradle.jvmargs=-Xmx3G
mod_group=nmd.primal.forgecraft mod_group=nmd.primal.forgecraft
mod_name=ForgeCraft mod_name=ForgeCraft
mod_version=1.2.21 mod_version=1.2.22
forge_version=13.20.0.2226 forge_version=13.20.0.2226
mcp_mappings=snapshot_20161220 mcp_mappings=snapshot_20161220
mc_version=1.11.2 mc_version=1.11.2
primal_version=0.3+ primal_version=0.4+
jei_version=4.2+ jei_version=4.2+
waila_version=1.7.0-B3 waila_version=1.7.0-B3
apple_version=2.1+ apple_version=2.1+

View File

@@ -16,7 +16,7 @@ public class ModInfo {
public static final String MOD_NAME = "Kitsu's ForgeCraft"; public static final String MOD_NAME = "Kitsu's ForgeCraft";
//public static final String MOD_PREFIX = MOD_ID + ":"; //public static final String MOD_PREFIX = MOD_ID + ":";
public static final String MOD_CHANNEL = MOD_ID; public static final String MOD_CHANNEL = MOD_ID;
public static final String MOD_VERSION = "1.2.21"; public static final String MOD_VERSION = "1.2.22";
public static final String MC_VERSIONS = "[1.11.0, 1.12.0)"; public static final String MC_VERSIONS = "[1.11.0, 1.12.0)";
public static final String DEPENDENCIES = "required-after:forge@[13.20.0.2226,);" + "required-after:primal@[0.3.15,);"; public static final String DEPENDENCIES = "required-after:forge@[13.20.0.2226,);" + "required-after:primal@[0.3.15,);";

View File

@@ -16,6 +16,7 @@ import net.minecraft.util.math.BlockPos;
import nmd.primal.core.api.PrimalItems; import nmd.primal.core.api.PrimalItems;
import nmd.primal.forgecraft.blocks.Anvil; import nmd.primal.forgecraft.blocks.Anvil;
import nmd.primal.forgecraft.blocks.IngotBall; import nmd.primal.forgecraft.blocks.IngotBall;
import nmd.primal.forgecraft.init.ModBlocks;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.items.BaseMultiItem; import nmd.primal.forgecraft.items.BaseMultiItem;
import nmd.primal.forgecraft.tiles.TileAnvil; import nmd.primal.forgecraft.tiles.TileAnvil;
@@ -36,8 +37,12 @@ public class TileAnvilRender extends TileEntitySpecialRenderer<TileAnvil>
; ;
@Override @Override
public void renderTileEntityAt(TileAnvil tile, double x, double y, double z, float partialTicks, int destroyStage) public void renderTileEntityAt(TileAnvil tile, double x, double y, double z, float partialTicks, int destroyStage) {
{
BlockPos pos = tile.getPos();
IBlockState state = this.getWorld().getBlockState(pos);
if (state.getBlock() instanceof Anvil) {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(x, y + 1.5D, z); GL11.glTranslated(x, y + 1.5D, z);
//GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F); //GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
@@ -45,10 +50,6 @@ public class TileAnvilRender extends TileEntitySpecialRenderer<TileAnvil>
float prevLGTX = OpenGlHelper.lastBrightnessX; float prevLGTX = OpenGlHelper.lastBrightnessX;
float prevLGTY = OpenGlHelper.lastBrightnessY; float prevLGTY = OpenGlHelper.lastBrightnessY;
BlockPos pos = tile.getPos();
IBlockState state = this.getWorld().getBlockState(pos);
int bright = tile.getWorld().getCombinedLight(pos.up(), 0); int bright = tile.getWorld().getCombinedLight(pos.up(), 0);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536);
@@ -86,373 +87,375 @@ public class TileAnvilRender extends TileEntitySpecialRenderer<TileAnvil>
24 | 14/16 | 14/16 24 | 14/16 | 14/16
*/ */
if(state.getValue(Anvil.FACING) == EnumFacing.NORTH){
int counter = 0;
for(int i=0; i < 5; i++){
for(int a=0; a<5; a++){
if(!tile.getSlotStack(counter).isEmpty()){
Item item = tile.getSlotStack(counter).getItem();
if(item.equals(Items.REDSTONE) ||
(item.equals(Items.DYE) && tile.getSlotStack(counter).getItemDamage() == EnumDyeColor.BLUE.getDyeDamage()) ||
item.equals(PrimalItems.EMERALD_KNAPP) ||
item.equals(PrimalItems.DIAMOND_KNAPP) ||
item.equals(Items.DIAMOND) ||
item.equals(Items.EMERALD)
){
GL11.glPushMatrix();
GL11.glTranslated( tile.getNormalX(a), -0.49D, tile.getNormalZ(i) ); if (state.getValue(Anvil.FACING) == EnumFacing.NORTH) {
GL11.glRotated(-90.0F, 1.0F, -0.0F, 0.0F); int counter = 0;
GL11.glScaled(0.25D, 0.25D, 0.25D); for (int i = 0; i < 5; i++) {
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); for (int a = 0; a < 5; a++) {
GL11.glPopMatrix(); if (!tile.getSlotStack(counter).isEmpty()) {
} Item item = tile.getSlotStack(counter).getItem();
if(item.equals(ModItems.pickaxehead) || if (item.equals(Items.REDSTONE) ||
item.equals(ModItems.cleanironpickaxehead) || (item.equals(Items.DYE) && tile.getSlotStack(counter).getItemDamage() == EnumDyeColor.BLUE.getDyeDamage()) ||
item.equals(ModItems.steelpickaxehead) || item.equals(PrimalItems.EMERALD_KNAPP) ||
item.equals(ModItems.wootzpickaxehead) item.equals(PrimalItems.DIAMOND_KNAPP) ||
){ item.equals(Items.DIAMOND) ||
GL11.glPushMatrix(); item.equals(Items.EMERALD)
double scale = 1.0D; ) {
GL11.glScaled(scale, scale, scale); GL11.glPushMatrix();
GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if(item.equals(ModItems.ironaxehead) ||
item.equals(ModItems.cleanironaxehead) ||
item.equals(ModItems.steelaxehead) ||
item.equals(ModItems.wootzaxehead)
){
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getNormalZ(i));
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if(item.equals(ModItems.ironshovelhead) ||
item.equals(ModItems.cleanironshovelhead) ||
item.equals(ModItems.steelshovelhead) ||
item.equals(ModItems.steelshovelhead)
){
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getNormalZ(i));
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if(item.equals(ModItems.ironhoehead)){
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getNormalZ(i));
GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if(Block.getBlockFromItem(item) instanceof IngotBall){
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.44D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if(item instanceof BaseMultiItem){
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.44D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
GL11.glTranslated(tile.getNormalX(a), -0.49D, tile.getNormalZ(i));
GL11.glRotated(-90.0F, 1.0F, -0.0F, 0.0F);
GL11.glScaled(0.25D, 0.25D, 0.25D);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item.equals(ModItems.pickaxehead) ||
item.equals(ModItems.cleanironpickaxehead) ||
item.equals(ModItems.steelpickaxehead) ||
item.equals(ModItems.wootzpickaxehead)
) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item.equals(ModItems.ironaxehead) ||
item.equals(ModItems.cleanironaxehead) ||
item.equals(ModItems.steelaxehead) ||
item.equals(ModItems.wootzaxehead)
) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getNormalZ(i));
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item.equals(ModItems.ironshovelhead) ||
item.equals(ModItems.cleanironshovelhead) ||
item.equals(ModItems.steelshovelhead) ||
item.equals(ModItems.steelshovelhead)
) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getNormalZ(i));
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item.equals(ModItems.ironhoehead)) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getNormalZ(i));
GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (Block.getBlockFromItem(item) instanceof IngotBall) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.44D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item instanceof BaseMultiItem) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.44D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
}
counter++;
} }
counter++;
} }
} }
} if (state.getValue(Anvil.FACING) == EnumFacing.SOUTH) {
if(state.getValue(Anvil.FACING) == EnumFacing.SOUTH){ int counter = 0;
int counter = 0; for (int i = 0; i < 5; i++) {
for(int i=0; i < 5; i++){ for (int a = 0; a < 5; a++) {
for(int a=0; a<5; a++){ if (!tile.getSlotStack(counter).isEmpty()) {
if(!tile.getSlotStack(counter).isEmpty()){ Item item = tile.getSlotStack(counter).getItem();
Item item = tile.getSlotStack(counter).getItem(); if (item.equals(Items.REDSTONE) ||
if(item.equals(Items.REDSTONE) || (item.equals(Items.DYE) && tile.getSlotStack(counter).getItemDamage() == EnumDyeColor.BLUE.getDyeDamage()) ||
(item.equals(Items.DYE) && tile.getSlotStack(counter).getItemDamage() == EnumDyeColor.BLUE.getDyeDamage()) || item.equals(PrimalItems.EMERALD_KNAPP) ||
item.equals(PrimalItems.EMERALD_KNAPP) || item.equals(PrimalItems.DIAMOND_KNAPP) ||
item.equals(PrimalItems.DIAMOND_KNAPP) || item.equals(Items.DIAMOND) ||
item.equals(Items.DIAMOND) || item.equals(Items.EMERALD)
item.equals(Items.EMERALD) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); GL11.glTranslated(tile.getReverseX(a), -0.49D, tile.getReverseZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.49D, tile.getReverseZ(i) ); GL11.glRotated(-90.0F, 1.0F, -0.0F, 0.0F);
GL11.glRotated(-90.0F, 1.0F, -0.0F, 0.0F); GL11.glScaled(0.25D, 0.25D, 0.25D);
GL11.glScaled(0.25D, 0.25D, 0.25D); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.pickaxehead) ||
if(item.equals(ModItems.pickaxehead) || item.equals(ModItems.cleanironpickaxehead) ||
item.equals(ModItems.cleanironpickaxehead) || item.equals(ModItems.steelpickaxehead) ||
item.equals(ModItems.steelpickaxehead) || item.equals(ModItems.wootzpickaxehead)
item.equals(ModItems.wootzpickaxehead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.435D, tile.getReverseZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.435D, tile.getReverseZ(i) ); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.ironaxehead) ||
if(item.equals(ModItems.ironaxehead) || item.equals(ModItems.cleanironaxehead) ||
item.equals(ModItems.cleanironaxehead) || item.equals(ModItems.steelaxehead) ||
item.equals(ModItems.steelaxehead) || item.equals(ModItems.wootzaxehead)
item.equals(ModItems.wootzaxehead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.435D, tile.getReverseZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.435D, tile.getReverseZ(i) ); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.ironshovelhead) ||
if(item.equals(ModItems.ironshovelhead) || item.equals(ModItems.cleanironshovelhead) ||
item.equals(ModItems.cleanironshovelhead) || item.equals(ModItems.steelshovelhead) ||
item.equals(ModItems.steelshovelhead) || item.equals(ModItems.steelshovelhead)
item.equals(ModItems.steelshovelhead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.435D, tile.getReverseZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.435D, tile.getReverseZ(i) ); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.ironhoehead) ||
if(item.equals(ModItems.ironhoehead) || item.equals(ModItems.cleanironhoehead) ||
item.equals(ModItems.cleanironhoehead) || item.equals(ModItems.steelhoehead) ||
item.equals(ModItems.steelhoehead) || item.equals(ModItems.wootzhoehead)
item.equals(ModItems.wootzhoehead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.435D, tile.getReverseZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.435D, tile.getReverseZ(i) ); GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (Block.getBlockFromItem(item) instanceof IngotBall) {
if(Block.getBlockFromItem(item) instanceof IngotBall){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.44D, tile.getReverseZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.44D, tile.getReverseZ(i) ); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item instanceof BaseMultiItem) {
if(item instanceof BaseMultiItem){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.44D, tile.getReverseZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.44D, tile.getReverseZ(i) ); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
}
}
counter++;
} }
counter++;
} }
} }
} if (state.getValue(Anvil.FACING) == EnumFacing.WEST) {
if(state.getValue(Anvil.FACING) == EnumFacing.WEST){ int counter = 0;
int counter = 0; for (int a = 0; a < 5; a++) {
for(int a=0; a < 5; a++){ for (int i = 0; i < 5; i++) {
for(int i=0; i<5; i++){ if (!tile.getSlotStack(counter).isEmpty()) {
if(!tile.getSlotStack(counter).isEmpty()){ Item item = tile.getSlotStack(counter).getItem();
Item item = tile.getSlotStack(counter).getItem(); if (item.equals(Items.REDSTONE) ||
if(item.equals(Items.REDSTONE) || (item.equals(Items.DYE) && tile.getSlotStack(counter).getItemDamage() == EnumDyeColor.BLUE.getDyeDamage()) ||
(item.equals(Items.DYE) && tile.getSlotStack(counter).getItemDamage() == EnumDyeColor.BLUE.getDyeDamage()) || item.equals(PrimalItems.EMERALD_KNAPP) ||
item.equals(PrimalItems.EMERALD_KNAPP) || item.equals(PrimalItems.DIAMOND_KNAPP) ||
item.equals(PrimalItems.DIAMOND_KNAPP) || item.equals(Items.DIAMOND) ||
item.equals(Items.DIAMOND) || item.equals(Items.EMERALD)
item.equals(Items.EMERALD) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); GL11.glTranslated(tile.getNormalX(a), -0.49D, tile.getReverseZ(i));
GL11.glTranslated( tile.getNormalX(a), -0.49D, tile.getReverseZ(i) ); GL11.glRotated(-90.0F, 1.0F, -0.0F, 0.0F);
GL11.glRotated(-90.0F, 1.0F, -0.0F, 0.0F); GL11.glScaled(0.25D, 0.25D, 0.25D);
GL11.glScaled(0.25D, 0.25D, 0.25D); GL11.glRotated(-90.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotated(-90.0F, 0.0F, 0.0F, 1.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.pickaxehead) ||
if(item.equals(ModItems.pickaxehead) || item.equals(ModItems.cleanironpickaxehead) ||
item.equals(ModItems.cleanironpickaxehead) || item.equals(ModItems.steelpickaxehead) ||
item.equals(ModItems.steelpickaxehead) || item.equals(ModItems.wootzpickaxehead)
item.equals(ModItems.wootzpickaxehead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getReverseZ(i));
GL11.glTranslated( tile.getNormalX(a), -0.435D, tile.getReverseZ(i) ); GL11.glRotated(-90.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotated(-90.0F, 0.0F, 1.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.ironaxehead) ||
if(item.equals(ModItems.ironaxehead) || item.equals(ModItems.cleanironaxehead) ||
item.equals(ModItems.cleanironaxehead) || item.equals(ModItems.steelaxehead) ||
item.equals(ModItems.steelaxehead) || item.equals(ModItems.wootzaxehead)
item.equals(ModItems.wootzaxehead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getReverseZ(i));
GL11.glTranslated( tile.getNormalX(a), -0.435D, tile.getReverseZ(i) ); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.ironshovelhead) ||
if(item.equals(ModItems.ironshovelhead) || item.equals(ModItems.cleanironshovelhead) ||
item.equals(ModItems.cleanironshovelhead) || item.equals(ModItems.steelshovelhead) ||
item.equals(ModItems.steelshovelhead) || item.equals(ModItems.steelshovelhead)
item.equals(ModItems.steelshovelhead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getReverseZ(i));
GL11.glTranslated( tile.getNormalX(a), -0.435D, tile.getReverseZ(i) ); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.ironhoehead)) {
if(item.equals(ModItems.ironhoehead)){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getNormalX(a), -0.435D, tile.getReverseZ(i));
GL11.glTranslated( tile.getNormalX(a), -0.435D, tile.getReverseZ(i) ); GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (Block.getBlockFromItem(item) instanceof IngotBall) {
if(Block.getBlockFromItem(item) instanceof IngotBall){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getNormalX(a), -0.44D, tile.getReverseZ(i));
GL11.glTranslated( tile.getNormalX(a), -0.44D, tile.getReverseZ(i) ); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item instanceof BaseMultiItem) {
if(item instanceof BaseMultiItem){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getNormalX(a), -0.44D, tile.getReverseZ(i));
GL11.glTranslated( tile.getNormalX(a), -0.44D, tile.getReverseZ(i) ); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} }
counter++;
} }
counter++;
} }
} }
} if (state.getValue(Anvil.FACING) == EnumFacing.EAST) {
if(state.getValue(Anvil.FACING) == EnumFacing.EAST){ int counter = 0;
int counter = 0; for (int a = 0; a < 5; a++) {
for(int a=0; a < 5; a++){ for (int i = 0; i < 5; i++) {
for(int i=0; i<5; i++){ if (!tile.getSlotStack(counter).isEmpty()) {
if(!tile.getSlotStack(counter).isEmpty()){ Item item = tile.getSlotStack(counter).getItem();
Item item = tile.getSlotStack(counter).getItem(); if (item.equals(Items.REDSTONE) ||
if(item.equals(Items.REDSTONE) || (item.equals(Items.DYE) && tile.getSlotStack(counter).getItemDamage() == EnumDyeColor.BLUE.getDyeDamage()) ||
(item.equals(Items.DYE) && tile.getSlotStack(counter).getItemDamage() == EnumDyeColor.BLUE.getDyeDamage()) || item.equals(PrimalItems.EMERALD_KNAPP) ||
item.equals(PrimalItems.EMERALD_KNAPP) || item.equals(PrimalItems.DIAMOND_KNAPP) ||
item.equals(PrimalItems.DIAMOND_KNAPP) || item.equals(Items.DIAMOND) ||
item.equals(Items.DIAMOND) || item.equals(Items.EMERALD)
item.equals(Items.EMERALD) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); GL11.glTranslated(tile.getReverseX(a), -0.49D, tile.getNormalZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.49D, tile.getNormalZ(i) ); GL11.glRotated(-90.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(-90.0F, 1.0F, 0.0F, 0.0F); GL11.glScaled(0.25D, 0.25D, 0.25D);
GL11.glScaled(0.25D, 0.25D, 0.25D); GL11.glRotated(-90.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotated(-90.0F, 0.0F, 0.0F, 1.0F); //GL11.glRotated(-90.0F, 1.0F, 0.0F, 0.0F);
//GL11.glRotated(-90.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.pickaxehead) ||
if(item.equals(ModItems.pickaxehead) || item.equals(ModItems.cleanironpickaxehead) ||
item.equals(ModItems.cleanironpickaxehead) || item.equals(ModItems.steelpickaxehead) ||
item.equals(ModItems.steelpickaxehead) || item.equals(ModItems.wootzpickaxehead)
item.equals(ModItems.wootzpickaxehead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.435D, tile.getNormalZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.435D, tile.getNormalZ(i) ); GL11.glRotated(-90.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotated(-90.0F, 0.0F, 1.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.ironaxehead) ||
if(item.equals(ModItems.ironaxehead) || item.equals(ModItems.cleanironaxehead) ||
item.equals(ModItems.cleanironaxehead) || item.equals(ModItems.steelaxehead) ||
item.equals(ModItems.steelaxehead) || item.equals(ModItems.wootzaxehead)
item.equals(ModItems.wootzaxehead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.435D, tile.getNormalZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.435D, tile.getNormalZ(i) ); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.ironshovelhead) ||
if(item.equals(ModItems.ironshovelhead) || item.equals(ModItems.cleanironshovelhead) ||
item.equals(ModItems.cleanironshovelhead) || item.equals(ModItems.steelshovelhead) ||
item.equals(ModItems.steelshovelhead) || item.equals(ModItems.steelshovelhead)
item.equals(ModItems.steelshovelhead) ) {
){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.435D, tile.getNormalZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.435D, tile.getNormalZ(i) ); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item.equals(ModItems.ironhoehead)) {
if(item.equals(ModItems.ironhoehead)){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.435D, tile.getNormalZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.435D, tile.getNormalZ(i) ); GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (Block.getBlockFromItem(item) instanceof IngotBall) {
if(Block.getBlockFromItem(item) instanceof IngotBall){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.44D, tile.getNormalZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.44D, tile.getNormalZ(i) ); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} if (item instanceof BaseMultiItem) {
if(item instanceof BaseMultiItem){ GL11.glPushMatrix();
GL11.glPushMatrix(); double scale = 1.0D;
double scale = 1.0D; GL11.glScaled(scale, scale, scale);
GL11.glScaled(scale, scale, scale); GL11.glTranslated(tile.getReverseX(a), -0.455D, tile.getNormalZ(i));
GL11.glTranslated( tile.getReverseX(a), -0.455D, tile.getNormalZ(i) ); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); GL11.glPopMatrix();
GL11.glPopMatrix(); }
} }
counter++;
} }
counter++;
} }
} }
}
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
GL11.glPopMatrix(); GL11.glPopMatrix();
}
} }
private void doRendering(TileAnvil tile, Integer counter, Integer i, Integer a){ private void doRendering(TileAnvil tile, Integer counter, Integer i, Integer a){

View File

@@ -1,5 +1,6 @@
package nmd.primal.forgecraft.renders.blocks; package nmd.primal.forgecraft.renders.blocks;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.RenderItem;
@@ -8,6 +9,7 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import nmd.primal.forgecraft.blocks.Bloomery;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@@ -19,55 +21,59 @@ public class TileBloomeryRender extends TileEntitySpecialRenderer<TileBloomery>
private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem(); private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
@Override @Override
public void renderTileEntityAt(TileBloomery tile, double x, double y, double z, float partialTicks, int destroyStage) public void renderTileEntityAt(TileBloomery tile, double x, double y, double z, float partialTicks, int destroyStage) {
{
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y + 0.0626D, z + 0.5D);
//GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
float prevLGTX = OpenGlHelper.lastBrightnessX;
float prevLGTY = OpenGlHelper.lastBrightnessY;
BlockPos pos = tile.getPos(); BlockPos pos = tile.getPos();
int bright = tile.getWorld().getCombinedLight(pos.up(), 0); IBlockState state = this.getWorld().getBlockState(pos);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536); if (state.getBlock() instanceof Bloomery) {
ItemStack stack0 = tile.getSlotStack(0);
ItemStack stack1 = tile.getSlotStack(1);
if (!stack0.isEmpty()) {
boolean is_block = stack0.getItem() instanceof ItemBlock;
float scale = is_block ? 0.1725F : 0.3F;
double xTrans = is_block ? -1.6D : -0.45D;
double yTrans = is_block ? -1.26D : -0.7D;
int stackRotation = stack0.getCount();
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glScalef(scale, scale, scale); GL11.glTranslated(x + 0.5D, y + 0.0626D, z + 0.5D);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); //GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0)); Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
GL11.glPopMatrix(); float prevLGTX = OpenGlHelper.lastBrightnessX;
float prevLGTY = OpenGlHelper.lastBrightnessY;
int bright = tile.getWorld().getCombinedLight(pos.up(), 0);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536);
ItemStack stack0 = tile.getSlotStack(0);
ItemStack stack1 = tile.getSlotStack(1);
if (!stack0.isEmpty()) {
boolean is_block = stack0.getItem() instanceof ItemBlock;
float scale = is_block ? 0.1725F : 0.3F;
double xTrans = is_block ? -1.6D : -0.45D;
double yTrans = is_block ? -1.26D : -0.7D;
int stackRotation = stack0.getCount();
for(int i = 0; i < Math.ceil(stackRotation/8) + 1; i++){
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glScalef(scale, scale, scale); GL11.glScalef(scale, scale, scale);
GL11.glRotated(45.0F * i, 0.0F, 1.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslated(xTrans, yTrans, 0.0D);
renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0)); renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0));
GL11.glPopMatrix(); GL11.glPopMatrix();
}
}
if(!stack1.isEmpty()){ for (int i = 0; i < Math.ceil(stackRotation / 8) + 1; i++) {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(0, 0.50D, 0); GL11.glScalef(scale, scale, scale);
GL11.glRotated(45.0F * i, 0.0F, 1.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslated(xTrans, yTrans, 0.0D);
renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0));
GL11.glPopMatrix();
}
}
if (!stack1.isEmpty()) {
GL11.glPushMatrix();
GL11.glTranslated(0, 0.50D, 0);
renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1)); renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1));
GL11.glPopMatrix();
}
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
GL11.glPopMatrix();
} }
} }

View File

@@ -21,82 +21,85 @@ public class TileBreakerRender extends TileEntitySpecialRenderer<TileBreaker>
private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem(); private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
@Override @Override
public void renderTileEntityAt(TileBreaker tile, double x, double y, double z, float partialTicks, int destroyStage) public void renderTileEntityAt(TileBreaker tile, double x, double y, double z, float partialTicks, int destroyStage) {
{
GL11.glPushMatrix();
GL11.glTranslated(x , y, z);
GL11.glScalef(1.0f,1.0f,1.0f);
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
float prevLGTX = OpenGlHelper.lastBrightnessX;
float prevLGTY = OpenGlHelper.lastBrightnessY;
BlockPos pos = tile.getPos(); BlockPos pos = tile.getPos();
IBlockState state = this.getWorld().getBlockState(pos); IBlockState state = this.getWorld().getBlockState(pos);
int bright = tile.getWorld().getCombinedLight(pos.up(), 0); if (state.getBlock() instanceof Breaker) {
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536);
//ItemStack stack0 = tile.getSlotStack(0);
if(state.getValue(Breaker.FACING) == EnumFacing.NORTH) {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(0.5D, 0.450D, 0.7); GL11.glTranslated(x, y, z);
GL11.glRotated(90, 0.0f, 1.0f, 0.0f); GL11.glScalef(1.0f, 1.0f, 1.0f);
GL11.glRotatef(-135, 0.0f, 0.0f, 1.0f); Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
float prevLGTX = OpenGlHelper.lastBrightnessX;
float prevLGTY = OpenGlHelper.lastBrightnessY;
int bright = tile.getWorld().getCombinedLight(pos.up(), 0);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536);
GL11.glRotatef(tile.getCharge(), 0.0f, 0.0f, 1.0f); //ItemStack stack0 = tile.getSlotStack(0);
GL11.glTranslatef(0.0f, 0.40f, 0.0f); if (state.getValue(Breaker.FACING) == EnumFacing.NORTH) {
GL11.glTranslated(-0.45D, 0.0D, 0.0D); GL11.glPushMatrix();
GL11.glTranslated(0.5D, 0.450D, 0.7);
GL11.glRotated(90, 0.0f, 1.0f, 0.0f);
GL11.glRotatef(-135, 0.0f, 0.0f, 1.0f);
renderItem.renderItem(tile.getSlotStack(0), ItemCameraTransforms.TransformType.FIXED); GL11.glRotatef(tile.getCharge(), 0.0f, 0.0f, 1.0f);
GL11.glTranslatef(0.0f, 0.40f, 0.0f);
GL11.glTranslated(-0.45D, 0.0D, 0.0D);
renderItem.renderItem(tile.getSlotStack(0), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (state.getValue(Breaker.FACING) == EnumFacing.EAST) {
GL11.glPushMatrix();
GL11.glTranslated(0.3D, 0.450D, 0.5);
//GL11.glRotated(90, 0.0f, 1.0f, 0.0f);
GL11.glRotatef(-135, 0.0f, 0.0f, 1.0f);
GL11.glRotatef(tile.getCharge(), 0.0f, 0.0f, 1.0f);
GL11.glTranslatef(0.0f, 0.40f, 0.0f);
GL11.glTranslated(-0.45D, 0.0D, 0.0D);
renderItem.renderItem(tile.getSlotStack(0), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (state.getValue(Breaker.FACING) == EnumFacing.SOUTH) {
GL11.glPushMatrix();
GL11.glTranslated(0.5D, 0.450D, 0.3);
GL11.glRotated(90, 0.0f, 1.0f, 0.0f);
GL11.glRotatef(45, 0.0f, 0.0f, 1.0f);
GL11.glRotatef(tile.getCharge(), 0.0f, 0.0f, -1.0f);
GL11.glTranslatef(0.0f, 0.40f, 0.0f);
GL11.glTranslated(-0.45D, 0.0D, 0.0D);
renderItem.renderItem(tile.getSlotStack(0), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (state.getValue(Breaker.FACING) == EnumFacing.WEST) {
GL11.glPushMatrix();
GL11.glTranslated(0.7D, 0.450D, 0.5);
//GL11.glRotated(90, 0.0f, 1.0f, 0.0f);
GL11.glRotatef(45, 0.0f, 0.0f, 1.0f);
GL11.glRotatef(tile.getCharge(), 0.0f, 0.0f, -1.0f);
GL11.glTranslatef(0.0f, 0.40f, 0.0f);
GL11.glTranslated(-0.45D, 0.0D, 0.0D);
renderItem.renderItem(tile.getSlotStack(0), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
if(state.getValue(Breaker.FACING) == EnumFacing.EAST) {
GL11.glPushMatrix();
GL11.glTranslated(0.3D, 0.450D, 0.5);
//GL11.glRotated(90, 0.0f, 1.0f, 0.0f);
GL11.glRotatef(-135, 0.0f, 0.0f, 1.0f);
GL11.glRotatef(tile.getCharge(), 0.0f, 0.0f, 1.0f);
GL11.glTranslatef(0.0f, 0.40f, 0.0f);
GL11.glTranslated(-0.45D, 0.0D, 0.0D);
renderItem.renderItem(tile.getSlotStack(0), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if(state.getValue(Breaker.FACING) == EnumFacing.SOUTH) {
GL11.glPushMatrix();
GL11.glTranslated(0.5D, 0.450D, 0.3);
GL11.glRotated(90, 0.0f, 1.0f, 0.0f);
GL11.glRotatef(45, 0.0f, 0.0f, 1.0f);
GL11.glRotatef(tile.getCharge(), 0.0f, 0.0f, -1.0f);
GL11.glTranslatef(0.0f, 0.40f, 0.0f);
GL11.glTranslated(-0.45D, 0.0D, 0.0D);
renderItem.renderItem(tile.getSlotStack(0), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if(state.getValue(Breaker.FACING) == EnumFacing.WEST) {
GL11.glPushMatrix();
GL11.glTranslated(0.7D, 0.450D, 0.5);
//GL11.glRotated(90, 0.0f, 1.0f, 0.0f);
GL11.glRotatef(45, 0.0f, 0.0f, 1.0f);
GL11.glRotatef(tile.getCharge(), 0.0f, 0.0f, -1.0f);
GL11.glTranslatef(0.0f, 0.40f, 0.0f);
GL11.glTranslated(-0.45D, 0.0D, 0.0D);
renderItem.renderItem(tile.getSlotStack(0), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
GL11.glPopMatrix();
} }
} }

View File

@@ -1,5 +1,6 @@
package nmd.primal.forgecraft.renders.blocks; package nmd.primal.forgecraft.renders.blocks;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.RenderItem;
@@ -10,6 +11,7 @@ import net.minecraft.init.Items;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import nmd.primal.forgecraft.blocks.Forge;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.tiles.TileForge; import nmd.primal.forgecraft.tiles.TileForge;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@@ -22,106 +24,111 @@ public class TileForgeRender extends TileEntitySpecialRenderer<TileForge>
private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem(); private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
@Override @Override
public void renderTileEntityAt(TileForge tile, double x, double y, double z, float partialTicks, int destroyStage) public void renderTileEntityAt(TileForge tile, double x, double y, double z, float partialTicks, int destroyStage) {
{
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y + 0.95D, z + 0.5D);
//GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
float prevLGTX = OpenGlHelper.lastBrightnessX;
float prevLGTY = OpenGlHelper.lastBrightnessY;
BlockPos pos = tile.getPos(); BlockPos pos = tile.getPos();
int bright = tile.getWorld().getCombinedLight(pos.up(), 0); IBlockState state = this.getWorld().getBlockState(pos);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536); if (state.getBlock() instanceof Forge) {
ItemStack stack1 = tile.getSlotStack(0);
boolean is_block = stack1.getItem() instanceof ItemBlock;
float scale = is_block ? 0.1725F : 0.3F;
double xTrans = is_block ? -1.6D : -0.45D;
double yTrans = is_block ? -1.26D : 0.75D;
if (!stack1.isEmpty()) {
int stackRotation = stack1.getCount();
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glScalef(scale, scale, scale); GL11.glTranslated(x + 0.5D, y + 0.95D, z + 0.5D);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); //GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1)); Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
GL11.glPopMatrix(); float prevLGTX = OpenGlHelper.lastBrightnessX;
for(int i = 0; i < Math.ceil(stackRotation/8) + 1; i++){ float prevLGTY = OpenGlHelper.lastBrightnessY;
int bright = tile.getWorld().getCombinedLight(pos.up(), 0);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536);
ItemStack stack1 = tile.getSlotStack(0);
boolean is_block = stack1.getItem() instanceof ItemBlock;
float scale = is_block ? 0.1725F : 0.3F;
double xTrans = is_block ? -1.6D : -0.45D;
double yTrans = is_block ? -1.26D : 0.75D;
if (!stack1.isEmpty()) {
int stackRotation = stack1.getCount();
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glScalef(scale, scale, scale); GL11.glScalef(scale, scale, scale);
GL11.glRotated(45.0F * i, 0.0F, 1.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslated(xTrans, yTrans, 0.0D);
renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1)); renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1));
GL11.glPopMatrix(); GL11.glPopMatrix();
for (int i = 0; i < Math.ceil(stackRotation / 8) + 1; i++) {
GL11.glPushMatrix();
GL11.glScalef(scale, scale, scale);
GL11.glRotated(45.0F * i, 0.0F, 1.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslated(xTrans, yTrans, 0.0D);
renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1));
GL11.glPopMatrix();
}
} }
}
for(int i=2; i < tile.getSlotListSize(); i++){ for (int i = 2; i < tile.getSlotListSize(); i++) {
if(!tile.getSlotStack(i).isEmpty()){ if (!tile.getSlotStack(i).isEmpty()) {
GL11.glPushMatrix(); GL11.glPushMatrix();
float tempScale = 0.8F; float tempScale = 0.8F;
GL11.glScalef(tempScale, tempScale, tempScale); GL11.glScalef(tempScale, tempScale, tempScale);
GL11.glTranslated(0.0F, 0.1D, 0.0F); GL11.glTranslated(0.0F, 0.1D, 0.0F);
if(i == 2){ if (i == 2) {
GL11.glTranslated(-0.3, -0.05D, -0.3D); GL11.glTranslated(-0.3, -0.05D, -0.3D);
if(tile.getSlotStack(i).getItem() == Items.IRON_INGOT){ if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
GL11.glScalef(0.5f, 0.5f, 0.5f); GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f); GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
}
} }
} if (i == 3) {
if(i == 3){ GL11.glTranslated(-0.3, -0.05D, 0.3D);
GL11.glTranslated(-0.3, -0.05D, 0.3D); if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
if(tile.getSlotStack(i).getItem() == Items.IRON_INGOT){ GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glScalef(0.5f, 0.5f, 0.5f); GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f); }
} }
} if (i == 4) {
if(i == 4){ if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
if(tile.getSlotStack(i).getItem() == Items.IRON_INGOT){ GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glScalef(0.5f, 0.5f, 0.5f); GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f); }
//GL11.glScalef(0.6F, 0.6F, 0.6F);
if (tile.getSlotStack(i).getItem() == ModItems.pickaxehead) {
GL11.glRotated(180.0F, 0.0F, 1.0F, 0.0F);
}
if (tile.getSlotStack(i).getItem() == ModItems.ironaxehead) {
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
}
if (tile.getSlotStack(i).getItem() == ModItems.ironshovelhead) {
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
}
if (tile.getSlotStack(i).getItem() == ModItems.ironhoehead) {
GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslated(0.0, 0.025D, 0.0D);
}
} }
//GL11.glScalef(0.6F, 0.6F, 0.6F); if (i == 5) {
if(tile.getSlotStack(i).getItem() == ModItems.pickaxehead) { GL11.glTranslated(0.3, -0.05D, -0.3D);
GL11.glRotated(180.0F, 0.0F, 1.0F, 0.0F); if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
}
} }
if(tile.getSlotStack(i).getItem() == ModItems.ironaxehead) { if (i == 6) {
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); GL11.glTranslated(0.3, -0.05D, 0.3D);
} if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
if(tile.getSlotStack(i).getItem() == ModItems.ironshovelhead) { GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
} }
if(tile.getSlotStack(i).getItem() == ModItems.ironhoehead) {
GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslated(0.0, 0.025D, 0.0D);
} }
renderItem.renderItem(tile.getSlotStack(i), ItemCameraTransforms.TransformType.FIXED);
//renderItem.renderItem(tile.getSlotStack(i), renderItem.getItemModelMesher().getItemModel(tile.getSlotStack(i)));
GL11.glPopMatrix();
} }
if(i == 5){
GL11.glTranslated(0.3, -0.05D, -0.3D);
if(tile.getSlotStack(i).getItem() == Items.IRON_INGOT){
GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
}
}
if(i == 6){
GL11.glTranslated(0.3, -0.05D, 0.3D);
if(tile.getSlotStack(i).getItem() == Items.IRON_INGOT){
GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
}
}
renderItem.renderItem(tile.getSlotStack(i), ItemCameraTransforms.TransformType.FIXED);
//renderItem.renderItem(tile.getSlotStack(i), renderItem.getItemModelMesher().getItemModel(tile.getSlotStack(i)));
GL11.glPopMatrix();
} }
}
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
GL11.glPopMatrix(); GL11.glPopMatrix();
}
} }
} }

View File

@@ -24,63 +24,70 @@ public class TilePistonBellowsRender extends TileEntitySpecialRenderer<TilePisto
@Override @Override
public void renderTileEntityAt(TilePistonBellows tile, double x, double y, double z, float partialTicks, int destroyStage) public void renderTileEntityAt(TilePistonBellows tile, double x, double y, double z, float partialTicks, int destroyStage)
{ {
BlockPos pos = tile.getPos();
IBlockState state = this.getWorld().getBlockState(pos);
if (state.getBlock() instanceof PistonBellows) {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y + 0.5D, z + 0.5D); GL11.glTranslated(x + 0.5D, y + 0.5D, z + 0.5D);
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
float prevLGTX = OpenGlHelper.lastBrightnessX; float prevLGTX = OpenGlHelper.lastBrightnessX;
float prevLGTY = OpenGlHelper.lastBrightnessY; float prevLGTY = OpenGlHelper.lastBrightnessY;
BlockPos pos = tile.getPos();
IBlockState state = this.getWorld().getBlockState(pos);
int bright = tile.getWorld().getCombinedLight(pos.up(), 0); int bright = tile.getWorld().getCombinedLight(pos.up(), 0);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536);
GL11.glPushMatrix();
if(state.getValue(PistonBellows.FACING) == EnumFacing.NORTH){
GL11.glRotated(0, 0.0F, 1.0F, 0.0F);
if(state.getValue(PistonBellows.ACTIVE) == Boolean.TRUE){
//System.out.println(tile.getAnimation());
GL11.glTranslated(0.0D, 0, (double) tile.getAnimation()/25);
}
ItemStack stackToRender = new ItemStack(ModItems.pistonbellows, 1);
renderItem.renderItem(stackToRender, renderItem.getItemModelMesher().getItemModel(stackToRender));
}
if(state.getValue(PistonBellows.FACING) == EnumFacing.SOUTH){
//GL11.glPushMatrix();
GL11.glRotated(180, 0.0F, 1.0F, 0.0F);
if(state.getValue(PistonBellows.ACTIVE) == Boolean.TRUE){
//System.out.println(tile.getAnimation());
GL11.glTranslated(0.0D, 0, (double) tile.getAnimation()/25);
}
ItemStack stackToRender = new ItemStack(ModItems.pistonbellows, 1);
renderItem.renderItem(stackToRender, renderItem.getItemModelMesher().getItemModel(stackToRender));
//GL11.glPopMatrix();
}
if(state.getValue(PistonBellows.FACING) == EnumFacing.EAST){
//GL11.glPushMatrix();
GL11.glRotated(270, 0.0F, 1.0F, 0.0F);
if(state.getValue(PistonBellows.ACTIVE) == Boolean.TRUE){
//System.out.println(tile.getAnimation());
GL11.glTranslated(0.0D, 0, (double) tile.getAnimation()/25);
}
ItemStack stackToRender = new ItemStack(ModItems.pistonbellows, 1);
renderItem.renderItem(stackToRender, renderItem.getItemModelMesher().getItemModel(stackToRender));
//GL11.glPopMatrix();
}
if(state.getValue(PistonBellows.FACING) == EnumFacing.WEST){
//GL11.glPushMatrix();
GL11.glRotated(90, 0.0F, 1.0F, 0.0F);
if(state.getValue(PistonBellows.ACTIVE) == Boolean.TRUE){
//System.out.println(tile.getAnimation());
GL11.glTranslated(0.0D, 0, (double) tile.getAnimation()/25);
}
ItemStack stackToRender = new ItemStack(ModItems.pistonbellows, 1);
renderItem.renderItem(stackToRender, renderItem.getItemModelMesher().getItemModel(stackToRender));
//GL11.glPopMatrix();
}
GL11.glPopMatrix();
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
GL11.glPopMatrix(); GL11.glPushMatrix();
if (state.getValue(PistonBellows.FACING) == EnumFacing.NORTH) {
GL11.glRotated(0, 0.0F, 1.0F, 0.0F);
if (state.getValue(PistonBellows.ACTIVE) == Boolean.TRUE) {
//System.out.println(tile.getAnimation());
GL11.glTranslated(0.0D, 0, (double) tile.getAnimation() / 25);
}
ItemStack stackToRender = new ItemStack(ModItems.pistonbellows, 1);
renderItem.renderItem(stackToRender, renderItem.getItemModelMesher().getItemModel(stackToRender));
}
if (state.getValue(PistonBellows.FACING) == EnumFacing.SOUTH) {
//GL11.glPushMatrix();
GL11.glRotated(180, 0.0F, 1.0F, 0.0F);
if (state.getValue(PistonBellows.ACTIVE) == Boolean.TRUE) {
//System.out.println(tile.getAnimation());
GL11.glTranslated(0.0D, 0, (double) tile.getAnimation() / 25);
}
ItemStack stackToRender = new ItemStack(ModItems.pistonbellows, 1);
renderItem.renderItem(stackToRender, renderItem.getItemModelMesher().getItemModel(stackToRender));
//GL11.glPopMatrix();
}
if (state.getValue(PistonBellows.FACING) == EnumFacing.EAST) {
//GL11.glPushMatrix();
GL11.glRotated(270, 0.0F, 1.0F, 0.0F);
if (state.getValue(PistonBellows.ACTIVE) == Boolean.TRUE) {
//System.out.println(tile.getAnimation());
GL11.glTranslated(0.0D, 0, (double) tile.getAnimation() / 25);
}
ItemStack stackToRender = new ItemStack(ModItems.pistonbellows, 1);
renderItem.renderItem(stackToRender, renderItem.getItemModelMesher().getItemModel(stackToRender));
//GL11.glPopMatrix();
}
if (state.getValue(PistonBellows.FACING) == EnumFacing.WEST) {
//GL11.glPushMatrix();
GL11.glRotated(90, 0.0F, 1.0F, 0.0F);
if (state.getValue(PistonBellows.ACTIVE) == Boolean.TRUE) {
//System.out.println(tile.getAnimation());
GL11.glTranslated(0.0D, 0, (double) tile.getAnimation() / 25);
}
ItemStack stackToRender = new ItemStack(ModItems.pistonbellows, 1);
renderItem.renderItem(stackToRender, renderItem.getItemModelMesher().getItemModel(stackToRender));
//GL11.glPopMatrix();
}
GL11.glPopMatrix();
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
GL11.glPopMatrix();
}
} }
} }

View File

@@ -2,7 +2,7 @@
"modid": "forgecraft", "modid": "forgecraft",
"name": "Kitsu's Forgecraft", "name": "Kitsu's Forgecraft",
"description": "Forged with sweat and blood", "description": "Forged with sweat and blood",
"version": "1.2.21", "version": "1.2.22",
"mcversion": "1.11.2", "mcversion": "1.11.2",
"url": "", "url": "",
"updateUrl": "", "updateUrl": "",