Merge horizontal and vertical entrances
This commit is contained in:
parent
0599a6d340
commit
ff6ba0f7ba
45 changed files with 137 additions and 328 deletions
|
@ -12,9 +12,6 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
import net.minecraft.util.text.translation.I18n;
|
||||
import net.minecraft.world.WorldProvider;
|
||||
import net.minecraftforge.client.IRenderHandler;
|
||||
import net.minecraftforge.fml.common.FMLLog;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.common.SidedProxy;
|
||||
import net.minecraftforge.fml.common.event.*;
|
||||
|
|
|
@ -3,9 +3,8 @@ package com.zixiken.dimdoors.client;
|
|||
import com.zixiken.dimdoors.shared.DDProxyCommon;
|
||||
import com.zixiken.dimdoors.shared.entities.EntityMonolith;
|
||||
import com.zixiken.dimdoors.shared.entities.RenderMonolith;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityVerticalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityFloatingRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityHorizontalEntranceRift;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.WorldProvider;
|
||||
|
@ -36,8 +35,7 @@ public class DDProxyClient extends DDProxyCommon {
|
|||
}
|
||||
|
||||
public void registerRenderers() {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityVerticalEntranceRift.class, new TileEntityVerticalEntranceRiftRenderer());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHorizontalEntranceRift.class, new TileEntityHorizontalEntranceRiftRenderer());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEntranceRift.class, new TileEntityEntranceRiftRenderer());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFloatingRift.class, new TileEntityFloatingRiftRenderer());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMonolith.class, manager -> new RenderMonolith(manager, 0.5f));
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.zixiken.dimdoors.client;
|
|||
|
||||
import com.zixiken.dimdoors.shared.blocks.ModBlocks;
|
||||
import com.zixiken.dimdoors.shared.items.ModItems;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockDoor;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.zixiken.dimdoors.client;
|
|||
|
||||
import com.zixiken.dimdoors.shared.util.WorldUtils;
|
||||
import com.zixiken.dimdoors.shared.world.DimDoorDimensions;
|
||||
import net.minecraft.client.particle.ParticleFirework;
|
||||
import net.minecraft.client.particle.ParticleSimpleAnimated;
|
||||
import net.minecraft.client.renderer.BufferBuilder;
|
||||
import net.minecraft.entity.Entity;
|
||||
|
|
|
@ -1,19 +1,16 @@
|
|||
package com.zixiken.dimdoors.client;
|
||||
|
||||
import java.nio.FloatBuffer;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import com.zixiken.dimdoors.DimDoors;
|
||||
import com.zixiken.dimdoors.shared.blocks.BlockDimDoorBase;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityVerticalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.util.RGBA;
|
||||
import net.minecraft.block.BlockDoor;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.client.renderer.*;
|
||||
import net.minecraft.client.renderer.vertex.*;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -22,36 +19,29 @@ import net.minecraft.util.ResourceLocation;
|
|||
|
||||
import static org.lwjgl.opengl.GL11.*;
|
||||
|
||||
public class TileEntityVerticalEntranceRiftRenderer extends TileEntitySpecialRenderer<TileEntityVerticalEntranceRift> {
|
||||
public class TileEntityEntranceRiftRenderer extends TileEntitySpecialRenderer<TileEntityEntranceRift> { // TODO: see TileEntityEndGatewayRenderer
|
||||
|
||||
private FloatBuffer buffer = GLAllocation.createDirectFloatBuffer(16);
|
||||
private ResourceLocation warpPath = new ResourceLocation(DimDoors.MODID + ":textures/other/warp.png");
|
||||
private ResourceLocation keyPath = new ResourceLocation(DimDoors.MODID + ":textures/other/keyhole.png");
|
||||
private ResourceLocation keyholeLight = new ResourceLocation(DimDoors.MODID + ":textures/other/keyhole_light.png");
|
||||
Map<TileEntityEntranceRift, RGBA[]> colorMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* Renders the dimdoor.
|
||||
*/
|
||||
public void renderDimDoorTileEntity(TileEntityVerticalEntranceRift tile, double x, double y, double z) {
|
||||
// TODO: allow any angle, make static and in a separate class
|
||||
public void renderDimensionalWall(double x, double y, double z, RGBA[] colors, EnumFacing orientation, double extendUp, double extendDown, double extendLeft, double extendRight, double pushIn) {
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
Random rand = new Random(31100L);
|
||||
|
||||
EnumFacing orientation = tile.orientation;
|
||||
IBlockState state = tile.getWorld().getBlockState(tile.getPos());
|
||||
if (state.getBlock() instanceof BlockDoor && state.getValue(BlockDoor.HALF) == BlockDoor.EnumDoorHalf.LOWER) y += 1;
|
||||
// TODO: option for non-doors in the TileEntityEntranceRift
|
||||
|
||||
for (int count = 0; count < 16; ++count) {
|
||||
for (int pass = 0; pass < 16; pass++) {
|
||||
GlStateManager.pushMatrix();
|
||||
|
||||
float var15 = 16 - count;
|
||||
float var15 = 16 - pass;
|
||||
float var16 = 0.2625F;
|
||||
float var17 = 1.0F / (var15 + .80F);
|
||||
|
||||
bindTexture(warpPath);
|
||||
GlStateManager.enableBlend();
|
||||
|
||||
if (count == 0) {
|
||||
if (pass == 0) {
|
||||
var17 = 0.1F;
|
||||
var15 = 25.0F;
|
||||
var16 = 0.125F;
|
||||
|
@ -59,9 +49,8 @@ public class TileEntityVerticalEntranceRiftRenderer extends TileEntitySpecialRen
|
|||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
}
|
||||
|
||||
if (count == 1) {
|
||||
var16 = .5F;
|
||||
|
||||
if (pass == 1) {
|
||||
var16 = 0.5F;
|
||||
GlStateManager.blendFunc(GL11.GL_ONE, GL11.GL_ONE);
|
||||
}
|
||||
|
||||
|
@ -74,6 +63,7 @@ public class TileEntityVerticalEntranceRiftRenderer extends TileEntitySpecialRen
|
|||
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_LINEAR);
|
||||
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_OBJECT_LINEAR);
|
||||
|
||||
|
||||
switch (orientation) {
|
||||
case SOUTH:
|
||||
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
|
||||
|
@ -99,6 +89,14 @@ public class TileEntityVerticalEntranceRiftRenderer extends TileEntitySpecialRen
|
|||
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 0.0F, 0.0F, 1.0F));
|
||||
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_OBJECT_PLANE, getFloatBuffer(1.0F, 0.0F, 0.0F, -0.15F));
|
||||
break;
|
||||
case DOWN:
|
||||
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, getFloatBuffer(1.0F, 0.0F, 0.0F, 0.0F));
|
||||
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 0.0F, 1.0F, 0.0F));
|
||||
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 0.0F, 0.0F, 1.0F));
|
||||
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_EYE_PLANE, getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
|
||||
break;
|
||||
case UP:
|
||||
// TODO: logic for UP
|
||||
}
|
||||
|
||||
GlStateManager.enableTexGenCoord(GlStateManager.TexGen.S);
|
||||
|
@ -114,40 +112,44 @@ public class TileEntityVerticalEntranceRiftRenderer extends TileEntitySpecialRen
|
|||
GlStateManager.translate(0.0F, Minecraft.getSystemTime() % 200000L / 200000.0F * var15, 0.0F);
|
||||
GlStateManager.scale(var16, var16, var16);
|
||||
GlStateManager.translate(0.5F, 0.5F, 0.5F);
|
||||
GlStateManager.rotate((count * count * 4321 + count * 9) * 2.0F, 0.0F, 0.0F, 1.0F);
|
||||
GlStateManager.rotate((pass * pass * 4321 + pass * 9) * 2.0F, 0.0F, 0.0F, 1.0F);
|
||||
GlStateManager.translate(0.5F, 0.5F, 0.5F);
|
||||
|
||||
Tessellator tessellator = Tessellator.getInstance();
|
||||
BufferBuilder worldRenderer = tessellator.getBuffer();
|
||||
worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION);
|
||||
|
||||
RGBA color = tile.getEntranceRenderColor(rand); // TODO: cache this since it's constant
|
||||
RGBA color = colors[pass];
|
||||
GlStateManager.color(color.getRed() * var17, color.getGreen() * var17, color.getBlue() * var17, color.getAlpha());
|
||||
|
||||
// Offsets in horizontal vertical and depth directions
|
||||
double ohs = 0.5 - extendLeft;
|
||||
double ohe = 0.5 + extendRight;
|
||||
double ovs = 0.5 - extendDown;
|
||||
double ove = 0.5 + extendUp;
|
||||
// Render the rectangle based on the orientation
|
||||
double od = orientation == EnumFacing.NORTH || orientation == EnumFacing.WEST || orientation == EnumFacing.DOWN ? pushIn : 1 - pushIn;
|
||||
switch (orientation) {
|
||||
case NORTH:
|
||||
case SOUTH:
|
||||
worldRenderer.pos(x, y - 1, z + .99).endVertex();
|
||||
worldRenderer.pos(x + 1, y - 1, z + .99).endVertex();
|
||||
worldRenderer.pos(x + 1, y + 1, z + .99).endVertex();
|
||||
worldRenderer.pos(x, y + 1, z + .99).endVertex();
|
||||
worldRenderer.pos(x + ohs, y + ovs, z + od).endVertex();
|
||||
worldRenderer.pos(x + ohe, y + ovs, z + od).endVertex();
|
||||
worldRenderer.pos(x + ohe, y + ove, z + od).endVertex();
|
||||
worldRenderer.pos(x + ohs, y + ove, z + od).endVertex();
|
||||
break;
|
||||
case WEST:
|
||||
worldRenderer.pos(x + .01, y - 1, z).endVertex();
|
||||
worldRenderer.pos(x + .01, y - 1, z + 1.0D).endVertex();
|
||||
worldRenderer.pos(x + .01, y + 1, z + 1.0D).endVertex();
|
||||
worldRenderer.pos(x + .01, y + 1, z).endVertex();
|
||||
break;
|
||||
case NORTH:
|
||||
worldRenderer.pos(x, y + 1, z + .01).endVertex();
|
||||
worldRenderer.pos(x + 1, y + 1, z + .01).endVertex();
|
||||
worldRenderer.pos(x + 1, y - 1, z + .01).endVertex();
|
||||
worldRenderer.pos(x, y - 1, z + .01).endVertex();
|
||||
break;
|
||||
case EAST:
|
||||
worldRenderer.pos(x + .99, y + 1, z).endVertex();
|
||||
worldRenderer.pos(x + .99, y + 1, z + 1.0D).endVertex();
|
||||
worldRenderer.pos(x + .99, y - 1, z + 1.0D).endVertex();
|
||||
worldRenderer.pos(x + .99, y - 1, z).endVertex();
|
||||
worldRenderer.pos(x + od, y + ovs, z + ohs).endVertex();
|
||||
worldRenderer.pos(x + od, y + ove, z + ohs).endVertex();
|
||||
worldRenderer.pos(x + od, y + ove, z + ohe).endVertex();
|
||||
worldRenderer.pos(x + od, y + ovs, z + ohe).endVertex();
|
||||
break;
|
||||
case UP:
|
||||
case DOWN:
|
||||
worldRenderer.pos(x + ovs, y + od, z + ohs).endVertex();
|
||||
worldRenderer.pos(x + ohe, y + od, z + ohs).endVertex();
|
||||
worldRenderer.pos(x + ohe, y + od, z + ohe).endVertex();
|
||||
worldRenderer.pos(x + ohs, y + od, z + ohe).endVertex();
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -165,6 +167,15 @@ public class TileEntityVerticalEntranceRiftRenderer extends TileEntitySpecialRen
|
|||
GlStateManager.enableLighting();
|
||||
}
|
||||
|
||||
private RGBA[] getColors(TileEntityEntranceRift entrance) {
|
||||
if (colorMap.containsKey(entrance)) return colorMap.get(entrance);
|
||||
Random rand = new Random(31100L);
|
||||
RGBA[] colors = new RGBA[16];
|
||||
for (int i = 0; i < 16; i++) colors[i] = entrance.getEntranceRenderColor(rand);
|
||||
colorMap.put(entrance, colors);
|
||||
return colors;
|
||||
}
|
||||
|
||||
private FloatBuffer getFloatBuffer(float par1, float par2, float par3, float par4) {
|
||||
buffer.clear();
|
||||
buffer.put(par1).put(par2).put(par3).put(par4);
|
||||
|
@ -172,7 +183,7 @@ public class TileEntityVerticalEntranceRiftRenderer extends TileEntitySpecialRen
|
|||
return buffer;
|
||||
}
|
||||
|
||||
private void renderKeyHole(TileEntityVerticalEntranceRift tile, double x, double y, double z, int i) {
|
||||
private void renderKeyHole(TileEntityEntranceRift tile, double x, double y, double z, int i) {
|
||||
EnumFacing rotation = EnumFacing.getHorizontal((tile.orientation.getHorizontalIndex() + 3) % 4);
|
||||
|
||||
GlStateManager.pushMatrix();
|
||||
|
@ -238,17 +249,14 @@ public class TileEntityVerticalEntranceRiftRenderer extends TileEntitySpecialRen
|
|||
}
|
||||
|
||||
@Override
|
||||
public void render(TileEntityVerticalEntranceRift te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) {
|
||||
World world = te.getWorld();
|
||||
BlockPos pos = te.getPos();
|
||||
if (te.doorShouldRender) {
|
||||
renderDimDoorTileEntity(te, x, y, z);
|
||||
if (te.lockStatus >= 1) {
|
||||
for (int i = 0; i < 1 + te.lockStatus; i++) {
|
||||
renderKeyHole(te, x, y, z, i);
|
||||
public void render(TileEntityEntranceRift entrance, double x, double y, double z, float partialTicks, int destroyStage, float alpha) {
|
||||
if (entrance.shouldRender) {
|
||||
renderDimensionalWall(x, y, z, getColors(entrance), entrance.orientation, entrance.extendUp, entrance.extendDown, entrance.extendLeft, entrance.extendRight, entrance.pushIn);
|
||||
if (entrance.lockStatus >= 1) {
|
||||
for (int i = 0; i < 1 + entrance.lockStatus; i++) {
|
||||
renderKeyHole(entrance, x, y, z, i);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,156 +0,0 @@
|
|||
package com.zixiken.dimdoors.client;
|
||||
|
||||
import java.nio.FloatBuffer;
|
||||
import java.util.Random;
|
||||
|
||||
import com.zixiken.dimdoors.DimDoors;
|
||||
import com.zixiken.dimdoors.shared.blocks.BlockDimTrapdoor;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityHorizontalEntranceRift;
|
||||
import net.minecraft.block.BlockTrapDoor;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.BufferBuilder;
|
||||
import net.minecraft.client.renderer.GLAllocation;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class TileEntityHorizontalEntranceRiftRenderer extends TileEntitySpecialRenderer<TileEntityHorizontalEntranceRift> {
|
||||
|
||||
private FloatBuffer buffer = GLAllocation.createDirectFloatBuffer(16);
|
||||
private ResourceLocation riftPath = new ResourceLocation(DimDoors.MODID + ":textures/other/rift.png");
|
||||
private ResourceLocation warpPath = new ResourceLocation(DimDoors.MODID + ":textures/other/warp.png");
|
||||
|
||||
/**
|
||||
* Renders the dimdoor.
|
||||
*/
|
||||
public void renderTransTrapdoorTileEntity(TileEntityHorizontalEntranceRift tile, double x, double y, double z, float partialTicks, float alpha) {
|
||||
GlStateManager.disableLighting();
|
||||
Random random = new Random(31100L);
|
||||
IBlockState state = tile.getWorld().getBlockState(tile.getPos());
|
||||
|
||||
for (int count = 0; count < 16; ++count) {
|
||||
GlStateManager.pushMatrix();
|
||||
|
||||
float var15 = 16 - count;
|
||||
float var16 = 0.2625F;
|
||||
float var17 = 1.0F / (var15 + 1.0F);
|
||||
|
||||
if (count == 0) {
|
||||
bindTexture(riftPath);
|
||||
var17 = 0.1F;
|
||||
var15 = 25.0F;
|
||||
var16 = 0.125F;
|
||||
GlStateManager.enableBlend();
|
||||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
}
|
||||
|
||||
if (count == 1) {
|
||||
bindTexture(warpPath);
|
||||
GlStateManager.enableBlend();
|
||||
GlStateManager.blendFunc(GL11.GL_ONE, GL11.GL_ONE);
|
||||
var16 = .5F;
|
||||
}
|
||||
|
||||
GlStateManager.translate(Minecraft.getSystemTime() % 200000L / 200000.0F, 0, 0.0F);
|
||||
GlStateManager.translate(0, Minecraft.getSystemTime() % 200000L / 200000.0F, 0.0F);
|
||||
|
||||
GlStateManager.translate(0, 0, Minecraft.getSystemTime() % 200000L / 200000.0F);
|
||||
|
||||
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_LINEAR);
|
||||
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_LINEAR);
|
||||
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_LINEAR);
|
||||
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_EYE_LINEAR);
|
||||
|
||||
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, getFloatBuffer(1.0F, 0.0F, 0.0F, 0.0F));
|
||||
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 0.0F, 1.0F, 0.0F));
|
||||
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 0.0F, 0.0F, 1.0F));
|
||||
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_EYE_PLANE, getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
|
||||
|
||||
GlStateManager.enableTexGenCoord(GlStateManager.TexGen.S);
|
||||
GlStateManager.enableTexGenCoord(GlStateManager.TexGen.T);
|
||||
GlStateManager.enableTexGenCoord(GlStateManager.TexGen.R);
|
||||
GlStateManager.enableTexGenCoord(GlStateManager.TexGen.Q);
|
||||
|
||||
GlStateManager.popMatrix();
|
||||
|
||||
GlStateManager.matrixMode(GL11.GL_TEXTURE);
|
||||
GlStateManager.pushMatrix();
|
||||
GlStateManager.loadIdentity();
|
||||
GlStateManager.translate(0.0F, Minecraft.getSystemTime() % 200000L / 200000.0F * var15, 0.0F);
|
||||
GlStateManager.scale(var16, var16, var16);
|
||||
GlStateManager.translate(0.5F, 0.5F, 0.5F);
|
||||
GlStateManager.rotate((count * count * 4321 + count * 9) * 2.0F, 0.0F, 0.0F, 1.0F);
|
||||
GlStateManager.translate(0.5F, 0.5F, 0.5F);
|
||||
|
||||
float r = (random.nextFloat() * 0.5F + 0.1F) * var17;
|
||||
float g = (random.nextFloat() * 0.4F + 0.4F) * var17;
|
||||
float b = (random.nextFloat() * 0.6F + 0.5F) * var17;
|
||||
|
||||
if (count == 0) {
|
||||
g = 1.0F;
|
||||
b = 1.0F;
|
||||
}
|
||||
|
||||
Tessellator tessellator = Tessellator.getInstance();
|
||||
BufferBuilder worldrenderer = tessellator.getBuffer();
|
||||
worldrenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
|
||||
|
||||
if (state.getValue(BlockTrapDoor.HALF) == BlockTrapDoor.DoorHalf.BOTTOM) {
|
||||
if (state.getValue(BlockTrapDoor.OPEN)) {
|
||||
worldrenderer.pos(x, y + 0.2, z).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x, y + 0.2, z + 1).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x + 1, y + 0.2, z + 1).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x + 1, y + 0.2, z).color(r, g, b, 1.0F).endVertex();
|
||||
} else {
|
||||
worldrenderer.pos(x, y + 0.15, z).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x, y + 0.15, z + 1).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x + 1, y + 0.15, z + 1).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x + 1, y + 0.15, z).color(r, g, b, 1.0F).endVertex();
|
||||
}
|
||||
} else {
|
||||
if (state.getValue(BlockTrapDoor.OPEN)) {
|
||||
worldrenderer.pos(x, y + 0.95, z).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x, y + 0.95, z + 1).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x + 1, y + 0.95, z + 1).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x + 1, y + 0.95, z).color(r, g, b, 1.0F).endVertex();
|
||||
} else {
|
||||
worldrenderer.pos(x, y + 0.85, z).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x, y + 0.85, z + 1).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x + 1, y + 0.85, z + 1).color(r, g, b, 1.0F).endVertex();
|
||||
worldrenderer.pos(x + 1, y + 0.85, z).color(r, g, b, 1.0F).endVertex();
|
||||
}
|
||||
}
|
||||
|
||||
tessellator.draw();
|
||||
GlStateManager.popMatrix();
|
||||
GlStateManager.matrixMode(GL11.GL_MODELVIEW);
|
||||
}
|
||||
|
||||
GlStateManager.disableBlend();
|
||||
GlStateManager.disableTexGenCoord(GlStateManager.TexGen.S);
|
||||
GlStateManager.disableTexGenCoord(GlStateManager.TexGen.T);
|
||||
GlStateManager.disableTexGenCoord(GlStateManager.TexGen.R);
|
||||
GlStateManager.disableTexGenCoord(GlStateManager.TexGen.Q);
|
||||
GlStateManager.disableLighting();
|
||||
}
|
||||
|
||||
private FloatBuffer getFloatBuffer(float par1, float par2, float par3, float par4) {
|
||||
buffer.clear();
|
||||
buffer.put(par1).put(par2).put(par3).put(par4);
|
||||
buffer.flip();
|
||||
return buffer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(TileEntityHorizontalEntranceRift te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) {
|
||||
renderTransTrapdoorTileEntity(te, x, y, z, partialTicks, alpha);
|
||||
}
|
||||
}
|
|
@ -13,7 +13,6 @@ import net.minecraftforge.common.crafting.CraftingHelper;
|
|||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
||||
import net.minecraftforge.registries.GameData;
|
||||
|
||||
public class CraftingManager {
|
||||
|
||||
|
|
|
@ -41,9 +41,8 @@ public abstract class DDProxyCommon implements IDDProxy {
|
|||
}
|
||||
|
||||
public void registerTileEntities() { // TODO: new registry system
|
||||
GameRegistry.registerTileEntity(TileEntityVerticalEntranceRift.class, "TileEntityVerticalEntranceRift"); // TODO: new forge registry system?
|
||||
GameRegistry.registerTileEntity(TileEntityEntranceRift.class, "TileEntityEntranceRift");
|
||||
GameRegistry.registerTileEntity(TileEntityFloatingRift.class, "TileEntityFloatingRift");
|
||||
GameRegistry.registerTileEntity(TileEntityHorizontalEntranceRift.class, "TileEntityHorizontalEntranceRift");
|
||||
}
|
||||
|
||||
abstract public void setCloudRenderer(WorldProvider provider, IRenderHandler renderer);
|
||||
|
|
|
@ -10,7 +10,6 @@ import net.minecraft.util.DamageSource;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.event.entity.EntityEvent;
|
||||
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingFallEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
||||
import net.minecraftforge.fml.common.eventhandler.EventPriority;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
|
|
|
@ -9,7 +9,6 @@ import com.zixiken.dimdoors.shared.pockets.PocketRegistry;
|
|||
import com.zixiken.dimdoors.shared.rifts.RiftRegistry;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityFloatingRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityVerticalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.rifts.TileEntityRift;
|
||||
import com.zixiken.dimdoors.shared.util.Location;
|
||||
import com.zixiken.dimdoors.shared.util.WorldUtils;
|
||||
|
@ -112,9 +111,10 @@ public abstract class BlockDimDoorBase extends BlockDoor implements ITileEntityP
|
|||
}
|
||||
|
||||
@Override
|
||||
public TileEntityVerticalEntranceRift createNewTileEntity(World worldIn, int meta) {
|
||||
TileEntityVerticalEntranceRift rift = new TileEntityVerticalEntranceRift();
|
||||
public TileEntityEntranceRift createNewTileEntity(World worldIn, int meta) {
|
||||
TileEntityEntranceRift rift = new TileEntityEntranceRift();
|
||||
rift.orientation = getStateFromMeta(meta).getValue(BlockDoor.FACING).getOpposite();
|
||||
rift.extendUp += 1;
|
||||
return rift;
|
||||
}
|
||||
|
||||
|
@ -122,7 +122,7 @@ public abstract class BlockDimDoorBase extends BlockDoor implements ITileEntityP
|
|||
public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
|
||||
super.onBlockAdded(worldIn, pos, state);
|
||||
if (hasTileEntity(state) && !DimDoors.disableRiftSetup) { // TODO: better check for disableRiftSetup (support other plugins such as WorldEdit, support doors being placed while schematics are being placed)
|
||||
TileEntityVerticalEntranceRift rift = createNewTileEntity(worldIn, getMetaFromState(state));
|
||||
TileEntityEntranceRift rift = createNewTileEntity(worldIn, getMetaFromState(state));
|
||||
|
||||
// Set the virtual location based on where the door was placed
|
||||
VirtualLocation virtualLocation = null;
|
||||
|
@ -179,5 +179,5 @@ public abstract class BlockDimDoorBase extends BlockDoor implements ITileEntityP
|
|||
|
||||
public abstract Item getItem();
|
||||
|
||||
protected abstract void setupRift(TileEntityVerticalEntranceRift rift);
|
||||
protected abstract void setupRift(TileEntityEntranceRift rift);
|
||||
}
|
||||
|
|
|
@ -2,12 +2,10 @@ package com.zixiken.dimdoors.shared.blocks;
|
|||
|
||||
import com.zixiken.dimdoors.DimDoors;
|
||||
import com.zixiken.dimdoors.shared.items.ModItems;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityVerticalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDimDoorGold extends BlockDimDoorBase {
|
||||
|
||||
|
@ -26,7 +24,7 @@ public class BlockDimDoorGold extends BlockDimDoorBase {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void setupRift(TileEntityVerticalEntranceRift rift) {
|
||||
protected void setupRift(TileEntityEntranceRift rift) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package com.zixiken.dimdoors.shared.blocks;
|
|||
import com.zixiken.dimdoors.DimDoors;
|
||||
import com.zixiken.dimdoors.shared.items.ModItems;
|
||||
import com.zixiken.dimdoors.shared.rifts.RiftDestination;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityVerticalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
@ -26,7 +26,7 @@ public class BlockDimDoorIron extends BlockDimDoorBase {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void setupRift(TileEntityVerticalEntranceRift rift) {
|
||||
protected void setupRift(TileEntityEntranceRift rift) {
|
||||
RiftDestination.NewPublicDestination destination = RiftDestination.NewPublicDestination.builder().build();
|
||||
rift.setSingleDestination(destination);
|
||||
}
|
||||
|
|
|
@ -3,12 +3,10 @@ package com.zixiken.dimdoors.shared.blocks;
|
|||
import com.zixiken.dimdoors.DimDoors;
|
||||
import com.zixiken.dimdoors.shared.items.ModItems;
|
||||
import com.zixiken.dimdoors.shared.rifts.RiftDestination;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityVerticalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDimDoorPersonal extends BlockDimDoorBase {
|
||||
|
||||
|
@ -27,7 +25,7 @@ public class BlockDimDoorPersonal extends BlockDimDoorBase {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void setupRift(TileEntityVerticalEntranceRift rift) {
|
||||
protected void setupRift(TileEntityEntranceRift rift) {
|
||||
RiftDestination.PrivateDestination destination = RiftDestination.PrivateDestination.builder().build();
|
||||
rift.setSingleDestination(destination);
|
||||
rift.setChaosWeight(0);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.zixiken.dimdoors.shared.blocks;
|
||||
|
||||
import com.zixiken.dimdoors.DimDoors;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityVerticalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
@ -29,7 +29,7 @@ public class BlockDimDoorTransient extends BlockDimDoorBase { // TODO: convert t
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void setupRift(TileEntityVerticalEntranceRift rift) {
|
||||
protected void setupRift(TileEntityEntranceRift rift) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,15 +4,13 @@ import com.zixiken.dimdoors.DimDoors;
|
|||
import com.zixiken.dimdoors.shared.items.ModItems;
|
||||
import java.util.Random;
|
||||
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityVerticalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import net.minecraft.block.BlockDoor;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDimDoorUnstable extends BlockDimDoorBase {
|
||||
|
||||
|
@ -37,7 +35,7 @@ public class BlockDimDoorUnstable extends BlockDimDoorBase {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void setupRift(TileEntityVerticalEntranceRift rift) {
|
||||
protected void setupRift(TileEntityEntranceRift rift) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,12 +2,10 @@ package com.zixiken.dimdoors.shared.blocks;
|
|||
|
||||
import com.zixiken.dimdoors.DimDoors;
|
||||
import com.zixiken.dimdoors.shared.items.ModItems;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityVerticalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDimDoorWarp extends BlockDimDoorBase {
|
||||
|
||||
|
@ -26,7 +24,7 @@ public class BlockDimDoorWarp extends BlockDimDoorBase {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void setupRift(TileEntityVerticalEntranceRift rift) {
|
||||
protected void setupRift(TileEntityEntranceRift rift) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.zixiken.dimdoors.shared.blocks;
|
||||
|
||||
import com.zixiken.dimdoors.DimDoors;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityHorizontalEntranceRift;
|
||||
import com.zixiken.dimdoors.shared.tileentities.TileEntityEntranceRift;
|
||||
import net.minecraft.block.*;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
|
@ -50,10 +50,11 @@ public class BlockDimTrapdoor extends BlockTrapDoor implements ITileEntityProvid
|
|||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World worldIn, int meta) {
|
||||
return new TileEntityHorizontalEntranceRift();
|
||||
TileEntityEntranceRift rift = new TileEntityEntranceRift();
|
||||
rift.orientation = EnumFacing.UP;
|
||||
return rift;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
|
||||
super.onBlockAdded(worldIn, pos, state);
|
||||
|
|
|
@ -26,7 +26,6 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.util.math.RayTraceResult;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fluids.IFluidBlock;
|
||||
import net.minecraftforge.fml.client.FMLClientHandler;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
@ -134,14 +133,7 @@ public class BlockRift extends Block implements ITileEntityProvider {
|
|||
//ArrayList<BlockPos> targets = findReachableBlocks(worldIn, pos, 2, false); // TODO
|
||||
TileEntityFloatingRift rift = (TileEntityFloatingRift) worldIn.getTileEntity(pos);
|
||||
|
||||
if (true) {
|
||||
FMLClientHandler.instance().getClient().effectRenderer.addEffect(new ParticleRiftEffect.Rift( // TODO: this effect was unfinished in the 1.6.4 mod too
|
||||
worldIn,
|
||||
pos.getX() + .5, pos.getY() + .5, pos.getZ() + .5,
|
||||
rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D));
|
||||
}
|
||||
|
||||
if (false) {
|
||||
if (0 < 0) {
|
||||
FMLClientHandler.instance().getClient().effectRenderer.addEffect(new ParticleRiftEffect.GogglesRiftEffect( // TODO: this effect was unfinished in the 1.6.4 mod too
|
||||
worldIn,
|
||||
pos.getX() + .5, pos.getY() + .5, pos.getZ() + .5,
|
||||
|
|
|
@ -12,8 +12,6 @@ import net.minecraft.command.CommandBase;
|
|||
import net.minecraft.command.CommandException;
|
||||
import net.minecraft.command.ICommandSender;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
|
|
|
@ -4,7 +4,6 @@ import com.zixiken.dimdoors.shared.util.INBTStorable;
|
|||
import com.zixiken.dimdoors.shared.util.Location;
|
||||
import com.zixiken.dimdoors.shared.util.NBTUtils;
|
||||
import lombok.*;
|
||||
import lombok.experimental.Wither;
|
||||
import net.minecraft.nbt.NBTBase;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
|
|
|
@ -19,14 +19,12 @@ import net.minecraft.entity.EntityLiving;
|
|||
import net.minecraft.entity.IEntityOwnable;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.entity.projectile.*;
|
||||
import net.minecraft.nbt.NBTBase;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
|
||||
import net.minecraft.server.management.PlayerList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ITickable;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
|
|
@ -6,8 +6,6 @@ import lombok.Getter;
|
|||
import lombok.NoArgsConstructor;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@NoArgsConstructor @AllArgsConstructor
|
||||
public class
|
||||
WeightedRiftDestination implements INBTStorable { // TODO: generics
|
||||
|
|
|
@ -1,17 +1,35 @@
|
|||
package com.zixiken.dimdoors.shared.tileentities;
|
||||
|
||||
import com.zixiken.dimdoors.shared.pockets.PocketRegistry;
|
||||
import com.zixiken.dimdoors.shared.rifts.TileEntityRift;
|
||||
import com.zixiken.dimdoors.shared.util.Location;
|
||||
import com.zixiken.dimdoors.shared.util.RGBA;
|
||||
import com.zixiken.dimdoors.shared.util.TeleportUtils;
|
||||
import com.zixiken.dimdoors.shared.util.WorldUtils;
|
||||
import com.zixiken.dimdoors.shared.world.DimDoorDimensions;
|
||||
import lombok.Getter;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
// TODO: merge horizontal and vertical entrances' render code into one, and support custom sizes
|
||||
public abstract class TileEntityEntranceRift extends TileEntityRift {
|
||||
public class TileEntityEntranceRift extends TileEntityRift {
|
||||
@Getter private boolean placeRiftOnBreak = false;
|
||||
@Getter private boolean closeAfterPassThrough = false;
|
||||
@Getter public boolean shouldRender = true;
|
||||
@Getter public byte lockStatus = 0;
|
||||
|
||||
// Set by the block, not saved and not synced to the client
|
||||
public EnumFacing orientation;
|
||||
public int tpOffset = 1; // TODO: float?
|
||||
public double extendUp = 0.5; // Use += to set these. TODO: @SideOnly client?
|
||||
public double extendDown = 0.5;
|
||||
public double extendLeft = 0.5;
|
||||
public double extendRight = 0.5;
|
||||
public double pushIn = 0.01; // TODO: set to 0, and set on door
|
||||
|
||||
@Override
|
||||
public void copyFrom(TileEntityRift oldRift) {
|
||||
|
@ -28,6 +46,15 @@ public abstract class TileEntityEntranceRift extends TileEntityRift {
|
|||
super.readFromNBT(nbt);
|
||||
placeRiftOnBreak = nbt.getBoolean("placeRiftOnBreak");
|
||||
closeAfterPassThrough = nbt.getBoolean("closeAfterPassThrough");
|
||||
shouldRender = nbt.getBoolean("shouldRender");
|
||||
lockStatus = nbt.getByte("lockStatus");
|
||||
|
||||
orientation = EnumFacing.byName(nbt.getString("orientation")); // TODO: avoid having to save these and generate on load based on blockstate
|
||||
tpOffset = nbt.getInteger("tpOffset");
|
||||
extendUp = nbt.getDouble("extendUp");
|
||||
extendDown = nbt.getDouble("extendDown");
|
||||
extendLeft = nbt.getDouble("extendLeft");
|
||||
extendRight = nbt.getDouble("extendRight");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -35,6 +62,16 @@ public abstract class TileEntityEntranceRift extends TileEntityRift {
|
|||
super.writeToNBT(nbt);
|
||||
nbt.setBoolean("placeRiftOnBreak", placeRiftOnBreak);
|
||||
nbt.setBoolean("closeAfterPassThrough", closeAfterPassThrough);
|
||||
nbt.setBoolean("shouldRender", shouldRender);
|
||||
nbt.setByte("lockStatus", lockStatus);
|
||||
|
||||
nbt.setString("orientation", orientation.getName());
|
||||
nbt.setInteger("tpOffset", tpOffset);
|
||||
nbt.setDouble("extendUp", extendUp);
|
||||
nbt.setDouble("extendDown", extendDown);
|
||||
nbt.setDouble("extendLeft", extendLeft);
|
||||
nbt.setDouble("extendRight", extendRight);
|
||||
|
||||
return nbt;
|
||||
}
|
||||
|
||||
|
@ -44,6 +81,8 @@ public abstract class TileEntityEntranceRift extends TileEntityRift {
|
|||
}
|
||||
|
||||
public void setPlaceRiftOnBreak(boolean placeRiftOnBreak) { this.placeRiftOnBreak = placeRiftOnBreak; markDirty(); }
|
||||
public void setShouldRender(boolean shouldRender) { this.shouldRender = shouldRender; markDirty(); }
|
||||
public void setLockStatus(byte lockStatus) { this.lockStatus = lockStatus; markDirty(); }
|
||||
|
||||
@Override
|
||||
public boolean teleport(Entity entity) {
|
||||
|
@ -55,6 +94,16 @@ public abstract class TileEntityEntranceRift extends TileEntityRift {
|
|||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void teleportTo(Entity entity) {
|
||||
TeleportUtils.teleport(entity, new Location(world, pos.offset(orientation, tpOffset)), orientation.getHorizontalAngle(), 0);
|
||||
|
||||
int dim = WorldUtils.getDim(world);
|
||||
if (entity instanceof EntityPlayer && DimDoorDimensions.isPocketDimension(dim)) { // TODO
|
||||
PocketRegistry.getForDim(dim).allowPlayerAtLocation((EntityPlayer) entity, pos.getX(), pos.getY(), pos.getZ());
|
||||
}
|
||||
}
|
||||
|
||||
public RGBA getEntranceRenderColor(Random rand) { // TODO: custom color
|
||||
float red, green, blue;
|
||||
switch(world.provider.getDimension()) {
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
package com.zixiken.dimdoors.shared.tileentities;
|
||||
|
||||
public class TileEntityHorizontalEntranceRift extends TileEntityEntranceRift {
|
||||
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
package com.zixiken.dimdoors.shared.tileentities;
|
||||
|
||||
import com.zixiken.dimdoors.shared.pockets.PocketRegistry;
|
||||
import com.zixiken.dimdoors.shared.util.Location;
|
||||
import com.zixiken.dimdoors.shared.util.TeleportUtils;
|
||||
import com.zixiken.dimdoors.shared.util.WorldUtils;
|
||||
import com.zixiken.dimdoors.shared.world.DimDoorDimensions;
|
||||
import net.minecraft.block.properties.PropertyInteger;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
||||
public class TileEntityVerticalEntranceRift extends TileEntityEntranceRift { // TODO: make builder?
|
||||
|
||||
public boolean doorShouldRender = true;
|
||||
public EnumFacing orientation = EnumFacing.SOUTH;
|
||||
public byte lockStatus = 0;
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
doorShouldRender = nbt.getBoolean("doorShouldRender");
|
||||
orientation = EnumFacing.getFront(nbt.getInteger("orientation"));
|
||||
lockStatus = nbt.getByte("lockStatus");
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
nbt.setBoolean("doorShouldRender", doorShouldRender);
|
||||
nbt.setInteger("orientation", orientation.getIndex());
|
||||
nbt.setByte("lockStatus", lockStatus);
|
||||
return nbt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void teleportTo(Entity entity) {
|
||||
TeleportUtils.teleport(entity, new Location(world, pos.offset(orientation)), orientation.getHorizontalAngle(), 0);
|
||||
|
||||
int dim = WorldUtils.getDim(world);
|
||||
if (entity instanceof EntityPlayer && DimDoorDimensions.isPocketDimension(dim)) { // TODO
|
||||
PocketRegistry.getForDim(dim).allowPlayerAtLocation((EntityPlayer) entity, pos.getX(), pos.getY(), pos.getZ());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,15 +4,12 @@ import com.zixiken.dimdoors.DimDoors;
|
|||
import com.zixiken.dimdoors.shared.blocks.ModBlocks;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.fml.common.registry.ForgeRegistries;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.zixiken.dimdoors.shared.util;
|
|||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityList;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.network.play.server.*;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
|
|
|
@ -17,7 +17,6 @@ import net.minecraft.world.DimensionType;
|
|||
import net.minecraft.world.WorldProvider;
|
||||
import net.minecraft.world.biome.BiomeProviderSingle;
|
||||
import net.minecraft.world.gen.IChunkGenerator;
|
||||
import net.minecraftforge.client.IRenderHandler;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.zixiken.dimdoors.shared.world.pocketdimension;
|
||||
|
||||
import com.zixiken.dimdoors.client.CloudRenderBlank;
|
||||
import com.zixiken.dimdoors.shared.pockets.EnumPocketType;
|
||||
import com.zixiken.dimdoors.shared.world.ModBiomes;
|
||||
import net.minecraft.entity.Entity;
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue