Generated the initial infrastructure for Alchemy Array effects, which includes crafting. Needs to be hooked into by TileAlchemyArray.

This commit is contained in:
WayofTime 2015-12-23 18:45:47 -05:00
parent 073830a785
commit 63c3853776
7 changed files with 289 additions and 13 deletions

View file

@ -0,0 +1,9 @@
package WayofTime.bloodmagic.api.alchemyCrafting;
import net.minecraft.tileentity.TileEntity;
public abstract class AlchemyArrayEffect {
public abstract boolean update(TileEntity tile, int ticksActive);
}

View file

@ -0,0 +1,30 @@
package WayofTime.bloodmagic.api.alchemyCrafting;
import lombok.Getter;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
public class AlchemyArrayEffectCrafting extends AlchemyArrayEffect {
@Getter
public final ItemStack outputStack;
public AlchemyArrayEffectCrafting(ItemStack outputStack) {
this.outputStack = outputStack;
}
@Override
public boolean update(TileEntity tile, int ticksActive) {
//TODO: Add recipe rechecking to verify nothing screwy is going on.
BlockPos pos = tile.getPos();
ItemStack output = outputStack.copy();
EntityItem outputEntity = new EntityItem(tile.getWorld(), pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, output);
tile.getWorld().spawnEntityInWorld(outputEntity);
return true;
}
}

View file

@ -12,8 +12,11 @@ import org.lwjgl.opengl.GL11;
public class AlchemyCircleRenderer {
public AlchemyCircleRenderer() {
public float offsetFromFace = -0.9f;
public final ResourceLocation arrayResource;
public AlchemyCircleRenderer(ResourceLocation arrayResource) {
this.arrayResource = arrayResource;
}
public void renderAt(TileEntity tile, double x, double y, double z) {
@ -28,7 +31,7 @@ public class AlchemyCircleRenderer {
float size = 1.0F;
// Bind the texture to the circle
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/SightSigil.png"));
Minecraft.getMinecraft().renderEngine.bindTexture(arrayResource);
GL11.glTexParameterf(3553, 10242, 10497.0F);
GL11.glTexParameterf(3553, 10243, 10497.0F);
@ -42,7 +45,7 @@ public class AlchemyCircleRenderer {
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);
GL11.glTranslatef(sideHit.getFrontOffsetX() * offsetFromFace, sideHit.getFrontOffsetY() * offsetFromFace, sideHit.getFrontOffsetZ() * offsetFromFace);
switch (sideHit) {
case DOWN: