Fixed server sided issue with Attractor Array

Added Movement Array, and helped generalize the Arrays a bit more
This commit is contained in:
WayofTime 2016-06-29 07:43:04 -04:00
parent 22c1f0db55
commit 1836fc742d
11 changed files with 130 additions and 13 deletions

View file

@ -9,6 +9,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation;
import WayofTime.bloodmagic.api.alchemyCrafting.AlchemyCircleRenderer;
import WayofTime.bloodmagic.tile.TileAlchemyArray;
public class AttractorAlchemyCircleRenderer extends AlchemyCircleRenderer
{
@ -57,6 +58,13 @@ public class AttractorAlchemyCircleRenderer extends AlchemyCircleRenderer
@Override
public void renderAt(TileEntity tile, double x, double y, double z, float craftTime)
{
if (!(tile instanceof TileAlchemyArray))
{
return;
}
TileAlchemyArray tileArray = (TileAlchemyArray) tile;
Tessellator tessellator = Tessellator.getInstance();
VertexBuffer wr = tessellator.getBuffer();
@ -78,6 +86,7 @@ public class AttractorAlchemyCircleRenderer extends AlchemyCircleRenderer
// Specify which face this "circle" is located on
EnumFacing sideHit = EnumFacing.UP;
EnumFacing rotation = tileArray.getRotation();
GlStateManager.translate(sideHit.getFrontOffsetX() * offsetFromFace, sideHit.getFrontOffsetY() * offsetFromFace, sideHit.getFrontOffsetZ() * offsetFromFace);
@ -109,6 +118,9 @@ public class AttractorAlchemyCircleRenderer extends AlchemyCircleRenderer
GlStateManager.pushMatrix();
GlStateManager.translate(0.5f, 0.5f, getVerticalOffset(craftTime));
GlStateManager.rotate(rotation.getHorizontalAngle() + 180, 0, 0, 1);
GlStateManager.pushMatrix();
GlStateManager.rotate(rot, 0, 0, 1);
GlStateManager.rotate(secondaryRot, 1, 0, 0);
double var31 = 0.0D;
@ -133,5 +145,6 @@ public class AttractorAlchemyCircleRenderer extends AlchemyCircleRenderer
// GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GlStateManager.popMatrix();
GlStateManager.popMatrix();
}
}

View file

@ -9,6 +9,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation;
import WayofTime.bloodmagic.api.alchemyCrafting.AlchemyCircleRenderer;
import WayofTime.bloodmagic.tile.TileAlchemyArray;
public class StaticAlchemyCircleRenderer extends AlchemyCircleRenderer
{
@ -31,7 +32,7 @@ public class StaticAlchemyCircleRenderer extends AlchemyCircleRenderer
@Override
public float getRotation(float craftTime)
{
float offset = 2;
float offset = 50;
if (craftTime >= offset)
{
float modifier = (craftTime - offset) * 5f;
@ -49,6 +50,13 @@ public class StaticAlchemyCircleRenderer extends AlchemyCircleRenderer
@Override
public void renderAt(TileEntity tile, double x, double y, double z, float craftTime)
{
if (!(tile instanceof TileAlchemyArray))
{
return;
}
TileAlchemyArray tileArray = (TileAlchemyArray) tile;
Tessellator tessellator = Tessellator.getInstance();
VertexBuffer wr = tessellator.getBuffer();
@ -69,6 +77,7 @@ public class StaticAlchemyCircleRenderer extends AlchemyCircleRenderer
// Specify which face this "circle" is located on
EnumFacing sideHit = EnumFacing.UP;
EnumFacing rotation = tileArray.getRotation();
GlStateManager.translate(sideHit.getFrontOffsetX() * offsetFromFace, sideHit.getFrontOffsetY() * offsetFromFace, sideHit.getFrontOffsetZ() * offsetFromFace);
@ -100,6 +109,9 @@ public class StaticAlchemyCircleRenderer extends AlchemyCircleRenderer
GlStateManager.pushMatrix();
GlStateManager.translate(0.5f, 0.5f, getVerticalOffset(craftTime));
GlStateManager.rotate(rotation.getHorizontalAngle() + 180, 0, 0, 1);
GlStateManager.pushMatrix();
GlStateManager.rotate(rot, 0, 1, 0);
// GlStateManager.rotate(secondaryRot, 1, 0, 0);
// GlStateManager.rotate(secondaryRot, 0, 1, 0);
@ -125,5 +137,6 @@ public class StaticAlchemyCircleRenderer extends AlchemyCircleRenderer
// GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GlStateManager.popMatrix();
GlStateManager.popMatrix();
}
}