Created initial AlchemyArray block which will be used in crafting. SightSigil array is used for testing purposes for rendering. Packets and changing the shown image need to be completed.

This commit is contained in:
WayofTime 2015-12-23 15:20:26 -05:00
parent cce3d6b79a
commit 073830a785
14 changed files with 203 additions and 4 deletions

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -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);
}
}
}

View file

@ -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

View file

@ -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<? extends ItemBlock> itemBlock, String name) {

View file

@ -0,0 +1,7 @@
package WayofTime.bloodmagic.tile;
import net.minecraft.tileentity.TileEntity;
public class TileAlchemyArray extends TileEntity{
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB