diff --git a/src/main/java/WayofTime/bloodmagic/api/alchemyCrafting/AlchemyCircleRenderer.java b/src/main/java/WayofTime/bloodmagic/api/alchemyCrafting/AlchemyCircleRenderer.java new file mode 100644 index 00000000..efc1b44b --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/api/alchemyCrafting/AlchemyCircleRenderer.java @@ -0,0 +1,101 @@ +package WayofTime.bloodmagic.api.alchemyCrafting; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +public class AlchemyCircleRenderer { + + public AlchemyCircleRenderer() { + + } + + public void renderAt(TileEntity tile, double x, double y, double z) { + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer wr = tessellator.getWorldRenderer(); + + GL11.glPushMatrix(); + // float rot = (float)(this.worldObj.provider.getWorldTime() % (360 / + // this.rotationspeed) * this.rotationspeed) + this.rotationspeed * f; + float rot = 0; + + float size = 1.0F; + + // Bind the texture to the circle + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/SightSigil.png")); + + GL11.glTexParameterf(3553, 10242, 10497.0F); + GL11.glTexParameterf(3553, 10243, 10497.0F); + + GL11.glDisable(2884); + + GL11.glEnable(3042); + GL11.glBlendFunc(770, 1); + + GL11.glTranslated(x, y, z); + + EnumFacing sideHit = EnumFacing.UP; // Specify which face this "circle" + // is located on + GL11.glTranslatef(sideHit.getFrontOffsetX() * -0.9f, sideHit.getFrontOffsetY() * -0.9f, sideHit.getFrontOffsetZ() * -0.9f); + + switch (sideHit) { + case DOWN: + GL11.glTranslatef(0, 0, 1); + GL11.glRotatef(-90.0f, 1, 0, 0); + break; + case EAST: + GL11.glRotatef(-90.0f, 0, 1, 0); + GL11.glTranslatef(0, 0, -1); + break; + case NORTH: + break; + case SOUTH: + GL11.glRotatef(180.0f, 0, 1, 0); + GL11.glTranslatef(-1, 0, -1); + break; + case UP: + GL11.glTranslatef(0, 1, 0); + GL11.glRotatef(90.0f, 1, 0, 0); + break; + case WEST: + GL11.glTranslatef(0, 0, 1); + GL11.glRotatef(90.0f, 0, 1, 0); + break; + } + + GL11.glPushMatrix(); + GL11.glTranslatef(0.5f, 0.5f, 0); + GL11.glRotatef(rot, 0, 0, 1); + double var31 = 0.0D; + double var33 = 1.0D; + double var35 = 0; + double var37 = 1; + + // GL11.glRotatef(60.0F, 0.0F, 1.0F, 0.0F); + wr.begin(7, DefaultVertexFormats.POSITION_TEX); + // wr.setBrightness(200); +// wr.putColorRGB_F(1, 1, 1, 1); +// wr.putColorMultiplier(1, 1, 1, 1); + wr.pos(0.5, 0.5, 0.0D).tex(var33, var37).endVertex(); + wr.pos(0.5, -0.5, 0.0D).tex(var33, var35).endVertex(); + wr.pos(-0.5, -0.5, 0.0D).tex(var31, var35).endVertex(); + wr.pos(-0.5, 0.5, 0.0D).tex(var31, var37).endVertex(); + tessellator.draw(); + + GL11.glPopMatrix(); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDepthMask(true); + GL11.glDisable(3042); + GL11.glEnable(2884); +// GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + + GL11.glPopMatrix(); + } +} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockAlchemyArray.java b/src/main/java/WayofTime/bloodmagic/block/BlockAlchemyArray.java new file mode 100644 index 00000000..662c02a7 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/block/BlockAlchemyArray.java @@ -0,0 +1,65 @@ +package WayofTime.bloodmagic.block; + +import java.util.List; +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumWorldBlockLayer; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import WayofTime.bloodmagic.BloodMagic; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.tile.TileAlchemyArray; + +public class BlockAlchemyArray extends BlockContainer { + + public BlockAlchemyArray() { + super(Material.cloth); + + setUnlocalizedName(Constants.Mod.MODID + ".alchemyArray"); + setCreativeTab(BloodMagic.tabBloodMagic); + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public EnumWorldBlockLayer getBlockLayer() { + return EnumWorldBlockLayer.CUTOUT; + } + + @Override + public boolean isFullCube() { + return false; + } + + @Override + public void addCollisionBoxesToList(World worldIn, BlockPos pos, IBlockState state, AxisAlignedBB mask, List list, Entity collidingEntity) { + this.setBlockBounds(0, 0, 0, 1, 0.1f, 1); + } + + @Override + public int quantityDropped(Random random) { + return 0; + } + + @Override + public int getRenderType() { + return -1; + } + + @Override + public TileEntity createNewTileEntity(World worldIn, int meta) { + return new TileAlchemyArray(); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/client/render/RenderAlchemyArray.java b/src/main/java/WayofTime/bloodmagic/client/render/RenderAlchemyArray.java new file mode 100644 index 00000000..6fcea4c3 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/client/render/RenderAlchemyArray.java @@ -0,0 +1,19 @@ +package WayofTime.bloodmagic.client.render; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import WayofTime.bloodmagic.api.alchemyCrafting.AlchemyCircleRenderer; +import WayofTime.bloodmagic.tile.TileAlchemyArray; + +public class RenderAlchemyArray extends TileEntitySpecialRenderer +{ + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTicks, int destroyStage) + { + if (tileEntity instanceof TileAlchemyArray) + { + AlchemyCircleRenderer renderer = new AlchemyCircleRenderer(); //Temporary renderer for testing + renderer.renderAt(tileEntity, x, y, z); + } + } +} diff --git a/src/main/java/WayofTime/bloodmagic/proxy/ClientProxy.java b/src/main/java/WayofTime/bloodmagic/proxy/ClientProxy.java index 29a6ef69..129e65a1 100644 --- a/src/main/java/WayofTime/bloodmagic/proxy/ClientProxy.java +++ b/src/main/java/WayofTime/bloodmagic/proxy/ClientProxy.java @@ -1,12 +1,15 @@ package WayofTime.bloodmagic.proxy; -import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.registry.ModBlocks; -import WayofTime.bloodmagic.registry.ModItems; -import WayofTime.bloodmagic.util.helper.InventoryRenderHelper; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.client.model.obj.OBJLoader; +import net.minecraftforge.fml.client.registry.ClientRegistry; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.client.render.RenderAlchemyArray; +import WayofTime.bloodmagic.registry.ModBlocks; +import WayofTime.bloodmagic.registry.ModItems; +import WayofTime.bloodmagic.tile.TileAlchemyArray; +import WayofTime.bloodmagic.util.helper.InventoryRenderHelper; public class ClientProxy extends CommonProxy { @@ -17,6 +20,7 @@ public class ClientProxy extends CommonProxy { OBJLoader.instance.addDomain(Constants.Mod.MODID); ModelLoader.setCustomModelResourceLocation(InventoryRenderHelper.getItemFromBlock(ModBlocks.altar), 0, new ModelResourceLocation(Constants.Mod.DOMAIN + "BlockAltar", "inventory")); + ClientRegistry.bindTileEntitySpecialRenderer(TileAlchemyArray.class, new RenderAlchemyArray()); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java b/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java index 34c82028..e4dbb32d 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModBlocks.java @@ -24,6 +24,7 @@ public class ModBlocks { public static Block testSpellBlock; public static Block pedestal; public static Block teleposer; + public static Block alchemyArray; public static Block lifeEssence; @@ -42,6 +43,7 @@ public class ModBlocks { testSpellBlock = registerBlock(new BlockTestSpellBlock()); pedestal = registerBlock(new BlockPedestal(), ItemBlockPedestal.class); teleposer = registerBlock(new BlockTeleposer()); + alchemyArray = registerBlock(new BlockAlchemyArray()); crystal = registerBlock(new BlockCrystal(), ItemBlockCrystal.class); bloodStoneBrick = registerBlock(new BlockBloodStoneBrick(), ItemBlockBloodStoneBrick.class); @@ -86,6 +88,7 @@ public class ModBlocks { renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(pedestal), 0); renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(pedestal), 1); renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(teleposer)); + renderHelper.itemRender(InventoryRenderHelper.getItemFromBlock(alchemyArray)); } private static Block registerBlock(Block block, Class itemBlock, String name) { diff --git a/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyArray.java b/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyArray.java new file mode 100644 index 00000000..48ed72b2 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyArray.java @@ -0,0 +1,7 @@ +package WayofTime.bloodmagic.tile; + +import net.minecraft.tileentity.TileEntity; + +public class TileAlchemyArray extends TileEntity{ + +} diff --git a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/GreenGroveArray.png b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/GreenGroveArray.png deleted file mode 100644 index 5411368b..00000000 Binary files a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/GreenGroveArray.png and /dev/null differ diff --git a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/InterdictionArray.png b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/InterdictionArray.png deleted file mode 100644 index bbe559ca..00000000 Binary files a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/InterdictionArray.png and /dev/null differ diff --git a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/LavaArray.png b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/LavaArray.png deleted file mode 100644 index bb55e898..00000000 Binary files a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/LavaArray.png and /dev/null differ diff --git a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/LavaSigil.png b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/LavaSigil.png new file mode 100644 index 00000000..be12b5a5 Binary files /dev/null and b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/LavaSigil.png differ diff --git a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/MagnetismArray.png b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/MagnetismArray.png deleted file mode 100644 index 6630b54b..00000000 Binary files a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/MagnetismArray.png and /dev/null differ diff --git a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/SightSigil.png b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/SightSigil.png new file mode 100644 index 00000000..ea384ead Binary files /dev/null and b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/SightSigil.png differ diff --git a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/WaterArray.png b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/WaterArray.png deleted file mode 100644 index e75a578b..00000000 Binary files a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/WaterArray.png and /dev/null differ diff --git a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/WellOfSufferingArray.png b/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/WellOfSufferingArray.png deleted file mode 100644 index c5c63f6a..00000000 Binary files a/src/main/resources/assets/bloodmagic/textures/models/AlchemyArrays/WellOfSufferingArray.png and /dev/null differ