Fix rift speed up and make portals render on both sides

This commit is contained in:
Runemoro 2018-01-22 18:46:19 -05:00
parent 932aa6857b
commit d52206e538
5 changed files with 13 additions and 10 deletions

View file

@ -19,7 +19,7 @@ public final class DimensionalWallRenderer {
private static final FloatBuffer buffer = GLAllocation.createDirectFloatBuffer(16);
private static final ResourceLocation warpPath = new ResourceLocation(DimDoors.MODID + ":textures/other/warp.png");
// TODO: any angle
// TODO: any renderAngle
/**
* @param x The x coordinate of the wall's center.
* @param y The y coordinate of the wall's center.
@ -33,6 +33,7 @@ public final class DimensionalWallRenderer {
*/
public static void renderDimensionalWall(double x, double y, double z, EnumFacing orientation, double width, double height, RGBA[] colors) {
GlStateManager.disableLighting();
GlStateManager.disableCull();
for (int pass = 0; pass < 16; pass++) {
GlStateManager.pushMatrix();
@ -175,6 +176,7 @@ public final class DimensionalWallRenderer {
GlStateManager.disableTexGenCoord(GlStateManager.TexGen.T);
GlStateManager.disableTexGenCoord(GlStateManager.TexGen.R);
GlStateManager.disableTexGenCoord(GlStateManager.TexGen.Q);
GlStateManager.enableCull();
GlStateManager.enableLighting();
}

View file

@ -142,14 +142,12 @@ public class TileEntityFloatingRiftRenderer extends TileEntitySpecialRenderer<Ti
new Vector4f(0.5f,0.5f,-0.5f,0.5f)
};
private double angle = 0;
/**
* Renders the rift.
*/
@Override
public void render(TileEntityFloatingRift te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) {
double radian = update(partialTicks) * TrigMath.DEG_TO_RAD;
double radian = update(te, partialTicks) * TrigMath.DEG_TO_RAD;
RGBA color = te.getColor();
if (color == null) color = new RGBA(1, 0.5f, 1, 1);
@ -182,9 +180,9 @@ public class TileEntityFloatingRiftRenderer extends TileEntitySpecialRenderer<Ti
GlStateManager.enableLighting();
}
private double update(float partialTicks) {
angle = (angle + 1 * partialTicks) % 360;
return angle;
private double update(TileEntityFloatingRift te, float partialTicks) {
te.renderAngle = (te.renderAngle + 1 * partialTicks) % 360;
return te.renderAngle;
}
private Vector4f rotation(Vector4f v, double angle) {

View file

@ -111,6 +111,4 @@ import java.util.Random;
public boolean isFloating() {
return false;
}
}

View file

@ -4,6 +4,8 @@ import lombok.Setter;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import org.dimdev.ddutils.nbt.NBTUtils;
import org.dimdev.annotatednbt.Saved;
import org.dimdev.annotatednbt.NBTSerializable;
@ -38,6 +40,9 @@ import net.minecraft.util.math.AxisAlignedBB;
@Setter private boolean unregisterDisabled = false;
@SideOnly(Side.CLIENT)
public double renderAngle = 0;
public TileEntityFloatingRift() {
updateTimer = random.nextInt(UPDATE_PERIOD);
}

View file

@ -40,7 +40,7 @@ public abstract class WorldProviderPocket extends WorldProvider {
@Override public boolean canCoordinateBeSpawn(int x, int z) { return true; } // Spawn is set even if it canCoordinateBeSpawn is false after 1000 tries anyway
@Override public int getAverageGroundLevel() { return 15; } // TODO: set this to 10 + yBase in the config
@Override public int getAverageGroundLevel() { return 0; } // Pocket worlds are mostly void-filled
@Override public boolean shouldMapSpin(String entity, double x, double z, double rotation) { return true; }