Merge pull request #12 from Runemoro/1.12-WIP

Code clean up
This commit is contained in:
ZombieHDGaming 2017-12-05 20:32:27 -05:00 committed by GitHub
commit b48c31817b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
109 changed files with 948 additions and 1097 deletions

View file

@ -24,7 +24,7 @@ Linux/Mac OS: "./gradlew setupDecompWorkspace"
Step 3: After all that finished, you're left with a choice.
For eclipse, run "gradlew eclipse" (./gradlew eclipse if you are on Mac/Linux)
If you preffer to use IntelliJ, steps are a little different.
If you prefer to use IntelliJ, steps are a little different.
1. Open IDEA, and import project.
2. Select your build.gradle file and have it import.
3. Once it's finished you must close IntelliJ and run the following command:

View file

@ -10,13 +10,13 @@ buildscript {
apply plugin: 'net.minecraftforge.gradle.forge'
//Only edit below this line, the above code adds and enables the nessasary things for Forge to be setup.
ext.modversion = "3.0.0-a3"
ext.modversion = "3.0.0-a4"
ext.mcversion = "1.12.2"
ext.forgeversion = "14.23.1.2555"
//spongeSchematicVersion = "1"
version = mcversion + "-" + modversion
group= "com.zixiken.dimdoors" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
group = "com.zixiken.dimdoors" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "dimdoors"
sourceCompatibility = targetCompatibility = "1.8" // Need this here so eclipse task generates correctly.
@ -46,8 +46,7 @@ jar {
from configurations.embed.collect { it.isDirectory() ? it : zipTree(it) }
}
processResources
{
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version

View file

@ -10,7 +10,6 @@ import com.zixiken.dimdoors.shared.RiftRegistry;
import com.zixiken.dimdoors.shared.SchematicHandler;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.translation.I18n;
@ -27,11 +26,11 @@ import java.util.List;
@Mod(modid = DimDoors.MODID, name = "Dimensional Doors", version = DimDoors.VERSION, dependencies = "required-after:forge@[14.23.0.2517,)")
public class DimDoors {
public static final String VERSION = "${version}";
public static final String MODID = "dimdoors";
public static final String VERSION = "${version}";
@SidedProxy(clientSide = "com.zixiken.dimdoors.client.DDProxyClient",
serverSide = "com.zixiken.dimdoors.server.DDProxyServer")
serverSide = "com.zixiken.dimdoors.server.DDProxyServer")
public static DDProxyCommon proxy;
@Mod.Instance(DimDoors.MODID)
@ -67,7 +66,6 @@ public class DimDoors {
private void registerCommands(FMLServerStartingEvent event) {
event.registerServerCommand(new TeleportCommand());
event.registerServerCommand(new PocketCommand());
//@todo event.registerServerCommand( new DDCommand() ); //to register commands that this mod offers?
}
public static boolean isClient() {
@ -86,14 +84,31 @@ public class DimDoors {
player.sendMessage(new TextComponentString("[DimDoors] " + text));
}
public static void warn(Class classFiredFrom, String text) {
FMLLog.warning("[DimDoors] " + text + " (" + classFiredFrom.toString() + " )", 0);
public static void warn(String text) {
warn(null, text);
}
public static void log(Class classFiredFrom, String text) {
FMLLog.info("[DimDoors] " + text + " (" + classFiredFrom.toString() + " )", 0);
public static void warn(Class<?> classFiredFrom, String text) {
if(classFiredFrom != null) {
FMLLog.log.warn("[DimDoors] " + text + " (" + classFiredFrom + " )", 0);
} else {
FMLLog.log.warn("[DimDoors] " + text, 0);
}
}
public static void log(String text) {
log(null, text);
}
public static void log(Class<?> classFiredFrom, String text) {
if(classFiredFrom != null) {
FMLLog.log.info("[DimDoors] " + text + " (" + classFiredFrom + " )", 0);
} else {
FMLLog.log.info("[DimDoors] " + text, 0);
}
}
// TODO: I18n is deprecated, convert to TextComponentTranslation
public static void translateAndAdd(String key, List<String> list) {
for (int i = 0; i < 10; i++) {
if (I18n.canTranslate(key + Integer.toString(i))) {

View file

@ -19,23 +19,19 @@ public class ClosingRiftFX extends Particle {
private boolean hasFadeColour;
public ClosingRiftFX(World world, double x, double y, double z, double motionX, double motionY, double motionZ) {
super(world, x, y, z);
this.motionX = motionX;
this.motionY = motionY;
this.motionZ = motionZ;
this.particleScale *= .55F;
this.particleMaxAge = 30 + this.rand.nextInt(16);
particleScale *= .55F;
particleMaxAge = 30 + rand.nextInt(16);
}
@Override
public void renderParticle(BufferBuilder worldRenderer, Entity entityIn, float partialTicks, float p_180434_4_,
float p_180434_5_, float p_180434_6_, float p_180434_7_, float p_180434_8_) {
if (!this.twinkle
|| this.particleAge < this.particleMaxAge / 3
|| (this.particleAge + this.particleMaxAge) / 3 % 2 == 0) {
this.doRenderParticle(worldRenderer, partialTicks, p_180434_4_,
p_180434_5_, p_180434_6_, p_180434_7_, p_180434_8_);
public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX,
float rotationZ, float rotationYZ, float rotationXY, float rotationXZ) {
if (!twinkle || particleAge < particleMaxAge / 3 || (particleAge + particleMaxAge) / 3 % 2 == 0) {
doRenderParticle(buffer, partialTicks, rotationX, rotationZ, rotationYZ, rotationXY, rotationXZ);
}
}
@ -43,29 +39,29 @@ public class ClosingRiftFX extends Particle {
float par5, float par6, float par7) {
float var8 = super.particleTextureIndexX % 16 / 16.0F;
float var9 = var8 + 0.0624375F;
float var10 = this.particleTextureIndexX / 16 / 16.0F;
float var10 = particleTextureIndexX / 16 / 16.0F;
float var11 = var10 + 0.0624375F;
float var12 = 0.1F * this.particleScale;
float var13 = (float) (this.prevPosX + (this.posX - this.prevPosX) * par2 - interpPosX);
float var14 = (float) (this.prevPosY + (this.posY - this.prevPosY) * par2 - interpPosY);
float var15 = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * par2 - interpPosZ);
float var12 = 0.1F * particleScale;
float var13 = (float) (prevPosX + (posX - prevPosX) * par2 - interpPosX);
float var14 = (float) (prevPosY + (posY - prevPosY) * par2 - interpPosY);
float var15 = (float) (prevPosZ + (posZ - prevPosZ) * par2 - interpPosZ);
float var16 = 0.8F;
worldRenderer.pos(var13 - par3 * var12 - par6 * var12, var14 - par4 * var12, var15 - par5 * var12 - par7 * var12)
.tex(var9, var11)
.color(this.particleRed * var16, this.particleGreen * var16, this.particleBlue * var16, (float) .7)
.color(particleRed * var16, particleGreen * var16, particleBlue * var16, (float) .7)
.endVertex();
worldRenderer.pos(var13 - par3 * var12 + par6 * var12, var14 + par4 * var12, var15 - par5 * var12 + par7 * var12)
.tex(var9, var10)
.color(this.particleRed * var16, this.particleGreen * var16, this.particleBlue * var16, (float) .7)
.color(particleRed * var16, particleGreen * var16, particleBlue * var16, (float) .7)
.endVertex();
worldRenderer.pos(var13 + par3 * var12 + par6 * var12, var14 + par4 * var12, var15 + par5 * var12 + par7 * var12)
.tex(var8, var10)
.color(this.particleRed * var16, this.particleGreen * var16, this.particleBlue * var16, (float) .7)
.color(particleRed * var16, particleGreen * var16, particleBlue * var16, (float) .7)
.endVertex();
worldRenderer.pos(var13 + par3 * var12 - par6 * var12, var14 - par4 * var12, var15 + par5 * var12 - par7 * var12)
.tex(var8, var11)
.color(this.particleRed * var16, this.particleGreen * var16, this.particleBlue * var16, (float) .7)
.color(particleRed * var16, particleGreen * var16, particleBlue * var16, (float) .7)
.endVertex();
}
@ -74,48 +70,49 @@ public class ClosingRiftFX extends Particle {
*/
@Override
public void onUpdate() {
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
prevPosX = posX;
prevPosY = posY;
prevPosZ = posZ;
particleAge++;
if (this.particleAge++ >= this.particleMaxAge) {
this.setExpired();
if (particleAge >= particleMaxAge) {
setExpired();
}
if (this.particleAge > this.particleMaxAge / 2) {
this.setAlphaF(1.0F - ((float) this.particleAge - (float) (this.particleMaxAge / 2)) / this.particleMaxAge);
if (particleAge > particleMaxAge / 2) {
setAlphaF(1.0F - ((float) particleAge - (float) (particleMaxAge / 2)) / particleMaxAge);
if (this.hasFadeColour) {
this.particleRed += (this.fadeColourRed - this.particleRed) * 0.2F;
this.particleGreen += (this.fadeColourGreen - this.particleGreen) * 0.2F;
this.particleBlue += (this.fadeColourBlue - this.particleBlue) * 0.2F;
if (hasFadeColour) {
particleRed += (fadeColourRed - particleRed) * 0.2F;
particleGreen += (fadeColourGreen - particleGreen) * 0.2F;
particleBlue += (fadeColourBlue - particleBlue) * 0.2F;
}
}
this.setParticleTextureIndex(this.baseTextureIndex + (7 - this.particleAge * 8 / this.particleMaxAge));
setParticleTextureIndex(baseTextureIndex + 7 - particleAge * 8 / particleMaxAge);
// this.motionY -= 0.004D;
this.move(this.motionX, this.motionY, this.motionZ);
this.motionX *= 0.9100000262260437D;
this.motionY *= 0.9100000262260437D;
this.motionZ *= 0.9100000262260437D;
move(motionX, motionY, motionZ);
motionX *= 0.9100000262260437D;
motionY *= 0.9100000262260437D;
motionZ *= 0.9100000262260437D;
if (this.trail && this.particleAge < this.particleMaxAge / 2 && (this.particleAge + this.particleMaxAge) % 2 == 0) {
ClosingRiftFX var1 = new ClosingRiftFX(this.world, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
var1.setRBGColorF(this.particleRed, this.particleGreen, this.particleBlue);
if (trail && particleAge < particleMaxAge / 2 && (particleAge + particleMaxAge) % 2 == 0) {
ClosingRiftFX var1 = new ClosingRiftFX(world, posX, posY, posZ, 0.0D, 0.0D, 0.0D);
var1.setRBGColorF(particleRed, particleGreen, particleBlue);
var1.particleAge = var1.particleMaxAge / 2;
if (this.hasFadeColour) {
if (hasFadeColour) {
var1.hasFadeColour = true;
var1.fadeColourRed = this.fadeColourRed;
var1.fadeColourGreen = this.fadeColourGreen;
var1.fadeColourBlue = this.fadeColourBlue;
var1.fadeColourRed = fadeColourRed;
var1.fadeColourGreen = fadeColourGreen;
var1.fadeColourBlue = fadeColourBlue;
}
var1.twinkle = this.twinkle;
var1.twinkle = twinkle;
}
}
@Override
public int getBrightnessForRender(float par1) {
public int getBrightnessForRender(float p_189214_1_) {
return 15728880;
}
}

View file

@ -10,8 +10,7 @@ public class CloudRenderBlank extends IRenderHandler
{
@Override
@SideOnly(Side.CLIENT)
public void render(float partialTicks, WorldClient world, Minecraft mc)
{
public void render(float partialTicks, WorldClient world, Minecraft mc) {
}
}
}

View file

@ -9,19 +9,14 @@ import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoor;
import com.zixiken.dimdoors.shared.tileentities.TileEntityRift;
import com.zixiken.dimdoors.shared.tileentities.TileEntityTransTrapdoor;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.client.registry.IRenderFactory;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
@SuppressWarnings({"MethodCallSideOnly", "NewExpressionSideOnly"})
public class DDProxyClient extends DDProxyCommon {
@Override
@ -45,13 +40,7 @@ public class DDProxyClient extends DDProxyCommon {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDimDoor.class, new RenderDimDoor());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTransTrapdoor.class, new RenderTransTrapdoor());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRift.class, new RenderRift());
RenderingRegistry.registerEntityRenderingHandler(MobMonolith.class, new IRenderFactory<MobMonolith>()
{
@Override
public Render<? super MobMonolith> createRenderFor(RenderManager manager) {
return new RenderMobObelisk(manager, 0.5f);
}
});
RenderingRegistry.registerEntityRenderingHandler(MobMonolith.class, manager -> new RenderMobObelisk(manager, 0.5f));
}
@Override
@ -64,11 +53,6 @@ public class DDProxyClient extends DDProxyCommon {
return Minecraft.getMinecraft().player;
}
@Override
public World getDefWorld() {
return getWorldServer(0); //gets the client world dim 0 handler
}
@Override
public WorldServer getWorldServer(int dimId) {
return Minecraft.getMinecraft().getIntegratedServer().getWorld(dimId);

View file

@ -8,9 +8,8 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class GoggleRiftFX extends ParticleCloud {
public GoggleRiftFX(World par1World, double par2, double par4, double par6,
double par8, double par10, double par12) {
public GoggleRiftFX(World par1World, double par2, double par4, double par6, double par8, double par10, double par12) {
super(par1World, par2, par4, par6, par12, par12, par12);
this.particleMaxAge = 40 + this.rand.nextInt(26);
particleMaxAge = 40 + rand.nextInt(26);
}
}

View file

@ -1,7 +1,5 @@
package com.zixiken.dimdoors.client;
import static org.lwjgl.opengl.GL11.GL_LIGHTING;
import static org.lwjgl.opengl.GL11.GL_ONE_MINUS_DST_COLOR;
import java.nio.FloatBuffer;
import java.util.Random;
@ -42,7 +40,7 @@ public class RenderDimDoor extends TileEntitySpecialRenderer<TileEntityDimDoor>
float var16 = 0.2625F;
float var17 = 1.0F / (var15 + .80F);
this.bindTexture(warpPath);
bindTexture(warpPath);
GlStateManager.enableBlend();
if (count == 0) {
@ -72,28 +70,28 @@ public class RenderDimDoor extends TileEntitySpecialRenderer<TileEntityDimDoor>
switch (orientation) {
case SOUTH:
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 1.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 0.0F, 1.0F));
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(1.0F, 0.0F, 0.0F, 0.15F));
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 1.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_OBJECT_PLANE, getFloatBuffer(1.0F, 0.0F, 0.0F, 0.15F));
break;
case WEST:
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(1.0F, 0.0F, 0.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 0.0F, 1.0F));
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 1.0F, 0.15F));
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_PLANE, getFloatBuffer(1.0F, 0.0F, 0.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_OBJECT_PLANE, getFloatBuffer(0.0F, 0.0F, 1.0F, 0.15F));
break;
case NORTH:
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 1.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 0.0F, 1.0F));
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(1.0F, 0.0F, 0.0F, -0.15F));
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 1.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_OBJECT_PLANE, getFloatBuffer(1.0F, 0.0F, 0.0F, -0.15F));
break;
case EAST:
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(1.0F, 0.0F, 0.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 0.0F, 1.0F));
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 1.0F, -0.15F));
GlStateManager.texGen(GlStateManager.TexGen.S, GL11.GL_OBJECT_PLANE, getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_PLANE, getFloatBuffer(1.0F, 0.0F, 0.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_OBJECT_PLANE, getFloatBuffer(0.0F, 0.0F, 1.0F, -0.15F));
break;
}
@ -146,29 +144,29 @@ public class RenderDimDoor extends TileEntitySpecialRenderer<TileEntityDimDoor>
worldRenderer.pos(x, y + 1, z + .99).endVertex();
break;
/*case 4:
GL11.glVertex3d(x + .15F, y - 1 , z);
GL11.glVertex3d(x + .15, y - 1, z + 1.0D);
GL11.glVertex3d(x + .15, y + 1, z + 1.0D);
GL11.glVertex3d(x + .15, y + 1, z);
break;
case 5:
GL11.glVertex3d(x, y + 1, z + .15);
GL11.glVertex3d(x + 1, y + 1, z + .15);
GL11.glVertex3d(x + 1, y - 1, z + .15);
GL11.glVertex3d(x, y - 1, z + .15);
break;
case 6:
GL11.glVertex3d(x + .85, y + 1, z);
GL11.glVertex3d(x + .85, y + 1, z + 1.0D);
GL11.glVertex3d(x + .85, y - 1, z + 1.0D);
GL11.glVertex3d(x + .85, y - 1, z);
break;
case 7:
GL11.glVertex3d(x, y - 1, z + .85);
GL11.glVertex3d(x + 1, y - 1, z + .85);
GL11.glVertex3d(x + 1, y + 1, z + .85);
GL11.glVertex3d(x, y + 1, z + .85);
break;*/
GL11.glVertex3d(x + .15F, y - 1 , z);
GL11.glVertex3d(x + .15, y - 1, z + 1.0D);
GL11.glVertex3d(x + .15, y + 1, z + 1.0D);
GL11.glVertex3d(x + .15, y + 1, z);
break;
case 5:
GL11.glVertex3d(x, y + 1, z + .15);
GL11.glVertex3d(x + 1, y + 1, z + .15);
GL11.glVertex3d(x + 1, y - 1, z + .15);
GL11.glVertex3d(x, y - 1, z + .15);
break;
case 6:
GL11.glVertex3d(x + .85, y + 1, z);
GL11.glVertex3d(x + .85, y + 1, z + 1.0D);
GL11.glVertex3d(x + .85, y - 1, z + 1.0D);
GL11.glVertex3d(x + .85, y - 1, z);
break;
case 7:
GL11.glVertex3d(x, y - 1, z + .85);
GL11.glVertex3d(x + 1, y - 1, z + .85);
GL11.glVertex3d(x + 1, y + 1, z + .85);
GL11.glVertex3d(x, y + 1, z + .85);
break;*/
}
tessellator.draw();
@ -265,7 +263,7 @@ public class RenderDimDoor extends TileEntitySpecialRenderer<TileEntityDimDoor>
renderDimDoorTileEntity(te, x, y, z);
if (te.lockStatus >= 1) {
for (int i = 0; i < 1 + te.lockStatus; i++) {
this.renderKeyHole(te, x, y, z, i);
renderKeyHole(te, x, y, z, i);
}
}

View file

@ -4,25 +4,20 @@ import com.flowpowered.math.TrigMath;
import com.flowpowered.math.vector.Vector3f;
import com.flowpowered.math.vector.Vector4f;
import com.zixiken.dimdoors.DimDoors;
import com.zixiken.dimdoors.shared.items.ModItems;
import com.zixiken.dimdoors.shared.tileentities.TileEntityRift;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.BufferBuilder;
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.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
public class RenderRift extends TileEntitySpecialRenderer<TileEntityRift> {
private static final EntityItem ITEM = new EntityItem(Minecraft.getMinecraft().world, 0,0,0, new ItemStack(ModItems.STABLE_FABRIC));
private static ResourceLocation tesseract_path = new ResourceLocation(DimDoors.MODID + ":textures/other/tesseract.png");
private static Vector4f tesseract[] = {
private static Vector4f[] tesseract = {
new Vector4f(-0.5f,-0.5f,-0.5f,-0.5f),
new Vector4f(0.5f,-0.5f,-0.5f,-0.5f),
new Vector4f(0.5f,-0.5f,0.5f,-0.5f),
@ -157,7 +152,7 @@ public class RenderRift extends TileEntitySpecialRenderer<TileEntityRift> {
GlStateManager.pushMatrix();
GlStateManager.disableCull();
this.bindTexture(tesseract_path);
bindTexture(tesseract_path);
GlStateManager.translate(x+0.5,y+0.5,z+0.5);
GlStateManager.scale(0.25,0.25,0.25);
@ -180,7 +175,8 @@ public class RenderRift extends TileEntitySpecialRenderer<TileEntityRift> {
}
private double update(float partialTicks) {
return (angle = (angle + 3*partialTicks) % 360);
angle = (angle + 3 * partialTicks) % 360;
return angle;
}
private Vector4f rotation(Vector4f v, double angle) {

View file

@ -15,7 +15,6 @@ 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.client.renderer.vertex.VertexBuffer;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
@ -45,7 +44,7 @@ public class RenderTransTrapdoor extends TileEntitySpecialRenderer<TileEntityTra
float var17 = 1.0F / (var15 + 1.0F);
if (count == 0) {
this.bindTexture(riftPath);
bindTexture(riftPath);
var17 = 0.1F;
var15 = 25.0F;
var16 = 0.125F;
@ -54,7 +53,7 @@ public class RenderTransTrapdoor extends TileEntitySpecialRenderer<TileEntityTra
}
if (count == 1) {
this.bindTexture(warpPath);
bindTexture(warpPath);
GlStateManager.enableBlend();
GlStateManager.blendFunc(GL11.GL_ONE, GL11.GL_ONE);
var16 = .5F;
@ -70,10 +69,10 @@ public class RenderTransTrapdoor extends TileEntitySpecialRenderer<TileEntityTra
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, this.getFloatBuffer(1.0F, 0.0F, 0.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.T, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 1.0F, 0.0F));
GlStateManager.texGen(GlStateManager.TexGen.R, GL11.GL_OBJECT_PLANE, this.getFloatBuffer(0.0F, 0.0F, 0.0F, 1.0F));
GlStateManager.texGen(GlStateManager.TexGen.Q, GL11.GL_EYE_PLANE, this.getFloatBuffer(0.0F, 1.0F, 0.0F, 0.0F));
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);
@ -144,14 +143,14 @@ public class RenderTransTrapdoor extends TileEntitySpecialRenderer<TileEntityTra
}
private FloatBuffer getFloatBuffer(float par1, float par2, float par3, float par4) {
this.buffer.clear();
this.buffer.put(par1).put(par2).put(par3).put(par4);
this.buffer.flip();
return this.buffer;
buffer.clear();
buffer.put(par1).put(par2).put(par3).put(par4);
buffer.flip();
return buffer;
}
@Override
public void render(TileEntityTransTrapdoor te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) {
this.renderTransTrapdoorTileEntity(te, x, y, z, partialTicks, alpha);
renderTransTrapdoorTileEntity(te, x, y, z, partialTicks, alpha);
}
}

View file

@ -7,7 +7,6 @@ package com.zixiken.dimdoors.server;
import com.zixiken.dimdoors.shared.DDProxyCommon;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.DimensionManager;
@ -27,14 +26,8 @@ public class DDProxyServer extends DDProxyCommon {
return null;
}
@Override
public World getDefWorld() {
return getWorldServer(0); //gets the server world dim 0 handler
}
@Override
public WorldServer getWorldServer(int dimId) {
return DimensionManager.getWorld(dimId);
}
}

View file

@ -1,47 +1,30 @@
package com.zixiken.dimdoors.server.sound;
import com.zixiken.dimdoors.DimDoors;
import net.minecraft.block.Block;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class DDSounds {
private DDSounds() {}
public static SoundEvent CRACK = create("crack");
public static SoundEvent CREEPY = create("creepy");
public static SoundEvent DOOR_LOCKED = create("door_locked");
public static SoundEvent DOOR_LOCK_REMOVED = create("door_lock_removed");
public static SoundEvent KEY_LOCK = create("key");
public static SoundEvent KEY_UNLOCKED = create("key_unlock");
public static SoundEvent MONK = create("monk");
public static SoundEvent RIFT = create("rift");
public static SoundEvent RIFT_CLOSE = create("rift_close");
public static SoundEvent RIFT_DOOR = create("rift_door");
public static SoundEvent RIFT_END = create("rift_end");
public static SoundEvent RIFT_START = create("rift_start");
public static SoundEvent TEARING = create("tearing");
public static final SoundEvent CRACK = create("crack");
public static final SoundEvent CREEPY = create("creepy");
public static final SoundEvent DOOR_LOCKED = create("door_locked");
public static final SoundEvent DOOR_LOCK_REMOVED = create("door_lock_removed");
public static final SoundEvent KEY_LOCK = create("key");
public static final SoundEvent KEY_UNLOCKED = create("key_unlock");
public static final SoundEvent MONK = create("monk");
public static final SoundEvent RIFT = create("rift");
public static final SoundEvent RIFT_CLOSE = create("rift_close");
public static final SoundEvent RIFT_DOOR = create("rift_door");
public static final SoundEvent RIFT_END = create("rift_end");
public static final SoundEvent RIFT_START = create("rift_start");
public static final SoundEvent TEARING = create("tearing");
private static SoundEvent create(String name) {
ResourceLocation id = new ResourceLocation(DimDoors.MODID, name);
SoundEvent sound = new SoundEvent(id).setRegistryName(name);
// GameRegistry.register(sound);
return sound;
return new SoundEvent(id).setRegistryName(name);
}
@SubscribeEvent

View file

@ -16,6 +16,7 @@ import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.registries.GameData;
public class CraftingManager {
public static ResourceLocation getNameForRecipe(ItemStack output) {
ResourceLocation baseLoc = new ResourceLocation(DimDoors.MODID, output.getItem().getRegistryName().getResourcePath());
ResourceLocation recipeLoc = baseLoc;
@ -45,7 +46,7 @@ public class CraftingManager {
}
@SubscribeEvent
public static void registerRecipes(RegistryEvent.Register<IRecipe> event) {
public static void registerRecipes(RegistryEvent.Register<IRecipe> event) { // TODO
event.getRegistry().register(makeShapedRecipe(new ItemStack(ModItems.STABLE_FABRIC, 1),
"yxy", 'x', Items.ENDER_PEARL, 'y', ModItems.WORLD_THREAD));

View file

@ -8,6 +8,7 @@ package com.zixiken.dimdoors.shared;
import com.zixiken.dimdoors.DimDoors;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
@ -35,8 +36,8 @@ public class DDConfig {
private static int maxDungeonDepth = 8;
private static int owCoordinateOffsetBase = 64;
private static double owCoordinateOffsetPower = 1.3;
private static int[] doorRelativeDepths = new int[]{-1, 0, 1};
private static int[] doorRelativeDepthWeights = new int[]{20, 30, 50};
private static int[] doorRelativeDepths = {-1, 0, 1};
private static int[] doorRelativeDepthWeights = {20, 30, 50};
private static boolean dangerousLimboMonolithsEnabled = false;
private static boolean monolithTeleportationEnabled = true;
@ -113,7 +114,7 @@ public class DDConfig {
DimDoors.log(DDConfig.class, "pocketGridSize was set to " + pocketGridSize);
maxPocketSize = setConfigIntWithMaxAndMin(config, "pocket_dimension", "maxPocketSize", maxPocketSize,
"Sets how deep and wide any pocket can be. [min: 0, max: pocketGridSize/2, default: 4]", 0, (int) (((double) pocketGridSize / 2) - 0.5));
"Sets how deep and wide any pocket can be. [min: 0, max: pocketGridSize/2, default: 4]", 0, (int) ((double) pocketGridSize / 2 - 0.5));
privatePocketSize = setConfigIntWithMaxAndMin(config, "pocket_dimension", "privatePocketSize", privatePocketSize,
"Sets how deep and wide any personal pocket can be. [min: 0, max: maxPocketsSize, default: 3]", 0, maxPocketSize);
@ -160,9 +161,7 @@ public class DDConfig {
public static List<String> getDungeonSchematicNames() {
List<String> dungeonSchematicNamesArrayList = new ArrayList<>();
for (String dungeonSchematicName : dungeonSchematicNames) {
dungeonSchematicNamesArrayList.add(dungeonSchematicName);
}
Collections.addAll(dungeonSchematicNamesArrayList, dungeonSchematicNames);
return dungeonSchematicNamesArrayList;
}

View file

@ -16,27 +16,16 @@ import net.minecraftforge.event.entity.EntityEvent;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.living.LivingFallEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent;
/**
*
* @author Robijnvogel
*/
public class DDEventHandler {
@SubscribeEvent
public void onPlayerJoinWorld(EntityJoinWorldEvent event) {
//check if config default values have been checked
if (!DDConfig.HAVE_CONFIG_DEFAULTS_BEEN_CHECKED_FOR_CORRECTNESS) {
if (!DimDoors.VERSION.contains("a")) { //if it is not an alpha version
Entity entity = event.getEntity();
World world = entity.world;
if (!world.isRemote) {
if (entity instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) entity;
DimDoors.chat(player, "The default values for the config files fo this non-alpha version of DimDoors have not been sufficiently checked on correctness. Please notify the developer about this IF no newer version of this mod is available.");
}
}
Entity entity = event.getEntity();
if(entity instanceof EntityPlayer && !entity.world.isRemote) { // check that it's a player first to avoid calling String.contains for every entity
if (!DDConfig.HAVE_CONFIG_DEFAULTS_BEEN_CHECKED_FOR_CORRECTNESS && !DimDoors.VERSION.contains("a")) { // default values were not checked in non-alpha version
EntityPlayer player = (EntityPlayer) entity;
DimDoors.chat(player, "The default values for the config files for this non-alpha version of DimDoors have not been sufficiently checked on correctness. Please notify the developer about this ONLY IF no newer version of this mod is available.");
}
}
}
@ -49,43 +38,17 @@ public class DDEventHandler {
}
}
@SubscribeEvent
public void onPlayerChangedDim(PlayerChangedDimensionEvent event) {
EntityPlayer player = event.player;
int dimID = event.toDim;
World world = player.world;
if (!world.isRemote && DimDoorDimensions.isPocketDimensionID(dimID)) {
if (player instanceof EntityPlayerMP) {
EntityPlayerMP playerMP = (EntityPlayerMP) player;
checkPlayerLocationPermission(playerMP);
}
}
}
@SubscribeEvent
public void onEntityEnterChunk(EntityEvent.EnteringChunk event) {
Entity entity = event.getEntity();
if (entity instanceof EntityPlayerMP) {
EntityPlayerMP player = (EntityPlayerMP) entity;
World world = entity.world;
if (!world.isRemote && DimDoorDimensions.isPocketDimensionID(world.provider.getDimension())) {
EntityPlayerMP player = (EntityPlayerMP) entity;
checkPlayerLocationPermission(player);
}
}
}
/**
*
* @param player the player entity to check for permissions
* @pre {@code (entity instanceof EntityPlayerMP)}
*/
private void checkPlayerLocationPermission(EntityPlayerMP player) {
if (!player.isDead && !(player.getPosition().getY() < 1)) {
Location location = Location.getLocation(player);
DimDoors.log(this.getClass(), "A player just entered a new chunk in a DimDoors dimension.");
if (!PocketRegistry.INSTANCE.isPlayerAllowedToBeHere(player, location)) {
//@todo this doesn't really work yet.
//DimDoors.chat(player, "You are not supposed to be here. In future version of this mod, you will be teleported to Limbo if you go here.");
if (!world.isRemote && !player.isDead && !PocketRegistry.INSTANCE.isPlayerAllowedToBeHere(player, Location.getLocation(player))) {
// TODO: Avoid players even getting here by making a maximum build distance that's smaller than the pocket size
// TODO: This doesn't really work yet.
// DimDoors.chat(player, "You travelled too far into the void and have been sent to Limbo.");
// PocketRegistry.sendToLimbo(player); // TODO
}
}
}

View file

@ -5,13 +5,7 @@ import com.zixiken.dimdoors.shared.blocks.BlockDimDoorBase;
import com.zixiken.dimdoors.shared.blocks.ModBlocks;
import com.zixiken.dimdoors.shared.entities.MobMonolith;
import com.zixiken.dimdoors.shared.items.ModItems;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoor;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoorChaos;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoorGold;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoorPersonal;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoorWarp;
import com.zixiken.dimdoors.shared.tileentities.TileEntityRift;
import com.zixiken.dimdoors.shared.tileentities.TileEntityTransTrapdoor;
import com.zixiken.dimdoors.shared.tileentities.*;
import com.zixiken.dimdoors.shared.world.DimDoorDimensions;
import net.minecraft.block.BlockDoor;
import net.minecraft.block.state.IBlockState;
@ -36,19 +30,20 @@ public abstract class DDProxyCommon implements IDDProxy {
DimDoorDimensions.init();
GameRegistry.registerTileEntity(TileEntityDimDoor.class, "TileEntityDimDoor");
GameRegistry.registerTileEntity(TileEntityDimDoor.class, "TileEntityDimDoor"); // TODO: use new registry
GameRegistry.registerTileEntity(TileEntityRift.class, "TileEntityRift");
GameRegistry.registerTileEntity(TileEntityTransTrapdoor.class, "TileEntityTransTrapdoor");
GameRegistry.registerTileEntity(TileEntityDimDoorGold.class, "TileEntityDimDoorGold");
GameRegistry.registerTileEntity(TileEntityDimDoorPersonal.class, "TileEntityDimDoorPersonal");
GameRegistry.registerTileEntity(TileEntityDimDoorChaos.class, "TileEntityDimDoorChaos");
GameRegistry.registerTileEntity(TileEntityDimDoorUnstable.class, "TileEntityDimDoorUnstable");
GameRegistry.registerTileEntity(TileEntityDimDoorWarp.class, "TileEntityDimDoorWarp");
EntityRegistry.registerModEntity(new ResourceLocation(DimDoors.MODID, "mob_monolith"), MobMonolith.class, "monolith", 0, DimDoors.instance, 70, 1, true);
EntityRegistry.registerEgg(new ResourceLocation(DimDoors.MODID, "mob_monolith"), 0, 0xffffff);
}
@Override
public void onInitialization(FMLInitializationEvent event) {
EntityRegistry.registerModEntity(new ResourceLocation(DimDoors.MODID, "mob_monolith"), MobMonolith.class, "monolith", 0, DimDoors.instance, 70, 1, true);
EntityRegistry.registerEgg(new ResourceLocation(DimDoors.MODID, "mob_monolith"), 0, 0xffffff);
}
public void updateDoorTE(BlockDimDoorBase door, World world, BlockPos pos) {
@ -66,5 +61,7 @@ public abstract class DDProxyCommon implements IDDProxy {
}
@Override
public abstract boolean isClient();
public World getDefWorld() {
return getWorldServer(0); //gets the client world dim 0 handler
}
}

View file

@ -23,5 +23,4 @@ abstract class DDSavedData extends WorldSavedData {
File saveDir = world.getSaveHandler().getWorldDirectory();
return new File(saveDir, "dimdoors/");
}
}

View file

@ -10,6 +10,7 @@ package com.zixiken.dimdoors.shared;
* @author s101426
*/
public enum EnumPocketType {
PRIVATE, PUBLIC, DUNGEON;
static EnumPocketType getFromInt(int integer) {

View file

@ -13,7 +13,6 @@ import net.minecraftforge.client.model.ModelLoader;
import static net.minecraft.item.Item.getItemFromBlock;
@SuppressWarnings({"MethodCallSideOnly", "NewExpressionSideOnly"})
public class ModelManager {
public static void registerModels() {
@ -60,7 +59,6 @@ public class ModelManager {
new ModelResourceLocation(item.getRegistryName() + "_" + name, "inventory"));
}
@SuppressWarnings("LocalVariableDeclarationSideOnly")
public static void addCustomStateMappers() {
StateMap map = new StateMap.Builder().ignore(BlockDoor.POWERED).build();

View file

@ -27,7 +27,7 @@ import net.minecraft.world.WorldServer;
*/
public class Pocket {
private int ID; //this gets reset every server-load
private int id; //this gets reset every server-load
private final int size; //in chunks 0 -> 1*1 chunk, 1 -> 2*2 chunks
private final int depth;
private final EnumPocketType typeID; // dungeon, pocket, or personal pocket
@ -46,11 +46,11 @@ public class Pocket {
this.z = z;
this.riftIDs = riftIDs;
this.depthZeroLocation = depthZeroLocation;
playerUUIDs = new ArrayList();
playerUUIDs = new ArrayList<>();
}
public int getID() {
return ID;
return id;
}
public int getX() {
@ -77,15 +77,15 @@ public class Pocket {
}
public void setID(int newID) {
ID = newID;
id = newID;
//propagate this ID to the rifts in this pocket
//propagate this id to the rifts in this pocket
for (int riftID : riftIDs) {
Location riftLocation = RiftRegistry.INSTANCE.getRiftLocation(riftID);
WorldServer worldServer = DimDoors.proxy.getWorldServer(riftLocation.getDimensionID());
if (!worldServer.isRemote) {
DDTileEntityBase rift = (DDTileEntityBase) riftLocation.getTileEntity();
rift.setPocket(this.ID, this.typeID); //set the rift's pocket ID to this pocket's pocket ID;
rift.setPocket(id, typeID); //set the rift's pocket id to this pocket's pocket id;
}
}
}
@ -96,7 +96,7 @@ public class Pocket {
EnumPocketType typeID = EnumPocketType.getFromInt(pocketNBT.getInteger("typeID"));
int x = pocketNBT.getInteger("x");
int z = pocketNBT.getInteger("z");
List<Integer> riftIDs = new ArrayList();
List<Integer> riftIDs = new ArrayList<>();
NBTTagList doorsTagList = (NBTTagList) pocketNBT.getTag("doorIDs");
for (int i = 0; i < doorsTagList.tagCount(); i++) {
int doorID = doorsTagList.getIntAt(i);
@ -106,7 +106,7 @@ public class Pocket {
Pocket pocket = new Pocket(size, depth, typeID, x, z, riftIDs, depthZeroLocation);
pocket.setID(pocketNBT.getInteger("ID")); //basically re-register the pocket
pocket.setID(pocketNBT.getInteger("id")); //basically re-register the pocket
NBTTagList playersTagList = (NBTTagList) pocketNBT.getTag("playerUUIDs");
for (int i = 0; i < playersTagList.tagCount(); i++) {
String playerUUID = playersTagList.getStringTagAt(i);
@ -117,7 +117,7 @@ public class Pocket {
static NBTBase writeToNBT(Pocket pocket) {
NBTTagCompound pocketNBT = new NBTTagCompound();
pocketNBT.setInteger("ID", pocket.ID);
pocketNBT.setInteger("id", pocket.id);
pocketNBT.setInteger("size", pocket.size);
pocketNBT.setInteger("depth", pocket.depth);
pocketNBT.setInteger("typeID", pocket.typeID.getIntValue());
@ -150,7 +150,7 @@ public class Pocket {
int riftID = riftIDs.get(i);
//DimDoors.log(Pocket.class, "findWarpDoorIndex: i = " + i + " riftID = " + riftID); //for troubleshooting purposes
TileEntity tileEntity = RiftRegistry.INSTANCE.getRiftLocation(riftID).getTileEntity();
if (tileEntity != null && tileEntity instanceof TileEntityDimDoorWarp) {
if (tileEntity instanceof TileEntityDimDoorWarp) {
index = i;
break;
}
@ -195,17 +195,11 @@ public class Pocket {
boolean isLocationWithinPocketBounds(final Location location, final int gridSize) {
int locX = location.getPos().getX();
int locZ = location.getPos().getY();
//minimum bounds of the pocket
int pocX = x * gridSize;
int pocZ = z * gridSize;
if (pocX <= locX && pocZ <= locZ) {
//convert to maximum bounds of the pocket
pocX = pocX + (size + 1) * 16;
pocZ = pocZ + (size + 1) * 16;
if (locX < pocX && locZ < pocZ) {
return true;
}
}
return false;
// pocket bounds
int pocMinX = x * gridSize;
int pocMinZ = z * gridSize;
int pocMaxX = pocMinX + (size + 1) * 16;
int pocMaxZ = pocMinX + (size + 1) * 16;
return pocMinX <= locX && pocMinZ <= locZ && locX < pocMaxX && locZ < pocMaxZ;
}
}

View file

@ -7,7 +7,7 @@ package com.zixiken.dimdoors.shared;
import com.zixiken.dimdoors.shared.util.Location;
import com.zixiken.dimdoors.DimDoors;
import com.zixiken.dimdoors.shared.util.DDRandomUtils;
import com.zixiken.dimdoors.shared.util.RandomUtils;
import com.zixiken.dimdoors.shared.world.DimDoorDimensions;
import java.util.ArrayList;
import java.util.HashMap;
@ -38,16 +38,16 @@ public class PocketRegistry {
// Methods
private PocketRegistry() {
nextUnusedIDs = new HashMap();
nextUnusedIDs = new HashMap<>();
for (EnumPocketType pocketType : EnumPocketType.values()) {
nextUnusedIDs.put(pocketType, 0);
}
privatePockets = new HashMap();
pocketLists = new HashMap();
privatePockets = new HashMap<>();
pocketLists = new HashMap<>();
for (EnumPocketType pocketType : EnumPocketType.values()) {
pocketLists.put(pocketType, new HashMap());
pocketLists.put(pocketType, new HashMap<>());
}
pocketListsPerDepth = new ArrayList();
pocketListsPerDepth = new ArrayList<>();
}
public int getGridSize() {
@ -99,8 +99,8 @@ public class PocketRegistry {
if (nbt.hasKey("privatePockets")) {
NBTTagCompound privatePocketsTagCompound = nbt.getCompoundTag("privatePockets");
privatePockets.clear();
for (String UUID : privatePocketsTagCompound.getKeySet()) {
privatePockets.put(UUID, privatePocketsTagCompound.getInteger(UUID));
for (String uuid : privatePocketsTagCompound.getKeySet()) {
privatePockets.put(uuid, privatePocketsTagCompound.getInteger(uuid));
}
}
if (nbt.hasKey("pocketData")) {
@ -109,7 +109,7 @@ public class PocketRegistry {
for (EnumPocketType pocketType : EnumPocketType.values()) {
String tagListName = pocketType.toString();
if (pocketsTagCompound.hasKey(tagListName)) {
Map<Integer, Pocket> pocketList = new HashMap();
Map<Integer, Pocket> pocketList = new HashMap<>();
NBTTagList pocketTagList = (NBTTagList) pocketsTagCompound.getTag(tagListName);
for (int j = 0; j < pocketTagList.tagCount(); j++) { //@todo this defeats the purpose of a Map over a List (pocketList)
NBTTagCompound pocketTag = pocketTagList.getCompoundTagAt(j);
@ -137,8 +137,8 @@ public class PocketRegistry {
nbt.setTag("nextUnusedIDs", nextUnusedIDTagCompound);
NBTTagCompound privatePocketsTagCompound = new NBTTagCompound();
for (String UUID : privatePockets.keySet()) {
privatePocketsTagCompound.setInteger(UUID, privatePockets.get(UUID));
for (String uuid : privatePockets.keySet()) {
privatePocketsTagCompound.setInteger(uuid, privatePockets.get(uuid));
}
nbt.setTag("privatePockets", privatePocketsTagCompound);
@ -171,17 +171,11 @@ public class PocketRegistry {
}
}
public Pocket getPocket(int ID, EnumPocketType pocketType) {
return pocketLists.get(pocketType).get(ID);
public Pocket getPocket(int id, EnumPocketType pocketType) {
return pocketLists.get(pocketType).get(id); // TODO: null pointer
}
public int getEntranceDoorIDOfNewPocket(EnumPocketType typeID, int depth, Location origRiftLocation) {//should return the riftID of the entrance door of the newly generated pocket
Pocket pocket = generateRandomPocketAt(typeID, depth, origRiftLocation);
int entranceDoorID = pocket.getEntranceDoorID();
return entranceDoorID;
}
private Pocket generateRandomPocketAt(EnumPocketType typeID, int depth, Location origRiftLocation) {
public Pocket generateRandomPocketAt(EnumPocketType typeID, int depth, Location origRiftLocation) {
//Correcting the depth. Just in case...
if (typeID == EnumPocketType.DUNGEON) {
if (depth <= 0) {
@ -193,7 +187,7 @@ public class PocketRegistry {
depth = 0;
}
//Fetching the pocket template
// Fetch the pocket template
PocketTemplate pocketTemplate = getRandomPocketTemplate(typeID, depth, maxPocketSize);
return generatePocketAt(typeID, depth, origRiftLocation, pocketTemplate);
@ -206,12 +200,17 @@ public class PocketRegistry {
int shortenedZ = shortenedLocation.getPos().getZ();
int dimID = shortenedLocation.getDimensionID();
Location depthZeroLocation;
if (typeID == EnumPocketType.DUNGEON) {
depthZeroLocation = DDRandomUtils.transformLocationRandomly(DDConfig.getOwCoordinateOffsetBase(), DDConfig.getOwCoordinateOffsetPower(), depth, origRiftLocation);
} else if (typeID == EnumPocketType.PUBLIC) {
depthZeroLocation = DDRandomUtils.transformLocationRandomly(DDConfig.getOwCoordinateOffsetBase(), DDConfig.getOwCoordinateOffsetPower(), 1, origRiftLocation);
} else { //PRIVATE
depthZeroLocation = origRiftLocation;
switch (typeID) {
case DUNGEON:
depthZeroLocation = RandomUtils.transformLocationRandomly(DDConfig.getOwCoordinateOffsetBase(), DDConfig.getOwCoordinateOffsetPower(), depth, origRiftLocation);
break;
case PUBLIC:
depthZeroLocation = RandomUtils.transformLocationRandomly(DDConfig.getOwCoordinateOffsetBase(), DDConfig.getOwCoordinateOffsetPower(), 1, origRiftLocation);
break;
case PRIVATE:
default:
depthZeroLocation = origRiftLocation;
break;
}
Pocket pocket = pocketTemplate.place(shortenedX, 0, shortenedZ, gridSize, dimID, nextUnusedIDs.get(typeID), depth, typeID, depthZeroLocation);
@ -222,7 +221,7 @@ public class PocketRegistry {
public int getPrivateDimDoorID(String playerUUID) {
if (!privatePockets.containsKey(playerUUID)) {
//generate a new private pocket
int doorID = getEntranceDoorIDOfNewPocket(EnumPocketType.PRIVATE, 0, new Location(0, 0, 0, 0)); //Location doesn't really matter in this case
int doorID = generateRandomPocketAt(EnumPocketType.PRIVATE, 0, new Location(0, 0, 0, 0)).getEntranceDoorID(); //Location doesn't really matter in this case
privatePockets.put(playerUUID, doorID);
return doorID;
}
@ -239,17 +238,16 @@ public class PocketRegistry {
z = 0;
} else {
int radius = (int) Math.sqrt(nextUnusedID); //casting to int rounds down the double resulting from taking the square root
int radiusNumber = nextUnusedID - (radius * radius);
double splitter = ((double) radiusNumber) / ((double) radius); //always between 0 and 2
DimDoors.log(this.getClass(), "id is " + nextUnusedID);
DimDoors.log(this.getClass(), "Radius is " + radius);
DimDoors.log(this.getClass(), "Radius number is " + radiusNumber);
DimDoors.log(this.getClass(), "Splitter is " + splitter);
int radiusNumber = nextUnusedID - radius * radius;
double splitter = (double) radiusNumber / (double) radius; //always between 0 and 2
DimDoors.log(getClass(), "id is " + nextUnusedID);
DimDoors.log(getClass(), "Radius is " + radius);
DimDoors.log(getClass(), "Radius number is " + radiusNumber);
DimDoors.log(getClass(), "Splitter is " + splitter);
x = splitter <= 1.0 ? radius : radius - (radiusNumber - radius);
z = splitter >= 1.0 ? radius : radiusNumber;
}
Location location = new Location(dimID, x, y, z);
return location;
return new Location(dimID, x, y, z);
}
private PocketTemplate getRandomPocketTemplate(EnumPocketType typeID, int depth, int maxPocketSize) {
@ -333,20 +331,13 @@ public class PocketRegistry {
}
public boolean isPlayerAllowedToBeHere(final EntityPlayerMP player, final Location location) {
if (player.isCreative()) {
int pocketID = getPocketIDFromCoords(location);
if (pocketID < 0) { // not in a pocket dimension
return true;
} else {
int pocketID = getPocketIDFromCoords(location);
if (pocketID < 0) { //not in a pocket dimension
return true;
} else {
EnumPocketType type = DimDoorDimensions.getPocketType(location.getDimensionID());
Pocket pocket = pocketLists.get(type).get(pocketID);
if (pocket.isPlayerAllowedInPocket(player) && pocket.isLocationWithinPocketBounds(location, gridSize)) {
return true;
}
return false;
}
EnumPocketType type = DimDoorDimensions.getPocketType(location.getDimensionID());
Pocket pocket = pocketLists.get(type).get(pocketID);
return pocket.isPlayerAllowedInPocket(player) && pocket.isLocationWithinPocketBounds(location, gridSize);
}
}
}

View file

@ -43,21 +43,21 @@ public class PocketSavedData extends DDSavedData {
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound pocketnbt) {
public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
NBTTagCompound pockets = new NBTTagCompound();
PocketRegistry.INSTANCE.writeToNBT(pockets);
pocketnbt.setTag("pockets", pockets);
nbt.setTag("pockets", pockets);
return pocketnbt;
return nbt;
}
@Override
public void readFromNBT(NBTTagCompound pocketnbt) {
public void readFromNBT(NBTTagCompound nbt) {
// Load NBT
if (pocketnbt != null) {
if (pocketnbt.hasKey("pockets")) {
NBTTagCompound pockets = pocketnbt.getCompoundTag("pockets");
if (nbt != null) {
if (nbt.hasKey("pockets")) {
NBTTagCompound pockets = nbt.getCompoundTag("pockets");
PocketRegistry.INSTANCE.readFromNBT(pockets);
}
}

View file

@ -94,11 +94,11 @@ public class PocketTemplate { //there is exactly one pocket placer for each diff
public Pocket place(int shortenedX, int yBase, int shortenedZ, int gridSize, int dimID, int pocketID, int depth, EnumPocketType pocketTypeID, Location depthZeroLocation) { //returns the riftID of the entrance DimDoor
int xBase = shortenedX * gridSize * 16;
int zBase = shortenedZ * gridSize * 16;
DimDoors.log(this.getClass(), "Placing new pocket at x = " + xBase + ", z = " + zBase);
DimDoors.log(this.getClass(), "Name of new pocket schematic is " + schematic.getSchematicName());
DimDoors.log(getClass(), "Placing new pocket at x = " + xBase + ", z = " + zBase);
DimDoors.log(getClass(), "Name of new pocket schematic is " + schematic.getSchematicName());
if (schematic == null) {
DimDoors.log(this.getClass(), "The schematic for variant " + variantName + " somehow didn't load correctly despite all precautions.");
DimDoors.log(getClass(), "The schematic for variant " + variantName + " somehow didn't load correctly despite all precautions.");
return null;
}
//@todo make sure that the door tile entities get registered!
@ -116,14 +116,14 @@ public class PocketTemplate { //there is exactly one pocket placer for each diff
}
//Load TileEntity Data
List<DDTileEntityBase> rifts = new ArrayList();
List<DDTileEntityBase> rifts = new ArrayList<>();
for (NBTTagCompound tileEntityNBT : schematic.getTileEntities()) {
BlockPos pos = new BlockPos(xBase + tileEntityNBT.getInteger("x"), yBase + tileEntityNBT.getInteger("y"), zBase + tileEntityNBT.getInteger("z"));
DimDoors.log(this.getClass(), "Re-loading tile-entity at blockPos: " + pos.toString());
DimDoors.log(getClass(), "Re-loading tile-entity at blockPos: " + pos);
TileEntity tileEntity = world.getTileEntity(pos);
if (tileEntity != null) {
if (tileEntity instanceof DDTileEntityBase) {
DimDoors.log(this.getClass(), "Rift found in schematic: " + pos.toString());
DimDoors.log(getClass(), "Rift found in schematic: " + pos);
DDTileEntityBase rift = (DDTileEntityBase) tileEntity;
rifts.add(rift);
if (rift instanceof TileEntityDimDoor) {
@ -133,7 +133,7 @@ public class PocketTemplate { //there is exactly one pocket placer for each diff
try {
tileEntity.readFromNBT(tileEntityNBT); //this reads in the wrong blockPos
} catch(Exception e) {
DimDoors.warn(this.getClass(), "Loading in the data for TileEntity of type " + tileEntity.toString() + " went wrong. Details: " + e.getLocalizedMessage());
DimDoors.warn(getClass(), "Loading in the data for TileEntity of type " + tileEntity + " went wrong. Details: " + e.getLocalizedMessage());
}
}
tileEntity.setPos(pos); //correct the position
@ -141,7 +141,7 @@ public class PocketTemplate { //there is exactly one pocket placer for each diff
}
}
List<Integer> riftIDs = new ArrayList();
List<Integer> riftIDs = new ArrayList<>();
for (DDTileEntityBase rift : rifts) {
rift.register(depth);
rift.setIsInPocket();

View file

@ -5,10 +5,10 @@
*/
package com.zixiken.dimdoors.shared;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoorUnstable;
import com.zixiken.dimdoors.shared.util.Location;
import com.zixiken.dimdoors.DimDoors;
import com.zixiken.dimdoors.shared.tileentities.DDTileEntityBase;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoorChaos;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoorPersonal;
import java.util.ArrayList;
import java.util.HashMap;
@ -44,12 +44,12 @@ public class RiftRegistry {
// Methods
private RiftRegistry() {
nextRiftID = 0;
rifts = new HashMap();
personalDoors = new ArrayList(); //@todo read from and write to NBT
unpairedRifts = new ArrayList();
unpairedRiftsPerDepth = new ArrayList();
rifts = new HashMap<>();
personalDoors = new ArrayList<>(); //@todo read from and write to NBT
unpairedRifts = new ArrayList<>();
unpairedRiftsPerDepth = new ArrayList<>();
for (int i = 0; i <= maximumDungeonDepth; i++) {
unpairedRiftsPerDepth.add(new ArrayList());
unpairedRiftsPerDepth.add(new ArrayList<>());
}
}
@ -103,7 +103,7 @@ public class RiftRegistry {
NBTTagList riftListsNBT = (NBTTagList) nbt.getTag("unpairedDepthRiftList");
maximumDungeonDepth = riftListsNBT.tagCount(); //makes sure both are synched
for (int i = 0; i < riftListsNBT.tagCount(); i++) {
unpairedRiftsPerDepth.add(new ArrayList());
unpairedRiftsPerDepth.add(new ArrayList<>());
NBTTagList riftsNBT = (NBTTagList) riftListsNBT.get(i);
for (int j = 0; j < riftsNBT.tagCount(); j++) {
NBTTagCompound riftTag = riftsNBT.getCompoundTagAt(j);
@ -160,15 +160,15 @@ public class RiftRegistry {
public int registerNewRift(DDTileEntityBase rift, final int depth) {
Location riftLocation = Location.getLocation(rift);
final int assignedID = nextRiftID;
DimDoors.log(this.getClass(), "Starting registering rift as ID: " + assignedID);
DimDoors.log(getClass(), "Starting registering rift as ID: " + assignedID);
rifts.put(assignedID, riftLocation);
if (rift instanceof TileEntityDimDoorPersonal || rift instanceof TileEntityDimDoorChaos) {
if (rift instanceof TileEntityDimDoorPersonal || rift instanceof TileEntityDimDoorUnstable) {
if (rift instanceof TileEntityDimDoorPersonal) {
personalDoors.add(assignedID);
}
} else {
DimDoors.log(this.getClass(), "Registering rift in unpairedRiftRegistry. ID = " + assignedID + " at depth: " + depth);
DimDoors.log(getClass(), "Registering rift in unpairedRiftRegistry. ID = " + assignedID + " at depth: " + depth);
unpairedRifts.add(assignedID);
registerUnpairedRiftAtDepth(assignedID, depth);
}
@ -179,13 +179,13 @@ public class RiftRegistry {
}
public void unregisterRift(int riftID) {
DimDoors.log(this.getClass(), "unregistering rift " + riftID);
DimDoors.log(getClass(), "unregistering rift " + riftID);
unpair(riftID);
unRegisterUnpairedRiftAtDepth(riftID); //@todo, will this crash if it doesn't find that value?
unpairedRifts.remove((Integer) riftID);
personalDoors.remove((Integer) riftID);
rifts.remove((Integer) riftID);
rifts.remove(riftID);
RiftSavedData.get(DimDoors.getDefWorld()).markDirty(); //Notify that this needs to be saved on world save
}
@ -206,15 +206,15 @@ public class RiftRegistry {
void unRegisterUnpairedRiftAtDepth(DDTileEntityBase rift) {
int depth = rift.getDepth();
DimDoors.log(this.getClass(), "unregistering rift "+ rift.getRiftID() + " as unpaired at depth " + depth);
DimDoors.log(getClass(), "unregistering rift "+ rift.getRiftID() + " as unpaired at depth " + depth);
if (depth < maximumDungeonDepth) {
List<Integer> unpairedRiftListAtDepth = unpairedRiftsPerDepth.get(depth);
unpairedRiftListAtDepth.remove((Integer) rift.getRiftID());
}
}
public Location getRiftLocation(int ID) {
return rifts.get(ID);
public Location getRiftLocation(int id) {
return rifts.get(id);
}
public void pair(int riftID, int riftID2) {
@ -223,12 +223,12 @@ public class RiftRegistry {
}
Location location = rifts.get(riftID);
TileEntity tileEntity = location.getTileEntity(); //@todo this method might need to be in another class?
if (tileEntity != null && tileEntity instanceof DDTileEntityBase) {
if (tileEntity instanceof DDTileEntityBase) {
DDTileEntityBase rift = (DDTileEntityBase) tileEntity;
DimDoors.log(this.getClass(), "RiftRegistry trying to connect rift " + riftID + " to rift " + riftID2 + ".");
DimDoors.log(getClass(), "RiftRegistry trying to connect rift " + riftID + " to rift " + riftID2 + ".");
boolean alreadyPaired = rift.pair(riftID2);
if (!alreadyPaired) {
DimDoors.log(this.getClass(), "RiftRegistry unregistering rift " + riftID + " from unPairedRiftRegistry.");
DimDoors.log(getClass(), "RiftRegistry unregistering rift " + riftID + " from unPairedRiftRegistry.");
unpairedRifts.remove((Integer) riftID);
unRegisterUnpairedRiftAtDepth(riftID);
}
@ -241,10 +241,10 @@ public class RiftRegistry {
}
Location location = rifts.get(riftID);
if (location == null) {
DimDoors.warn(this.getClass(), "RiftID with null location: rift " + riftID);
DimDoors.warn(getClass(), "RiftID with null location: rift " + riftID);
} else {
TileEntity tileEntity = location.getTileEntity();
if (tileEntity != null && tileEntity instanceof DDTileEntityBase) {
if (tileEntity instanceof DDTileEntityBase) {
DDTileEntityBase rift = (DDTileEntityBase) tileEntity;
boolean alreadyUnPaired = rift.unpair();
if (!alreadyUnPaired) {
@ -264,15 +264,15 @@ public class RiftRegistry {
}
public boolean teleportEntityToRift(Entity entity, int pairedRiftID) { //@todo implement this code in the sending rift tiles instead
DimDoors.log(this.getClass(), "RiftID of rift that the entity trying to teleport to is " + pairedRiftID + ".");
DimDoors.log(getClass(), "RiftID of rift that the entity trying to teleport to is " + pairedRiftID + ".");
if (pairedRiftID < 0) {
DimDoors.warn(this.getClass(), "RiftID of rift that entity " + entity + " is trying to teleport to seems to be lower than 0 and it shouldn't.");
DimDoors.warn(getClass(), "RiftID of rift that entity " + entity + " is trying to teleport to seems to be lower than 0 and it shouldn't.");
return false;
}
Location destinationRiftLocation = getRiftLocation(pairedRiftID);
DDTileEntityBase destinationRift = (DDTileEntityBase) destinationRiftLocation.getTileEntity();
if (destinationRift == null) {
DimDoors.warn(this.getClass(), "The rift that an entity is trying to teleport to seems to be null.");
DimDoors.warn(getClass(), "The rift that an entity is trying to teleport to seems to be null.");
}
return TeleporterDimDoors.instance().teleport(entity, destinationRift.getTeleportTargetLocation());
}
@ -298,7 +298,7 @@ public class RiftRegistry {
int returnID = -1;
//After using a command to generate a particular schematic as a pocket to be the next non-random Golden (and randomly Iron) Dimdoor destination
if (this.lastGeneratedEntranceDoorID != -1) {
if (lastGeneratedEntranceDoorID != -1) {
returnID = lastGeneratedEntranceDoorID;
lastGeneratedEntranceDoorID = -1;
return returnID;
@ -308,15 +308,14 @@ public class RiftRegistry {
List<Integer> rifts = unpairedRiftsPerDepth.get(depth);
int numberOfUnpairedRifts = rifts.size();
if (numberOfUnpairedRifts > 1) {
DimDoors.log(this.getClass(), "There's more than 1 unpaired rift at this depth.");
DimDoors.log(getClass(), "There's more than 1 unpaired rift at this depth.");
Random random = new Random();
int indexOforigRiftID = -1;
int randomRiftIDIndex;
boolean origRiftIsOnSameDepth = rifts.contains(origRiftID);
if (origRiftIsOnSameDepth) {
indexOforigRiftID = rifts.indexOf(origRiftID);
int indexOfOrigRiftID = rifts.indexOf(origRiftID);
randomRiftIDIndex = random.nextInt(numberOfUnpairedRifts - 1); //-1 because we do not want to include the key of the original rift, so it will not randomly pair to itself
if (randomRiftIDIndex >= indexOforigRiftID) {
if (randomRiftIDIndex >= indexOfOrigRiftID) {
randomRiftIDIndex++;
}
} else {
@ -325,7 +324,7 @@ public class RiftRegistry {
returnID = rifts.get(randomRiftIDIndex);
}
}
DimDoors.log(this.getClass(), "Rift to pair to was chosen: returnID = " + returnID);
DimDoors.log(getClass(), "Rift to pair to was chosen: returnID = " + returnID);
return returnID;
}
@ -377,7 +376,7 @@ public class RiftRegistry {
}
public int getRandomNonPersonalRiftID() {
List<Integer> nonPersonalRiftIDs = new ArrayList(rifts.keySet());
List<Integer> nonPersonalRiftIDs = new ArrayList<>(rifts.keySet());
for (int persRiftID : personalDoors) {
//DimDoors.log(this.getClass(), "Removing personal rift: " + persRiftID + " from nonPersonalRiftIDs. nPRI size = " + nonPersonalRiftIDs.size());
nonPersonalRiftIDs.remove((Integer) persRiftID);
@ -393,13 +392,13 @@ public class RiftRegistry {
public Location getTeleportLocation(int riftId) {
if (riftId < 0) {
DimDoors.warn(this.getClass(), "RiftID of rift that entity is trying to teleport to seems to be lower than 0 and it shouldn't.");
DimDoors.warn(getClass(), "RiftID of rift that entity is trying to teleport to seems to be lower than 0 and it shouldn't.");
return null;
}
Location destinationRiftLocation = getRiftLocation(riftId);
DDTileEntityBase destinationRift = (DDTileEntityBase) destinationRiftLocation.getTileEntity();
if (destinationRift == null) {
DimDoors.warn(this.getClass(), "The rift that an entity is trying to teleport to seems to be null. RiftID: " + riftId + ". Expecting to crash in 3... 2... 1..");
DimDoors.warn(getClass(), "The rift that an entity is trying to teleport to seems to be null. RiftID: " + riftId + ". Expecting to crash in 3... 2... 1..");
}
return destinationRift.getTeleportTargetLocation();
}
@ -409,7 +408,7 @@ public class RiftRegistry {
Location riftLocation = getRiftLocation(riftID);
if (riftLocation != null) {
TileEntity tileEntity = riftLocation.getTileEntity();
if (tileEntity != null && tileEntity instanceof DDTileEntityBase) {
if (tileEntity instanceof DDTileEntityBase) {
DDTileEntityBase rift = (DDTileEntityBase) tileEntity;
EntityPlayer player = (EntityPlayer) entity;
rift.validatePlayerPocketEntry(player);
@ -434,9 +433,9 @@ public class RiftRegistry {
}
/**
* @param ID the lastGeneratedEntranceDoorID to set
* @param id the lastGeneratedEntranceDoorID to set
*/
public void setLastGeneratedEntranceDoorID(int ID) {
this.lastGeneratedEntranceDoorID = ID;
public void setLastGeneratedEntranceDoorID(int id) {
lastGeneratedEntranceDoorID = id;
}
}

View file

@ -43,21 +43,21 @@ public class RiftSavedData extends DDSavedData {
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound riftnbt) {
public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
NBTTagCompound rifts = new NBTTagCompound();
RiftRegistry.INSTANCE.writeToNBT(rifts);
riftnbt.setTag("rifts", rifts);
nbt.setTag("rifts", rifts);
return riftnbt;
return nbt;
}
@Override
public void readFromNBT(NBTTagCompound riftnbt) {
public void readFromNBT(NBTTagCompound nbt) {
// Load NBT
if (riftnbt != null) {
if (riftnbt.hasKey("rifts")) {
NBTTagCompound rifts = riftnbt.getCompoundTag("rifts");
if (nbt != null) {
if (nbt.hasKey("rifts")) {
NBTTagCompound rifts = nbt.getCompoundTag("rifts");
RiftRegistry.INSTANCE.readFromNBT(rifts);
}
}

View file

@ -29,7 +29,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.minecraft.nbt.NBTTagCompound;
@ -46,21 +45,19 @@ public class SchematicHandler {
private PocketTemplate personalPocketTemplate;
private PocketTemplate publicPocketTemplate;
private List<PocketTemplate> dungeonTemplates; //@todo should this be a Map? Does it need to? It gets reloaded from scratch on ServerStart every time, so...
final private Map<String, Map<String, Integer>> dungeonNameMap = new HashMap();
final private Map<String, Map<String, Integer>> dungeonNameMap = new HashMap<>();
//@todo, sort templates by depth over here? that'd mean that that doesn't have to be done on pocket placement each and every time
PocketTemplate getRandomDungeonPocketTemplate(int depth, int maxPocketSize) { //@todo maxPocketSize is passed for no reason at all here; pockets exceeding maxPocketSize have not been loaded in the first place...
List<PocketTemplate> validTemplates = new ArrayList();
List<PocketTemplate> validTemplates = new ArrayList<>();
int totalWeight = 0;
for (PocketTemplate template : dungeonTemplates) {
if (template.getMinDepth() > depth || template.getMaxDepth() < depth) {
//do nothing
} else {
if (depth >= template.getMinDepth() && depth <= template.getMaxDepth()) {
validTemplates.add(template);
totalWeight += template.getWeight(depth);
}
}
DimDoors.log(this.getClass(), "depth = " + depth + ". totalWeight = " + totalWeight);
DimDoors.log(getClass(), "depth = " + depth + ". totalWeight = " + totalWeight);
Random random = new Random();
int chosenTemplatePointer = random.nextInt(totalWeight);
@ -70,14 +67,14 @@ public class SchematicHandler {
return template;
}
}
DimDoors.warn(this.getClass(), "No valid dungeon could be chosen for this depth. What have you done to make this happen? Now crashing:");
DimDoors.warn(getClass(), "No valid dungeon could be chosen for this depth. What have you done to make this happen? Now crashing:");
return null;
}
public void loadSchematics() {
personalPocketTemplate = loadTemplatesFromJson("default_private", PocketRegistry.INSTANCE.getPrivatePocketSize()).get(0);
publicPocketTemplate = loadTemplatesFromJson("default_public", PocketRegistry.INSTANCE.getPublicPocketSize()).get(0);
dungeonTemplates = new ArrayList();
dungeonTemplates = new ArrayList<>();
List<String> dungeonSchematicNameStrings = DDConfig.getDungeonSchematicNames();
int maxPocketSize = PocketRegistry.INSTANCE.getMaxPocketSize();
for (String nameString : dungeonSchematicNameStrings) {
@ -112,7 +109,7 @@ public class SchematicHandler {
bufferedMap = dungeonNameMap.get(dirName);
bufferedMap.put(template.getName(), dungeonTemplates.indexOf(template));
} else {
bufferedMap = new HashMap();
bufferedMap = new HashMap<>();
bufferedMap.put(template.getName(), dungeonTemplates.indexOf(template));
dungeonNameMap.put(dirName, bufferedMap);
}
@ -143,7 +140,7 @@ public class SchematicHandler {
IOUtils.copy(jsonJarStream, writer, StandardCharsets.UTF_8);
} catch (IOException ex) {
Logger.getLogger(SchematicHandler.class.getName()).log(Level.SEVERE, "Json-file " + nameString + ".json did not load correctly from jar. Skipping loading of this template.", ex);
return new ArrayList();
return new ArrayList<>();
}
jsonString = writer.toString();
} else if (jsonFile.exists()) {
@ -152,11 +149,11 @@ public class SchematicHandler {
jsonString = readFile(jsonFile.getAbsolutePath(), StandardCharsets.UTF_8);
} catch (IOException ex) {
Logger.getLogger(SchematicHandler.class.getName()).log(Level.SEVERE, "Json-file " + nameString + ".json did not load correctly from config folder. Skipping loading of this template.", ex);
return new ArrayList();
return new ArrayList<>();
}
} else {
DimDoors.warn(SchematicHandler.class, "Json-file " + nameString + ".json was not found in the jar or config directory. Skipping loading of this template.");
return new ArrayList();
return new ArrayList<>();
}
JsonParser parser = new JsonParser();
JsonElement jsonElement = parser.parse(jsonString);
@ -245,10 +242,10 @@ public class SchematicHandler {
final EnumPocketType pocketType = EnumPocketType.getFromInt(jsonTemplate.get("pocketType").getAsInt());
final JsonArray variations = jsonTemplate.getAsJsonArray("variations");
List<PocketTemplate> pocketTemplates = new ArrayList();
List<PocketTemplate> pocketTemplates = new ArrayList<>();
JsonObject chosenVariation = null; //only applicable if jsonType == "Singular"
int chosenVariationSize = -1; //only applicable if jsonType == "Singular"
List<JsonObject> validVariations = new ArrayList();
List<JsonObject> validVariations = new ArrayList<>();
//put all valid variation JsonObjects into an array list
for (int i = 0; i < variations.size(); i++) {
JsonObject variation = variations.get(i).getAsJsonObject();
@ -321,11 +318,11 @@ public class SchematicHandler {
}
public ArrayList<String> getDungeonTemplateGroups() {
return new ArrayList(dungeonNameMap.keySet());
return new ArrayList<>(dungeonNameMap.keySet());
}
public ArrayList<String> getDungeonTemplateNames(String directory) {
return new ArrayList(dungeonNameMap.get(directory).keySet());
return new ArrayList<>(dungeonNameMap.get(directory).keySet());
}
/**

View file

@ -4,9 +4,7 @@ import com.zixiken.dimdoors.shared.util.Location;
import com.zixiken.dimdoors.DimDoors;
import java.util.EnumSet;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.network.play.server.SPacketChangeGameState;
import net.minecraft.network.play.server.SPacketEntityEffect;
import net.minecraft.network.play.server.SPacketPlayerAbilities;
import net.minecraft.util.math.BlockPos;
@ -16,6 +14,7 @@ import net.minecraft.network.play.server.SPacketPlayerPosLook;
import net.minecraft.network.play.server.SPacketRespawn;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.management.PlayerList;
import net.minecraftforge.fml.common.FMLCommonHandler;
//ref: https://github.com/WayofTime/BloodMagic/blob/1.11/src/main/java/WayofTime/bloodmagic/ritual/portal/Teleports.java
public class TeleporterDimDoors extends Teleporter {
@ -31,7 +30,7 @@ public class TeleporterDimDoors extends Teleporter {
}
@Override
public boolean makePortal(Entity entity) {
public boolean makePortal(Entity entityIn) {
return true;
}
@ -53,7 +52,7 @@ public class TeleporterDimDoors extends Teleporter {
}
@Override
public void placeInPortal(Entity entity, float rotationYaw) {
public void placeInPortal(Entity entityIn, float rotationYaw) {
}
public boolean teleport(Entity entity, Location location) { //@todo add float playerRotationYaw as a parameter
@ -81,7 +80,7 @@ public class TeleporterDimDoors extends Teleporter {
int oldDimID = entity.dimension;
WorldServer oldWorldserver = DimDoors.proxy.getWorldServer(oldDimID);
WorldServer newWorldserver = DimDoors.proxy.getWorldServer(newDimID);
if (entity instanceof EntityPlayer) {
if (entity instanceof EntityPlayerMP) { // TODO: this was EntityPlayer, but I changed this to EntityPlayerMP because that's what the cast assumes
DimDoors.log(TeleporterDimDoors.class, "Teleporting Player to new dimension.");
EntityPlayerMP player = (EntityPlayerMP) entity;
float playerRotationYaw = player.rotationYaw; //@todo make this a parameter?
@ -104,7 +103,7 @@ public class TeleporterDimDoors extends Teleporter {
oldWorldserver.profiler.startSection("placing");
if (player.isEntityAlive()) {
DimDoors.log(this.getClass(), "Placing the player entity at " + pos.toString());
DimDoors.log(getClass(), "Placing the player entity at " + pos);
player.setLocationAndAngles(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, playerRotationYaw, player.rotationPitch);
player.motionX = 0;
player.motionZ = 0;
@ -125,7 +124,7 @@ public class TeleporterDimDoors extends Teleporter {
for (PotionEffect potioneffect : player.getActivePotionEffects()) {
player.connection.sendPacket(new SPacketEntityEffect(player.getEntityId(), potioneffect));
}
net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerChangedDimensionEvent(player, oldDimID, newDimID);
FMLCommonHandler.instance().firePlayerChangedDimensionEvent(player, oldDimID, newDimID);
} else {
DimDoors.log(TeleporterDimDoors.class, "Teleporting non-Player to new dimension.");
@ -138,7 +137,7 @@ public class TeleporterDimDoors extends Teleporter {
private void teleportLocal(Entity entity, BlockPos pos) {
WorldServer worldserver = (WorldServer) entity.world;
if (entity instanceof EntityPlayer) {
if (entity instanceof EntityPlayerMP) { // TODO: this was EntityPlayer, but I changed this to EntityPlayerMP because that's what the cast assumes
DimDoors.log(TeleporterDimDoors.class,
"Teleporting Player within same dimension.");
EntityPlayerMP player = (EntityPlayerMP) entity;
@ -150,7 +149,7 @@ public class TeleporterDimDoors extends Teleporter {
worldserver.profiler.startSection("moving");
player.setLocationAndAngles(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, playerRotationYaw, player.rotationPitch);
//playerList.preparePlayer(player, worldserver); //This makes the player stutter heavily on teleport
player.connection.setPlayerLocation(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, playerRotationYaw, player.rotationPitch, EnumSet.<SPacketPlayerPosLook.EnumFlags>noneOf(SPacketPlayerPosLook.EnumFlags.class
player.connection.setPlayerLocation(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, playerRotationYaw, player.rotationPitch, EnumSet.noneOf(SPacketPlayerPosLook.EnumFlags.class
));
worldserver.profiler.endSection();
player.connection.sendPacket(new SPacketPlayerAbilities(player.capabilities));

View file

@ -32,36 +32,36 @@ public abstract class BlockDimDoorBase extends BlockDoor implements IDimDoor, IT
}
@Override
public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity) {
IBlockState down = world.getBlockState(pos.down());
if (!world.isRemote && down.getBlock() == this) { //should only teleport when colliding with top part of the door to prevent double teleportation from being triggered
public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) {
IBlockState down = worldIn.getBlockState(pos.down());
if (!worldIn.isRemote && down.getBlock() == this) { //should only teleport when colliding with top part of the door to prevent double teleportation from being triggered
if (down.getValue(BlockDoor.OPEN)
&& entity instanceof EntityPlayer //@todo remove this so any entity can go through?
&& (entity.timeUntilPortal < 1) //to prevent the player from teleporting all over the place we have a 50-tick cooldown
&& isEntityFacingDoor(down, (EntityLivingBase) entity)) {
this.toggleDoor(world, pos, false);
enterDimDoor(world, pos, entity);
&& entityIn instanceof EntityPlayer //@todo remove this so any entity can go through?
&& entityIn.timeUntilPortal < 1 //to prevent the player from teleporting all over the place we have a 50-tick cooldown
&& isEntityFacingDoor(down, (EntityLivingBase) entityIn)) {
toggleDoor(worldIn, pos, false);
enterDimDoor(worldIn, pos, entityIn);
}
}
}
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
if (!checkCanOpen(world, pos, player)) {
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
if (!checkCanOpen(worldIn, pos, playerIn)) {
return false;
}
if (state.getValue(BlockDoor.HALF) == EnumDoorHalf.UPPER) {
pos = pos.down();
state = world.getBlockState(pos);
state = worldIn.getBlockState(pos);
}
if (state.getBlock() != this) {
return false;
} else {
state = state.cycleProperty(BlockDoor.OPEN);
world.setBlockState(pos, state, 2);
world.markBlockRangeForRenderUpdate(pos, pos.up());
world.playEvent(player, (state.getValue(OPEN)) ? this.getOpenSound() : this.getCloseSound(), pos, 0);
worldIn.setBlockState(pos, state, 2);
worldIn.markBlockRangeForRenderUpdate(pos, pos.up());
worldIn.playEvent(playerIn, state.getValue(OPEN) ? getOpenSound() : getCloseSound(), pos, 0);
return true;
}
}
@ -73,9 +73,8 @@ public abstract class BlockDimDoorBase extends BlockDoor implements IDimDoor, IT
//Called to update the render information on the tile entity. Could probably implement a data watcher,
//but this works fine and is more versatile I think.
public BlockDimDoorBase updateAttachedTile(World world, BlockPos pos) {
public void updateAttachedTile(World world, BlockPos pos) {
DimDoors.proxy.updateDoorTE(this, world, pos);
return this;
}
@Override
@ -84,8 +83,8 @@ public abstract class BlockDimDoorBase extends BlockDoor implements IDimDoor, IT
}
@Override
public void updateTick(World par1World, BlockPos pos, IBlockState state, Random rand) {
updateAttachedTile(par1World, pos);
public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) {
updateAttachedTile(worldIn, pos);
}
/**
@ -95,25 +94,25 @@ public abstract class BlockDimDoorBase extends BlockDoor implements IDimDoor, IT
@Override
@SideOnly(Side.CLIENT)
public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) {
return new ItemStack(this.getItemDoor(), 1, 0);
return new ItemStack(getItemDoor(), 1, 0);
}
/**
* Returns the ID of the items to drop on destruction.
*/
@Override
public Item getItemDropped(IBlockState state, Random random, int fortune) {
return isUpperDoorBlock(state) ? null : this.getItemDoor();
public Item getItemDropped(IBlockState state, Random rand, int fortune) {
return isUpperDoorBlock(state) ? null : getItemDoor();
}
@Override
@SideOnly(Side.CLIENT)
public ItemStack getItem(World world, BlockPos pos, IBlockState state) {
return new ItemStack(this.getItemDoor(), 1, 0);
public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) {
return new ItemStack(getItemDoor(), 1, 0);
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) { //gets called upon world load as well
public TileEntity createNewTileEntity(World worldIn, int meta) { //gets called upon world load as well
return new TileEntityDimDoor();
}
@ -136,16 +135,16 @@ public abstract class BlockDimDoorBase extends BlockDoor implements IDimDoor, IT
// Although any entity has the proper fields for this check,
// we should only apply it to living entities since things
// like Minecarts might come in backwards.
return (state.getValue(BlockDoor.FACING) == EnumFacing.fromAngle(entity.rotationYaw));
return state.getValue(BlockDoor.FACING) == EnumFacing.fromAngle(entity.rotationYaw);
}
@Override
public void breakBlock(World world, BlockPos pos, IBlockState state) {
public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
DDTileEntityBase origRift = null;
boolean isTopHalf = state.getValue(BlockDoor.HALF) == EnumDoorHalf.UPPER;
boolean shouldPlaceRift = false;
if (isTopHalf) {
origRift = (DDTileEntityBase) world.getTileEntity(pos);
origRift = (DDTileEntityBase) worldIn.getTileEntity(pos);
if (origRift.isPaired()) {
shouldPlaceRift = true;
RiftRegistry.INSTANCE.setLastChangedRift(origRift); //@todo this is a crude workaround
@ -153,10 +152,10 @@ public abstract class BlockDimDoorBase extends BlockDoor implements IDimDoor, IT
RiftRegistry.INSTANCE.unregisterRift(origRift.getRiftID());
}
}
super.breakBlock(world, pos, state);
super.breakBlock(worldIn, pos, state);
if (shouldPlaceRift) {
world.setBlockState(pos, ModBlocks.RIFT.getDefaultState());
DDTileEntityBase newRift = (DDTileEntityBase) world.getTileEntity(pos);
worldIn.setBlockState(pos, ModBlocks.RIFT.getDefaultState());
DDTileEntityBase newRift = (DDTileEntityBase) worldIn.getTileEntity(pos);
newRift.loadDataFrom(origRift); //@todo this does not work here, or does it?
}
}
@ -183,20 +182,18 @@ public abstract class BlockDimDoorBase extends BlockDoor implements IDimDoor, IT
}
private boolean canPlaceBottomAt(IBlockState state) {
return (state.equals(Blocks.AIR) || state.getMaterial().isReplaceable());
return state.equals(Blocks.AIR) || state.getMaterial().isReplaceable();
}
private boolean canPlaceTopAt(IBlockState state) {
return (state.getBlock() == ModBlocks.RIFT || state.equals(Blocks.AIR) || state.getMaterial().isReplaceable());
return state.getBlock() == ModBlocks.RIFT || state.equals(Blocks.AIR) || state.getMaterial().isReplaceable();
}
protected int getCloseSound()
{
return this.blockMaterial == Material.IRON ? 1011 : 1012;
protected int getCloseSound() {
return blockMaterial == Material.IRON ? 1011 : 1012;
}
protected int getOpenSound()
{
return this.blockMaterial == Material.IRON ? 1005 : 1006;
protected int getOpenSound() {
return blockMaterial == Material.IRON ? 1005 : 1006;
}
}

View file

@ -26,8 +26,7 @@ public class BlockDimDoorGold extends BlockDimDoorBase {
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
public TileEntity createNewTileEntity(World worldIn, int meta) {
return new TileEntityDimDoorGold();
}
}

View file

@ -26,8 +26,7 @@ public class BlockDimDoorPersonal extends BlockDimDoorBase {
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
public TileEntity createNewTileEntity(World worldIn, int meta) {
return new TileEntityDimDoorPersonal();
}
}

View file

@ -2,7 +2,7 @@ package com.zixiken.dimdoors.shared.blocks;
import com.zixiken.dimdoors.DimDoors;
import com.zixiken.dimdoors.shared.items.ModItems;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoorChaos;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoorUnstable;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
@ -30,12 +30,12 @@ public class BlockDimDoorUnstable extends BlockDimDoorBase {
}
@Override
public Item getItemDropped(IBlockState state, Random random, int fortune) {
public Item getItemDropped(IBlockState state, Random rand, int fortune) {
return Items.IRON_DOOR;
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileEntityDimDoorChaos();
public TileEntity createNewTileEntity(World worldIn, int meta) {
return new TileEntityDimDoorUnstable();
}
}

View file

@ -26,7 +26,7 @@ public class BlockDimDoorWarp extends BlockDimDoorBase {
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
public TileEntity createNewTileEntity(World worldIn, int meta) {
return new TileEntityDimDoorWarp();
}
}

View file

@ -33,7 +33,7 @@ public class BlockDoorQuartz extends BlockDoor {
@Override
@SideOnly(Side.CLIENT)
public ItemStack getItem(World world, BlockPos pos, IBlockState state) {
public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) {
return new ItemStack(ModItems.QUARTZ_DOOR);
}
}

View file

@ -1,12 +1,11 @@
package com.zixiken.dimdoors.shared.blocks;
import java.util.List;
import java.util.Random;
import com.zixiken.dimdoors.DimDoors;
import com.zixiken.dimdoors.shared.DDConfig;
import com.zixiken.dimdoors.shared.TeleporterDimDoors;
import com.zixiken.dimdoors.shared.util.DDRandomUtils;
import com.zixiken.dimdoors.shared.util.RandomUtils;
import com.zixiken.dimdoors.shared.util.Location;
import com.zixiken.dimdoors.shared.world.limbodimension.LimboDecay;
import com.zixiken.dimdoors.shared.world.limbodimension.WorldProviderLimbo;
@ -30,20 +29,18 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import javax.annotation.Nullable;
@SuppressWarnings("deprecation")
public class BlockFabric extends Block {
public static final String ID = "fabric";
public static final PropertyEnum<BlockFabric.EnumType> TYPE = PropertyEnum.<BlockFabric.EnumType>create("type", BlockFabric.EnumType.class);
public static final PropertyEnum<BlockFabric.EnumType> TYPE = PropertyEnum.create("type", BlockFabric.EnumType.class);
private static final float SUPER_HIGH_HARDNESS = 10000000000000F;
private static final float SUPER_EXPLOSION_RESISTANCE = 18000000F;
public BlockFabric() {
super(Material.IRON);
this.setCreativeTab(DimDoors.dimDoorsCreativeTab);
setCreativeTab(DimDoors.dimDoorsCreativeTab);
setLightLevel(1.0F);
setHardness(0.1F);
setUnlocalizedName(ID);
@ -73,11 +70,11 @@ public class BlockFabric extends Block {
}
@Override
public float getBlockHardness(IBlockState state, World world, BlockPos pos) {
if (state.getValue(TYPE).equals(EnumType.ANCIENT) || state.getValue(TYPE).equals(EnumType.ETERNAL)) {
public float getBlockHardness(IBlockState blockState, World worldIn, BlockPos pos) {
if (blockState.getValue(TYPE).equals(EnumType.ANCIENT) || blockState.getValue(TYPE).equals(EnumType.ETERNAL)) {
return SUPER_HIGH_HARDNESS;
} else {
return this.blockHardness;
return blockHardness;
}
}
@ -103,9 +100,9 @@ public class BlockFabric extends Block {
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> subItems) {
public void getSubBlocks(CreativeTabs itemIn, NonNullList<ItemStack> items) {
for(BlockFabric.EnumType type : EnumType.values()) {
subItems.add(new ItemStack(this, 1));
items.add(new ItemStack(this, 1));
}
}
@ -120,7 +117,7 @@ public class BlockFabric extends Block {
}
@Override
public int quantityDropped(Random par1Random) {
public int quantityDropped(Random random) {
return 0;
}
@ -128,12 +125,12 @@ public class BlockFabric extends Block {
* replaces the block clicked with the held block, instead of placing the
* block on top of it. Shift click to disable.
*
* @param world the world that this block is in
* @param worldIn the world that this block is in
* @param pos the position this block is at
* @param state the state this block is in
* @param player the player right-clicking the block
* @param playerIn the player right-clicking the block
* @param hand the hand the player is using
* @param side the side of the block that is being clicked
* @param facing the side of the block that is being clicked
* @param hitX the x coordinate of the exact place the player is clicking on
* the block
* @param hitY the y coordinate ...
@ -142,22 +139,22 @@ public class BlockFabric extends Block {
* not?
*/
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
ItemStack heldItem = player.getHeldItem(hand);
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
ItemStack heldItem = playerIn.getHeldItem(hand);
if (heldItem != null && heldItem.getItem() instanceof ItemBlock
if (heldItem.getItem() instanceof ItemBlock
&& (state.getValue(TYPE).equals(EnumType.REALITY) || state.getValue(TYPE).equals(EnumType.ALTERED))) {
Block block = Block.getBlockFromItem(heldItem.getItem());
if (!state.isNormalCube() || block.hasTileEntity(block.getDefaultState())
|| block == this //this also keeps it from being replaced by Ancient Fabric
|| player.isSneaking()) {
|| playerIn.isSneaking()) {
return false;
}
if (!world.isRemote) { //@todo on a server, returning false or true determines where the block gets placed?
if (!player.isCreative()) {
if (!worldIn.isRemote) { //@todo on a server, returning false or true determines where the block gets placed?
if (!playerIn.isCreative()) {
heldItem.setCount(heldItem.getCount()-1);
}
world.setBlockState(pos, block.getStateForPlacement(world, pos, side, hitX, hitY, hitZ, heldItem.getMetadata(), player)); //choosing getStateForPlacement over getDefaultState, because it will cause directional blocks, like logs to rotate correctly
worldIn.setBlockState(pos, block.getStateForPlacement(worldIn, pos, facing, hitX, hitY, hitZ, heldItem.getMetadata(), playerIn)); //choosing getStateForPlacement over getDefaultState, because it will cause directional blocks, like logs to rotate correctly
}
return true;
}
@ -178,33 +175,33 @@ public class BlockFabric extends Block {
}
public String toString() {
return this.name;
return name;
}
@Override
public String getName() {
return this.name;
return name;
}
}
@Override
public void onEntityWalk(World world, BlockPos pos, Entity entity) {
IBlockState state = world.getBlockState(pos);
if (state.getValue(TYPE) == EnumType.ETERNAL && world.provider instanceof WorldProviderLimbo && entity instanceof EntityPlayer) {
Location origLocation = new Location(world, pos);
Location transFormedLocation = DDRandomUtils.transformLocationRandomly(DDConfig.getOwCoordinateOffsetBase(), DDConfig.getOwCoordinateOffsetPower(), DDConfig.getMaxDungeonDepth(), origLocation);
public void onEntityWalk(World worldIn, BlockPos pos, Entity entityIn) {
IBlockState state = worldIn.getBlockState(pos);
if (state.getValue(TYPE) == EnumType.ETERNAL && worldIn.provider instanceof WorldProviderLimbo && entityIn instanceof EntityPlayer) {
Location origLocation = new Location(worldIn, pos);
Location transFormedLocation = RandomUtils.transformLocationRandomly(DDConfig.getOwCoordinateOffsetBase(), DDConfig.getOwCoordinateOffsetPower(), DDConfig.getMaxDungeonDepth(), origLocation);
BlockPos correctedPos = DimDoors.proxy.getWorldServer(0).getTopSolidOrLiquidBlock(transFormedLocation.getPos());
Location correctedLocation = new Location(0, correctedPos);
TeleporterDimDoors.instance().teleport(entity, correctedLocation);
TeleporterDimDoors.instance().teleport(entityIn, correctedLocation);
}
}
@Override
public void updateTick(World world, BlockPos pos, IBlockState state, Random random) { //if this creates more problems, because everything ticks, we should probably move this to its own class again
public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { //if this creates more problems, because everything ticks, we should probably move this to its own class again
//Make sure this block is unraveled fabric in Limbo
if (state.getValue(TYPE) == EnumType.UNRAVELED && world.provider instanceof WorldProviderLimbo) {
LimboDecay.applySpreadDecay(world, pos);
if (state.getValue(TYPE) == EnumType.UNRAVELED && worldIn.provider instanceof WorldProviderLimbo) {
LimboDecay.applySpreadDecay(worldIn, pos);
}
}
}

View file

@ -35,7 +35,6 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SuppressWarnings("deprecation")
public class BlockRift extends Block implements ITileEntityProvider {
private static final float MIN_IMMUNE_RESISTANCE = 5000.0F;
public static final String ID = "rift";
private final ArrayList<Block> blocksImmuneToRift; // List of Vanilla blocks immune to rifts
@ -48,7 +47,7 @@ public class BlockRift extends Block implements ITileEntityProvider {
setUnlocalizedName(ID);
setRegistryName(new ResourceLocation(DimDoors.MODID, ID));
modBlocksImmuneToRift = new ArrayList<Block>();
modBlocksImmuneToRift = new ArrayList<>();
modBlocksImmuneToRift.add(ModBlocks.FABRIC);
modBlocksImmuneToRift.add(ModBlocks.DIMENSIONAL_DOOR);
modBlocksImmuneToRift.add(ModBlocks.WARP_DIMENSIONAL_DOOR);
@ -61,7 +60,7 @@ public class BlockRift extends Block implements ITileEntityProvider {
modBlocksImmuneToRift.add(ModBlocks.PERSONAL_DIMENSIONAL_DOOR);
modBlocksImmuneToRift.add(ModBlocks.QUARTZ_DOOR);
blocksImmuneToRift = new ArrayList<Block>();
blocksImmuneToRift = new ArrayList<>();
blocksImmuneToRift.add(Blocks.LAPIS_BLOCK);
blocksImmuneToRift.add(Blocks.IRON_BLOCK);
blocksImmuneToRift.add(Blocks.GOLD_BLOCK);
@ -85,7 +84,7 @@ public class BlockRift extends Block implements ITileEntityProvider {
}
@Override
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) {
public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) {
return null;
}
@ -104,7 +103,7 @@ public class BlockRift extends Block implements ITileEntityProvider {
* coordinates. Args: blockAccess, x, y, z, side
*/
@Override
public boolean isSideSolid(IBlockState base_state, IBlockAccess worldIn, BlockPos pos, EnumFacing side) {
public boolean isSideSolid(IBlockState base_state, IBlockAccess world, BlockPos pos, EnumFacing side) {
return false;
}
@ -137,7 +136,7 @@ public class BlockRift extends Block implements ITileEntityProvider {
*/
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(IBlockState state, World worldIn, BlockPos pos, Random rand) {
public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand) {
//ArrayList<BlockPos> targets = findReachableBlocks(worldIn, pos, 2, false);
//TODO: implement the parts specified in the method comment?
int x = pos.getX(), y = pos.getY(), z = pos.getZ();
@ -170,10 +169,7 @@ public class BlockRift extends Block implements ITileEntityProvider {
// may have low hardness to make them easier to build with. However, block.getExplosionResistance()
// is designed to receive an entity, the source of the blast. We have no entity so
// I've set this to access blockResistance directly. Might need changing later.
return block != null
/*&&
(block >= MIN_IMMUNE_RESISTANCE*/ || modBlocksImmuneToRift.contains(block)
|| blocksImmuneToRift.contains(block);
return block != null /* && block >= MIN_IMMUNE_RESISTANCE */ || modBlocksImmuneToRift.contains(block) || blocksImmuneToRift.contains(block);
}
public boolean isModBlockImmune(World world, BlockPos pos) {
@ -194,21 +190,21 @@ public class BlockRift extends Block implements ITileEntityProvider {
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
public TileEntity createNewTileEntity(World worldIn, int meta) {
return new TileEntityRift();
}
@Override
public void breakBlock(World world, BlockPos pos, IBlockState state) {
TileEntityRift riftTile = (TileEntityRift) world.getTileEntity(pos);
public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
TileEntityRift riftTile = (TileEntityRift) worldIn.getTileEntity(pos);
if (riftTile == null || !riftTile.placingDoorOnRift) {
DimDoors.log(this.getClass(), "Unregistering rift at position " + pos.toString() + ", because it is destroyed (creative) or has closed.");
DimDoors.log(getClass(), "Unregistering rift at position " + pos + ", because it is destroyed (creative) or has closed.");
RiftRegistry.INSTANCE.unregisterLastChangedRift();
} else {
DimDoors.log(this.getClass(), "Not unregistering rift at position " + pos.toString() + ", because it is being replaced by a door.");
DimDoors.log(getClass(), "Not unregistering rift at position " + pos + ", because it is being replaced by a door.");
riftTile.placingDoorOnRift = false; //probably not needed, but it shouldn't hurt to do this
}
world.removeTileEntity(pos);
worldIn.removeTileEntity(pos);
}
@Override

View file

@ -31,7 +31,7 @@ public class BlockTransTrapdoor extends BlockTrapDoor implements IDimDoor, ITile
public BlockTransTrapdoor() {
super(Material.WOOD);
this.setCreativeTab(DimDoors.dimDoorsCreativeTab);
setCreativeTab(DimDoors.dimDoorsCreativeTab);
setHardness(1.0F);
setUnlocalizedName(ID);
setRegistryName(new ResourceLocation(DimDoors.MODID, ID));
@ -40,12 +40,12 @@ public class BlockTransTrapdoor extends BlockTrapDoor implements IDimDoor, ITile
//Teleports the player to the exit link of that dimension, assuming it is a pocket
@Override
public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity) {
enterDimDoor(world, pos, entity);
public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) {
enterDimDoor(worldIn, pos, entityIn);
}
public boolean checkCanOpen(World world, BlockPos pos) {
return this.checkCanOpen(world, pos, null);
return checkCanOpen(world, pos, null);
}
public boolean checkCanOpen(World world, BlockPos pos, EntityPlayer player) {
@ -53,15 +53,15 @@ public class BlockTransTrapdoor extends BlockTrapDoor implements IDimDoor, ITile
}
@Override
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
return checkCanOpen(worldIn, pos, playerIn)
&& super.onBlockActivated(worldIn, pos, state, playerIn, hand, side, hitX, hitY, hitZ);
&& super.onBlockActivated(worldIn, pos, state, playerIn, hand, facing, hitX, hitY, hitZ);
}
@Override
public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block neighborBlock, BlockPos fromPos) {
public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) {
if (checkCanOpen(worldIn, pos)) {
super.neighborChanged(state, worldIn, pos, neighborBlock, fromPos);
super.neighborChanged(state, worldIn, pos, blockIn, fromPos);
}
}
@ -77,18 +77,18 @@ public class BlockTransTrapdoor extends BlockTrapDoor implements IDimDoor, ITile
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
public TileEntity createNewTileEntity(World worldIn, int meta) {
return new TileEntityTransTrapdoor();
}
@Override
@SideOnly(Side.CLIENT)
public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) {
return new ItemStack(this.getItemDoor(), 1, 0);
return new ItemStack(getItemDoor(), 1, 0);
}
@Override
public Item getItemDropped(IBlockState state, Random random, int fortuneLevel) {
public Item getItemDropped(IBlockState state, Random rand, int fortune) {
return Item.getItemFromBlock(Blocks.TRAPDOOR);
}
@ -107,9 +107,9 @@ public class BlockTransTrapdoor extends BlockTrapDoor implements IDimDoor, ITile
}
@Override
public void breakBlock(World world, BlockPos pos, IBlockState state) {
public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
// This function runs on the server side after a block is replaced
// We MUST call super.breakBlock() since it involves removing tile entities
super.breakBlock(world, pos, state);
super.breakBlock(worldIn, pos, state);
}
}

View file

@ -27,5 +27,4 @@ public interface IDimDoor {
* @return
*/
public boolean isDoorOnRift(World world, BlockPos pos);
}

View file

@ -7,34 +7,35 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
public class ModBlocks {
// Regular doors
public final static BlockDoorGold GOLD_DOOR = new BlockDoorGold();
public final static BlockDoorQuartz QUARTZ_DOOR = new BlockDoorQuartz();
public static final BlockDoorGold GOLD_DOOR = new BlockDoorGold();
public static final BlockDoorQuartz QUARTZ_DOOR = new BlockDoorQuartz();
// Dimensional doors
public final static BlockDimDoor DIMENSIONAL_DOOR = new BlockDimDoor();
public final static BlockDimDoorGold GOLD_DIMENSIONAL_DOOR = new BlockDimDoorGold();
public final static BlockDimDoorPersonal PERSONAL_DIMENSIONAL_DOOR = new BlockDimDoorPersonal();
public final static BlockDimDoorUnstable UNSTABLE_DIMENSIONAL_DOOR = new BlockDimDoorUnstable();
public final static BlockDimDoorTransient TRANSIENT_DIMENSIONAL_DOOR = new BlockDimDoorTransient();
public final static BlockDimDoorWarp WARP_DIMENSIONAL_DOOR = new BlockDimDoorWarp();
public final static BlockTransTrapdoor DIMENSIONAL_TRAPDOOR = new BlockTransTrapdoor();
public static final BlockDimDoor DIMENSIONAL_DOOR = new BlockDimDoor();
public static final BlockDimDoorGold GOLD_DIMENSIONAL_DOOR = new BlockDimDoorGold();
public static final BlockDimDoorPersonal PERSONAL_DIMENSIONAL_DOOR = new BlockDimDoorPersonal();
public static final BlockDimDoorUnstable UNSTABLE_DIMENSIONAL_DOOR = new BlockDimDoorUnstable();
public static final BlockDimDoorTransient TRANSIENT_DIMENSIONAL_DOOR = new BlockDimDoorTransient();
public static final BlockDimDoorWarp WARP_DIMENSIONAL_DOOR = new BlockDimDoorWarp();
public static final BlockTransTrapdoor DIMENSIONAL_TRAPDOOR = new BlockTransTrapdoor();
// Blocks
public final static BlockFabric FABRIC = new BlockFabric();
public final static BlockRift RIFT = new BlockRift();
public static final BlockFabric FABRIC = new BlockFabric();
public static final BlockRift RIFT = new BlockRift();
@SubscribeEvent
public static void registerBlocks(RegistryEvent.Register<Block> event) {
event.getRegistry().register(QUARTZ_DOOR);
event.getRegistry().register(PERSONAL_DIMENSIONAL_DOOR);
event.getRegistry().register(GOLD_DOOR);
event.getRegistry().register(GOLD_DIMENSIONAL_DOOR);
event.getRegistry().register(UNSTABLE_DIMENSIONAL_DOOR);
event.getRegistry().register(WARP_DIMENSIONAL_DOOR);
event.getRegistry().register(DIMENSIONAL_DOOR);
event.getRegistry().register(DIMENSIONAL_TRAPDOOR);
event.getRegistry().register(FABRIC);
event.getRegistry().register(TRANSIENT_DIMENSIONAL_DOOR);
event.getRegistry().register(RIFT);
event.getRegistry().registerAll(
GOLD_DOOR,
QUARTZ_DOOR,
DIMENSIONAL_DOOR,
GOLD_DIMENSIONAL_DOOR,
PERSONAL_DIMENSIONAL_DOOR,
UNSTABLE_DIMENSIONAL_DOOR,
TRANSIENT_DIMENSIONAL_DOOR,
WARP_DIMENSIONAL_DOOR,
DIMENSIONAL_TRAPDOOR,
FABRIC,
RIFT);
}
}

View file

@ -2,8 +2,7 @@ package com.zixiken.dimdoors.shared.commands;
import com.zixiken.dimdoors.DimDoors;
import com.zixiken.dimdoors.shared.*;
import com.zixiken.dimdoors.shared.tileentities.TileEntityDimDoor;
import com.zixiken.dimdoors.shared.util.DDStringUtils;
import com.zixiken.dimdoors.shared.util.StringUtils;
import com.zixiken.dimdoors.shared.util.Location;
import com.zixiken.dimdoors.shared.world.DimDoorDimensions;
import net.minecraft.command.CommandBase;
@ -24,7 +23,6 @@ public class PocketCommand extends CommandBase {
public PocketCommand() {
aliases = new ArrayList<>();
aliases.add("dimpocket");
}
@ -45,11 +43,10 @@ public class PocketCommand extends CommandBase {
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
if (sender instanceof EntityPlayerMP) {
EntityPlayerMP player = getCommandSenderAsPlayer(sender);
if (areArgumentsValid(args, player)) {
DimDoors.log(this.getClass(), "Executing command");
DimDoors.log(getClass(), "Executing command");
BlockPos pos = player.getPosition();
World world = player.world;
@ -69,23 +66,19 @@ public class PocketCommand extends CommandBase {
RiftRegistry.INSTANCE.setLastGeneratedEntranceDoorID(entranceDoorID);
}
} else {
DimDoors.log(this.getClass(), "Not executing command, because it wasn't sent by a player.");
DimDoors.log("Not executing command /" + getName() + " because it wasn't sent by a player.");
}
}
@Override
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos pos) {
List<String> list = new ArrayList();
if (args == null || args.length < 2) { //counts an empty ("") argument as an argument as well...
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos targetPos) {
List<String> list = new ArrayList<>();
if (args.length < 2) { //counts an empty ("") argument as an argument as well...
list = SchematicHandler.INSTANCE.getDungeonTemplateGroups();
list = DDStringUtils.getMatchingStrings(args[0], list, false);
list = StringUtils.getMatchingStrings(args[0], list, false);
} else if (args.length == 2) {
list = SchematicHandler.INSTANCE.getDungeonTemplateNames(args[0]);
list = DDStringUtils.getMatchingStrings(args[1], list, false);
} else if (args.length == 3) {
list.add("Remove_this");
} else {
list.add("No_seriously");
list = StringUtils.getMatchingStrings(args[1], list, false);
}
return list;
}

View file

@ -1,7 +1,8 @@
package com.zixiken.dimdoors.shared.commands;
import com.zixiken.dimdoors.DimDoors;
import com.zixiken.dimdoors.shared.TeleporterDimDoors;
import com.zixiken.dimdoors.shared.util.DDStringUtils;
import com.zixiken.dimdoors.shared.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
@ -11,6 +12,7 @@ import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString;
import net.minecraftforge.common.DimensionManager;
public class TeleportCommand extends CommandBase {
@ -19,7 +21,6 @@ public class TeleportCommand extends CommandBase {
public TeleportCommand() {
aliases = new ArrayList<>();
aliases.add("dimteleport");
}
@ -40,19 +41,27 @@ public class TeleportCommand extends CommandBase {
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
int id = Integer.parseInt(args[0]);
int id;
try {
id = Integer.parseInt(args[0]);
} catch (ArrayIndexOutOfBoundsException|NumberFormatException e) {
sender.sendMessage(new TextComponentString("[DimDoors] Incorrect usage."));
return;
}
if (sender instanceof EntityPlayerMP) {
server.getPlayerList().transferPlayerToDimension((EntityPlayerMP) sender, id, TeleporterDimDoors.instance());
} else {
DimDoors.log("Not executing command /" + getName() + " because it wasn't sent by a player.");
}
}
@Override
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos pos) {
List<String> list = new ArrayList();
if (args == null || args.length < 2) { //counts an empty ("") argument as an argument as well...
list = DDStringUtils.getAsStringList(DimensionManager.getIDs());
list = DDStringUtils.getMatchingStrings(args[0], list, false);
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos targetPos) {
List<String> list = new ArrayList<>();
if (args.length < 2) { //counts an empty ("") argument as an argument as well...
list = StringUtils.getAsStringList(DimensionManager.getIDs());
list = StringUtils.getMatchingStrings(args[0], list, false);
}
return list;
}

View file

@ -1,11 +1,9 @@
package com.zixiken.dimdoors.shared.entities;
import com.zixiken.dimdoors.DimDoors;
import com.zixiken.dimdoors.server.sound.DDSounds;
import com.zixiken.dimdoors.shared.DDConfig;
import com.zixiken.dimdoors.shared.TeleporterDimDoors;
import com.zixiken.dimdoors.shared.util.Location;
import com.zixiken.dimdoors.shared.world.PocketProvider;
import com.zixiken.dimdoors.shared.world.limbodimension.WorldProviderLimbo;
import com.zixiken.dimdoors.shared.world.pocketdimension.WorldProviderDungeonPocket;
import com.zixiken.dimdoors.shared.world.pocketdimension.WorldProviderPublicPocket;
@ -16,12 +14,10 @@ import net.minecraft.entity.monster.IMob;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
@ -31,15 +27,15 @@ import java.util.List;
import static net.minecraft.network.datasync.DataSerializers.*;
public class MobMonolith extends EntityFlying implements IMob
{
public class MobMonolith extends EntityFlying implements IMob {
private static final int MAX_AGGRO = 250;
private static final int MAX_AGGRO_CAP = 100;
private static final int MIN_AGGRO_CAP = 25;
private static final int MAX_TEXTURE_STATE = 18;
private static final int MAX_SOUND_COOLDOWN = 200;
private static final int MAX_AGGRO_RANGE = 35;
private static final DataParameter<Integer> AGGRO = EntityDataManager.<Integer>createKey(MobMonolith.class, VARINT);
private static final DataParameter<Integer> AGGRO = EntityDataManager.createKey(MobMonolith.class, VARINT);
private static final float WIDTH = 3f;
private static final float HEIGHT = 3f;
@ -53,9 +49,9 @@ public class MobMonolith extends EntityFlying implements IMob
public MobMonolith(World world)
{
super(world);
this.setSize(WIDTH, HEIGHT);
this.noClip = true;
this.aggroCap = MathHelper.getInt(this.rand, MIN_AGGRO_CAP, MAX_AGGRO_CAP);
setSize(WIDTH, HEIGHT);
noClip = true;
aggroCap = MathHelper.getInt(rand, MIN_AGGRO_CAP, MAX_AGGRO_CAP);
}
public boolean isDangerous() {
@ -63,12 +59,12 @@ public class MobMonolith extends EntityFlying implements IMob
}
@Override
protected void damageEntity(DamageSource par1DamageSource, float par2) {}
protected void damageEntity(DamageSource damageSrc, float damageAmount) {}
@Override
public boolean attackEntityFrom(DamageSource damageSource, float par2) {
if (damageSource != DamageSource.IN_WALL) {
this.aggro = MAX_AGGRO;
public boolean attackEntityFrom(DamageSource source, float amount) {
if (source != DamageSource.IN_WALL) {
aggro = MAX_AGGRO;
}
return false;
}
@ -84,7 +80,7 @@ public class MobMonolith extends EntityFlying implements IMob
}
@Override
public AxisAlignedBB getCollisionBox(Entity par1Entity) {
public AxisAlignedBB getCollisionBox(Entity entityIn) {
return null;
}
@ -96,7 +92,7 @@ public class MobMonolith extends EntityFlying implements IMob
@Override
protected void applyEntityAttributes() {
super.applyEntityAttributes();
this.getAttributeMap().getAttributeInstance(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(57005);
getAttributeMap().getAttributeInstance(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(57005);
}
@Override
@ -113,7 +109,7 @@ public class MobMonolith extends EntityFlying implements IMob
protected void entityInit() {
super.entityInit();
// Add a short for the aggro level
this.dataManager.register(AGGRO, 0);
dataManager.register(AGGRO, 0);
}
@Override
@ -125,8 +121,8 @@ public class MobMonolith extends EntityFlying implements IMob
@Override
public void onEntityUpdate() {
// Remove this Monolith if it's not in Limbo or in a pocket dungeon TODO: any pocket dim?
if (!(this.world.provider instanceof WorldProviderLimbo || this.world.provider instanceof WorldProviderDungeonPocket)) {
this.setDead();
if (!(world.provider instanceof WorldProviderLimbo || world.provider instanceof WorldProviderDungeonPocket)) {
setDead();
super.onEntityUpdate();
return;
}
@ -134,15 +130,15 @@ public class MobMonolith extends EntityFlying implements IMob
super.onEntityUpdate();
// Check for players and update aggro levels even if there are no players in range
EntityPlayer player = this.world.getClosestPlayerToEntity(this, MAX_AGGRO_RANGE);
boolean visibility = (player != null) && player.canEntityBeSeen(this);
this.updateAggroLevel(player, visibility);
EntityPlayer player = world.getClosestPlayerToEntity(this, MAX_AGGRO_RANGE);
boolean visibility = player != null && player.canEntityBeSeen(this);
updateAggroLevel(player, visibility);
// Change orientation and face a player if one is in range
if (player != null)
{
this.facePlayer(player);
if (!this.world.isRemote && isDangerous())
facePlayer(player);
if (!world.isRemote && isDangerous())
{
// Play sounds on the server side, if the player isn't in Limbo.
// Limbo is excluded to avoid drowning out its background music.
@ -156,12 +152,12 @@ public class MobMonolith extends EntityFlying implements IMob
{
// Only spawn particles on the client side and outside Limbo
if (world.isRemote && isDangerous()) {
this.spawnParticles(player);
spawnParticles(player);
}
// Teleport the target player if various conditions are met
if (aggro >= MAX_AGGRO && !world.isRemote && DDConfig.isMonolithTeleportationEnabled() && !player.capabilities.isCreativeMode && isDangerous()) {
this.aggro = 0;
aggro = 0;
Location destination = WorldProviderLimbo.getLimboSkySpawn(player);
TeleporterDimDoors.instance().teleport(player, destination);
player.world.playSound(player, player.getPosition(), DDSounds.CRACK, SoundCategory.HOSTILE, 13, 1);
@ -173,15 +169,16 @@ public class MobMonolith extends EntityFlying implements IMob
private void updateAggroLevel(EntityPlayer player, boolean visibility) {
// If we're working on the server side, adjust aggro level
// If we're working on the client side, retrieve aggro level from dataWatcher
if (!this.world.isRemote) {
if (!world.isRemote) {
// Server side...
// Rapidly increase the aggro level if this Monolith can see the player
if (visibility) {
if (world.provider instanceof WorldProviderLimbo) {
if (isDangerous())
if (isDangerous()) {
aggro++;
else
} else {
aggro += 36;
}
} else {
// Aggro increases faster outside of Limbo
aggro += 3;
@ -191,25 +188,25 @@ public class MobMonolith extends EntityFlying implements IMob
if (aggro > aggroCap) {
// Decrease aggro over time
aggro--;
} else if (player != null && (aggro < aggroCap)) {
} else if (player != null && aggro < aggroCap) {
// Increase aggro if a player is within range and aggro < aggroCap
aggro++;
}
} else
} else {
aggro -= 3;
}
}
// Clamp the aggro level
int maxAggro = isDangerous()?MAX_AGGRO:180;
aggro = (short) MathHelper.clamp(aggro, 0, maxAggro);
this.dataManager.set(AGGRO, aggro);
dataManager.set(AGGRO, aggro);
} else {
// Client side...
aggro = this.dataManager.get(AGGRO);
aggro = dataManager.get(AGGRO);
}
}
public int getTextureState()
{
public int getTextureState() {
// Determine texture state from aggro progress
return MathHelper.clamp(MAX_TEXTURE_STATE * aggro / MAX_AGGRO, 0, MAX_TEXTURE_STATE);
}
@ -220,22 +217,22 @@ public class MobMonolith extends EntityFlying implements IMob
*/
private void playSounds(EntityPlayer entityPlayer)
{
float aggroPercent = this.getAggroProgress();
if (this.soundTime <= 0)
float aggroPercent = getAggroProgress();
if (soundTime <= 0)
{
playSound(DDSounds.MONK, 1F, 1F);
this.soundTime = 100;
soundTime = 100;
}
if ((aggroPercent > 0.70) && this.soundTime < 100)
if (aggroPercent > 0.70 && soundTime < 100)
{
world.playSound(entityPlayer, entityPlayer.getPosition(), DDSounds.TEARING, SoundCategory.HOSTILE, 1F, (float) (1 + this.rand.nextGaussian()));
this.soundTime = 100 + this.rand.nextInt(75);
world.playSound(entityPlayer, entityPlayer.getPosition(), DDSounds.TEARING, SoundCategory.HOSTILE, 1F, (float) (1 + rand.nextGaussian()));
soundTime = 100 + rand.nextInt(75);
}
if ((aggroPercent > 0.80) && this.soundTime < MAX_SOUND_COOLDOWN) {
if (aggroPercent > 0.80 && soundTime < MAX_SOUND_COOLDOWN) {
world.playSound(entityPlayer, entityPlayer.getPosition(), DDSounds.TEARING, SoundCategory.HOSTILE, 7, 1F);
this.soundTime = 250;
soundTime = 250;
}
this.soundTime--;
soundTime--;
}
private void spawnParticles(EntityPlayer player)
@ -243,60 +240,56 @@ public class MobMonolith extends EntityFlying implements IMob
int count = 10 * aggro / MAX_AGGRO;
for (int i = 1; i < count; ++i)
{
player.world.spawnParticle(EnumParticleTypes.PORTAL, player.posX + (this.rand.nextDouble() - 0.5D) * this.width,
player.posY + this.rand.nextDouble() * player.height - 0.75D,
player.posZ + (this.rand.nextDouble() - 0.5D) * player.width,
(this.rand.nextDouble() - 0.5D) * 2.0D, -this.rand.nextDouble(),
(this.rand.nextDouble() - 0.5D) * 2.0D);
player.world.spawnParticle(EnumParticleTypes.PORTAL, player.posX + (rand.nextDouble() - 0.5D) * width,
player.posY + rand.nextDouble() * player.height - 0.75D,
player.posZ + (rand.nextDouble() - 0.5D) * player.width,
(rand.nextDouble() - 0.5D) * 2.0D, -rand.nextDouble(),
(rand.nextDouble() - 0.5D) * 2.0D);
}
}
public float getAggroProgress()
{
return ((float) aggro) / MAX_AGGRO;
return (float) aggro / MAX_AGGRO;
}
private void facePlayer(EntityPlayer player)
{
double d0 = player.posX - this.posX;
double d1 = player.posZ - this.posZ;
double d2 = (player.posY + player.getEyeHeight()) - (this.posY + this.getEyeHeight());
double d0 = player.posX - posX;
double d1 = player.posZ - posZ;
double d2 = player.posY + player.getEyeHeight() - (posY + getEyeHeight());
double d3 = MathHelper.sqrt(d0 * d0 + d1 * d1);
float f2 = (float)(Math.atan2(d1, d0) * 180.0D / Math.PI) - 90.0F;
this.pitchLevel = (float) -((Math.atan(d2/d3) )* 180.0D / Math.PI);
this.rotationYaw = f2;
this.rotationYawHead = f2;
this.renderYawOffset = this.rotationYaw;
pitchLevel = (float) -(Math.atan(d2/d3) * 180.0D / Math.PI);
rotationYaw = f2;
rotationYawHead = f2;
renderYawOffset = rotationYaw;
}
@Override
public void writeEntityToNBT(NBTTagCompound rootTag)
{
super.writeEntityToNBT(rootTag);
rootTag.setInteger("Aggro", this.aggro);
public void writeEntityToNBT(NBTTagCompound nbt) {
super.writeEntityToNBT(nbt);
nbt.setInteger("Aggro", aggro);
}
@Override
public void readEntityFromNBT(NBTTagCompound rootTag)
public void readEntityFromNBT(NBTTagCompound nbt)
{
super.readEntityFromNBT(rootTag);
super.readEntityFromNBT(nbt);
// Load Monoliths with half aggro so they don't teleport players instantly
aggro = rootTag.getInteger("Aggro") / 2;
aggro = nbt.getInteger("Aggro") / 2;
}
@Override
public boolean getCanSpawnHere() {
List list = world.getEntitiesWithinAABBExcludingEntity(this, new AxisAlignedBB( this.posX-15, posY-4, this.posZ-15, this.posX+15, this.posY+15, this.posZ+15));
List<Entity> list = world.getEntitiesWithinAABBExcludingEntity(this, new AxisAlignedBB(posX -15, posY-4, posZ -15, posX +15, posY +15, posZ +15));
if (world.provider instanceof WorldProviderLimbo) {
if(list.size() > 0) {
return false;
}
}
else if(world.provider instanceof WorldProviderPublicPocket)
{
} else if(world.provider instanceof WorldProviderPublicPocket) {
if (list.size() > 5 || world.canBlockSeeSky(new BlockPos(posX, posY, posZ))) {
return false;
}
@ -304,4 +297,4 @@ public class MobMonolith extends EntityFlying implements IMob
return world.checkNoEntityCollision(getCollisionBoundingBox()) && world.getCollisionBoxes(this, getEntityBoundingBox()).isEmpty() && !world.containsAnyLiquid(getCollisionBoundingBox());
}
}
}

View file

@ -1,6 +1,5 @@
package com.zixiken.dimdoors.shared.entities;
import java.util.Random;
import net.minecraftforge.fml.relauncher.Side;
@ -13,22 +12,24 @@ import net.minecraft.entity.Entity;
@SideOnly(Side.CLIENT)
public class ModelMobObelisk extends ModelBase {
ModelRenderer wholemonolith;
ModelRenderer wholeMonolith;
Random rand = new Random();
public ModelMobObelisk() {
textureWidth = 256;
textureHeight = 256;
wholemonolith = new ModelRenderer(this, 0, 0);
wholemonolith.addBox(-24F,-108F/1.3F, -6F, 48, 108, 12);
wholeMonolith = new ModelRenderer(this, 0, 0);
wholeMonolith.addBox(-24F,-108F/1.3F, -6F, 48, 108, 12);
}
@Override
public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) {
this.setRotationAngles(0, 0, 0, 0, 0,0, entity);
public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) {
MobMonolith monolith = (MobMonolith) entityIn;
GL11.glScalef(((MobMonolith) entity).getRenderSizeModifier(), ((MobMonolith) entity).getRenderSizeModifier(), ((MobMonolith) entity).getRenderSizeModifier());
wholemonolith.render(scale);
setRotationAngles(0, 0, 0, 0, 0,0, monolith);
GL11.glScalef(monolith.getRenderSizeModifier(), monolith.getRenderSizeModifier(), monolith.getRenderSizeModifier());
wholeMonolith.render(scale);
}
}
}

View file

@ -5,8 +5,6 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.common.MinecraftForge;
@ -20,6 +18,7 @@ import java.util.List;
@SideOnly(Side.CLIENT)
public class RenderMobObelisk extends RenderLiving<MobMonolith> {
protected ModelMobObelisk obeliskModel;
protected static final List<ResourceLocation> monolith_textures = Arrays.asList(
@ -45,11 +44,11 @@ public class RenderMobObelisk extends RenderLiving<MobMonolith> {
public RenderMobObelisk(RenderManager manager, float f) {
super(manager, new ModelMobObelisk(), f);
this.obeliskModel = (ModelMobObelisk)this.mainModel;
obeliskModel = (ModelMobObelisk) mainModel;
}
@Override
public void doRender(MobMonolith monolith, double x, double y, double z, float par8, float par9) {
public void doRender(MobMonolith monolith, double x, double y, double z, float entityYaw, float partialTicks) {
final float minScaling = 0;
final float maxScaling = 0.1f;
@ -68,13 +67,13 @@ public class RenderMobObelisk extends RenderLiving<MobMonolith> {
double zJitter = aggroScaling * Math.sin(1.3f * time) * Math.sin(0.7f * time);
// Render with jitter
this.render(monolith, x + xJitter, y + yJitter, z + zJitter, par8, par9);
render(monolith, x + xJitter, y + yJitter, z + zJitter, entityYaw, partialTicks);
//this.renderLeash(entity, x, y, z, par8, par9);
}
public void render(MobMonolith par1EntityLivingBase, double x, double y, double z, float par8, float par9)
{
if (MinecraftForge.EVENT_BUS.post(new RenderLivingEvent.Pre(par1EntityLivingBase, this, x, y, z))) return;
if (MinecraftForge.EVENT_BUS.post(new RenderLivingEvent.Pre<>(par1EntityLivingBase, this, 1, x, y, z))) return;
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_LIGHTING);
@ -89,15 +88,15 @@ public class RenderMobObelisk extends RenderLiving<MobMonolith> {
float pitch = par1EntityLivingBase.prevRotationPitch + (par1EntityLivingBase.rotationPitch - par1EntityLivingBase.prevRotationPitch) * par9;
renderLivingAt(par1EntityLivingBase, x, y, z);
rotation = this.handleRotationFloat(par1EntityLivingBase, par9);
this.applyRotations(par1EntityLivingBase, rotation, interpolatedYaw, par9);
rotation = handleRotationFloat(par1EntityLivingBase, par9);
applyRotations(par1EntityLivingBase, rotation, interpolatedYaw, par9);
float f6 = 0.0625F;
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glScalef(-1.0F, -1.0F, 1.0F);
this.preRenderCallback(par1EntityLivingBase, par9);
GL11.glRotatef(((MobMonolith)par1EntityLivingBase).pitchLevel , 1.0F, 0.0F, 0.0F);
preRenderCallback(par1EntityLivingBase, par9);
GL11.glRotatef(par1EntityLivingBase.pitchLevel , 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(0.0F, 24.0F * f6 - 0.0078125F, 0.0F);
@ -108,8 +107,8 @@ public class RenderMobObelisk extends RenderLiving<MobMonolith> {
OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit);
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
} catch (Exception exception) {
exception.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit);
@ -119,11 +118,11 @@ public class RenderMobObelisk extends RenderLiving<MobMonolith> {
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_BLEND);
GL11.glPopMatrix();
MinecraftForge.EVENT_BUS.post(new RenderLivingEvent.Post(par1EntityLivingBase, this, x, y, z));
MinecraftForge.EVENT_BUS.post(new RenderLivingEvent.Post<>(par1EntityLivingBase, this, 1, x, y, z));
}
@Override
protected ResourceLocation getEntityTexture(MobMonolith monolith) {
return monolith_textures.get(monolith.getTextureState()); //return new ResourceLocation(DimDoors.MODID + ":textures/mobs/monolith/monolith" + monolith.getTextureState() + ".png");
}
}
}

View file

@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack;
public class ItemBlockFabric extends ItemBlock {
private final static String[] subNames = {"_reality", "_ancient", "_altered", "_unraveled", "_eternal"};
private static final String[] subNames = {"_reality", "_ancient", "_altered", "_unraveled", "_eternal"};
public ItemBlockFabric() {
super(ModBlocks.FABRIC);
@ -19,12 +19,12 @@ public class ItemBlockFabric extends ItemBlock {
}
@Override
public int getMetadata(int damageValue) {
return damageValue;
public int getMetadata(int damage) {
return damage;
}
@Override
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName() + subNames[this.getDamage(stack)];
return super.getUnlocalizedName() + subNames[getDamage(stack)];
}
}

View file

@ -24,7 +24,7 @@ public class ItemDimDoor extends ItemDoorBase {
}
@Override
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag advanced) {
public void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
translateAndAdd("info.dimensional_door", tooltip);
}

View file

@ -22,7 +22,7 @@ public class ItemDimDoorGold extends ItemDoorBase {
}
@Override
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag advanced) {
public void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
translateAndAdd("info.gold_dimensional_door", tooltip);
}

View file

@ -22,7 +22,7 @@ public class ItemDimDoorPersonal extends ItemDoorBase {
}
@Override
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag advanced) {
public void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
translateAndAdd("info.quartz_dimensional_door", tooltip);
}

View file

@ -22,7 +22,7 @@ public class ItemDimDoorUnstable extends ItemDoorBase {
}
@Override
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag advanced) {
public void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
translateAndAdd("info.unstable_dimensional_door", tooltip);
}

View file

@ -24,7 +24,7 @@ public class ItemDimDoorWarp extends ItemDoorBase {
}
@Override
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag advanced) {
public void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
translateAndAdd("info.warp_dimensional_door", tooltip);
}

View file

@ -18,14 +18,13 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.world.World;
import net.minecraft.block.SoundType;
import static net.minecraft.item.ItemDoor.placeDoor;
import net.minecraft.tileentity.TileEntity;
public abstract class ItemDoorBase extends ItemDoor {
// Maps non-dimensional door items to their corresponding dimensional door item
// Also maps dimensional door items to themselves for simplicity
private static HashMap<ItemDoor, ItemDoorBase> doorItemMapping = new HashMap<ItemDoor, ItemDoorBase>();
private static HashMap<ItemDoor, ItemDoorBase> doorItemMapping = new HashMap<>();
/**
* door represents the non-dimensional door this item is associated with.
@ -35,8 +34,8 @@ public abstract class ItemDoorBase extends ItemDoor {
*/
public ItemDoorBase(Block block, ItemDoor vanillaDoor) {
super(block);
this.setMaxStackSize(64);
this.setCreativeTab(DimDoors.dimDoorsCreativeTab);
setMaxStackSize(64);
setCreativeTab(DimDoors.dimDoorsCreativeTab);
doorItemMapping.put(this, this); //@todo Why?
if (vanillaDoor != null) {
@ -45,7 +44,7 @@ public abstract class ItemDoorBase extends ItemDoor {
}
@Override
public abstract void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag advanced);
public abstract void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn);
/**
* Overridden in subclasses to specify which door block that door item will
@ -57,16 +56,16 @@ public abstract class ItemDoorBase extends ItemDoor {
//onItemUse gets fired before onItemRightClick and if it returns "success", onItemRightClick gets skipped.
@Override
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
ItemStack stack = player.getHeldItem(hand);
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) {
ItemStack stack = playerIn.getHeldItem(handIn);
if (world.isRemote) {
if (worldIn.isRemote) {
return new ActionResult<>(EnumActionResult.FAIL, stack);
}
RayTraceResult hit = rayTrace(world, player, true);
if (RayTraceHelper.isRift(hit, world)) {
RayTraceResult hit = rayTrace(worldIn, playerIn, true);
if (RayTraceHelper.isRift(hit, worldIn)) {
EnumActionResult canDoorBePlacedOnGroundBelowRift
= tryPlaceDoorOnTopOfBlock(stack, player, world, hit.getBlockPos().down(2), hand,
= tryPlaceDoorOnTopOfBlock(stack, playerIn, worldIn, hit.getBlockPos().down(2), handIn,
(float) hit.hitVec.x, (float) hit.hitVec.y, (float) hit.hitVec.z); //stack may be changed by this method
return new ActionResult<>(canDoorBePlacedOnGroundBelowRift, stack);
}
@ -76,21 +75,21 @@ public abstract class ItemDoorBase extends ItemDoor {
}
@Override
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
if (world.isRemote) {
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
if (worldIn.isRemote) {
return EnumActionResult.SUCCESS;
}
Block block = world.getBlockState(pos).getBlock();
if (!block.isReplaceable(world, pos)) {
if (side != EnumFacing.UP) {
Block block = worldIn.getBlockState(pos).getBlock();
if (!block.isReplaceable(worldIn, pos)) {
if (facing != EnumFacing.UP) {
return EnumActionResult.FAIL;
}
} else {
pos = pos.offset(EnumFacing.DOWN); //the bottom part of the door can replace this block, so we will try to place it on the block under it
}
return tryPlaceDoorOnTopOfBlock(player.getHeldItem(hand), player, world, pos, hand, hitX, hitY, hitZ);
return tryPlaceDoorOnTopOfBlock(player.getHeldItem(hand), player, worldIn, pos, hand, hitX, hitY, hitZ);
}
//pos = position of block, the door gets placed on
@ -100,7 +99,7 @@ public abstract class ItemDoorBase extends ItemDoor {
// return null, just as if the item was an unrecognized door type.
ItemDoorBase mappedItem = doorItemMapping.get(stack.getItem());
if (mappedItem == null) {
DimDoors.warn(ItemDoorBase.class, "Item " + stack.getItem().toString() + " does not seem to have a valid mapped ItemDoor.");
DimDoors.warn(ItemDoorBase.class, "Item " + stack.getItem() + " does not seem to have a valid mapped ItemDoor.");
return EnumActionResult.FAIL;
}
@ -115,7 +114,7 @@ public abstract class ItemDoorBase extends ItemDoor {
boolean flag = i < 0 && hitZ < 0.5F || i > 0 && hitZ > 0.5F || j < 0 && hitX > 0.5F || j > 0 && hitX < 0.5F; //Vanilla Minecraft code not consistently using EnumFacing
//fetch "the" tile entity at the top block of where the door is going to be placed
TileEntity possibleOldRift = world.getTileEntity(pos.up());
if (possibleOldRift != null && possibleOldRift instanceof TileEntityRift) {
if (possibleOldRift instanceof TileEntityRift) {
TileEntityRift oldRift = (TileEntityRift) possibleOldRift;
oldRift.placingDoorOnRift = true;
}

View file

@ -36,7 +36,7 @@ public class ItemRiftBlade extends ItemSword {
@Override
@SideOnly(Side.CLIENT)
public boolean hasEffect(ItemStack par1ItemStack) {
public boolean hasEffect(ItemStack stack) {
return true;
}
@ -49,26 +49,26 @@ public class ItemRiftBlade extends ItemSword {
}
@Override
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
ItemStack stack = player.getHeldItem(hand);
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) {
ItemStack stack = playerIn.getHeldItem(handIn);
if (world.isRemote) {
if (worldIn.isRemote) {
return new ActionResult<>(EnumActionResult.FAIL, stack);
}
//SchematicHandler.Instance.getPersonalPocketTemplate().place(0, 20, 0, 20, 0, 0, 1, EnumPocketType.DUNGEON); //this line can be activated for testing purposes
RayTraceResult hit = rayTrace(world, player, true);
if (RayTraceHelper.isRift(hit, world)) {
TileEntityRift rift = (TileEntityRift) world.getTileEntity(hit.getBlockPos());
RayTraceResult hit = rayTrace(worldIn, playerIn, true);
if (RayTraceHelper.isRift(hit, worldIn)) {
TileEntityRift rift = (TileEntityRift) worldIn.getTileEntity(hit.getBlockPos());
rift.isTeleporting = true;
rift.teleportingEntity = player;
rift.teleportingEntity = playerIn;
stack.damageItem(1, player);
stack.damageItem(1, playerIn);
return new ActionResult<>(EnumActionResult.SUCCESS, stack);
} else if (RayTraceHelper.isLivingEntity(hit)) {
EnumActionResult teleportResult = TeleporterDimDoors.instance().teleport(player, new Location(world, hit.getBlockPos())) ? EnumActionResult.SUCCESS : EnumActionResult.FAIL; //@todo teleport to a location 1 or 2 blocks distance from the entity
EnumActionResult teleportResult = TeleporterDimDoors.instance().teleport(playerIn, new Location(worldIn, hit.getBlockPos())) ? EnumActionResult.SUCCESS : EnumActionResult.FAIL; //@todo teleport to a location 1 or 2 blocks distance from the entity
if (teleportResult == EnumActionResult.SUCCESS) {
stack.damageItem(1, player);
stack.damageItem(1, playerIn);
}
return new ActionResult<>(teleportResult, stack);
}
@ -77,7 +77,7 @@ public class ItemRiftBlade extends ItemSword {
}
@Override
public void addInformation(ItemStack stack, World world, List<String> list, ITooltipFlag advanced) {
DimDoors.translateAndAdd("info.rift_blade", list);
public void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
DimDoors.translateAndAdd("info.rift_blade", tooltip);
}
}

View file

@ -30,19 +30,19 @@ public class ItemRiftConnectionTool extends ItemTool {
public static final String ID = "rift_connection_tool";
ItemRiftConnectionTool() {
super(1.0F, -2.8F, ToolMaterial.WOOD, new HashSet());
super(1.0F, -2.8F, ToolMaterial.WOOD, new HashSet<>());
//@todo add extra stuff?
this.setMaxDamage(16);
setMaxDamage(16);
setCreativeTab(DimDoors.dimDoorsCreativeTab);
setUnlocalizedName(ID);
setRegistryName(new ResourceLocation(DimDoors.MODID, ID));
}
@Override
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
ItemStack stack = player.getHeldItem(hand);
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) {
ItemStack stack = playerIn.getHeldItem(handIn);
if (world.isRemote) {
if (worldIn.isRemote) {
return new ActionResult<>(EnumActionResult.FAIL, stack);
}
if (!stack.hasTagCompound()) {
@ -51,14 +51,14 @@ public class ItemRiftConnectionTool extends ItemTool {
stack.setTagCompound(compound);
}
RayTraceResult hit = rayTrace(world, player, true);
if (RayTraceHelper.isAbstractRift(hit, world)) {
DDTileEntityBase rift = (DDTileEntityBase) world.getTileEntity(hit.getBlockPos());
if (player.isSneaking()) {
return selectRift(stack, world, rift, player); //new ActionResult(EnumActionResult.PASS, stack));
RayTraceResult hit = rayTrace(worldIn, playerIn, true);
if (RayTraceHelper.isAbstractRift(hit, worldIn)) {
DDTileEntityBase rift = (DDTileEntityBase) worldIn.getTileEntity(hit.getBlockPos());
if (playerIn.isSneaking()) {
return selectRift(stack, worldIn, rift, playerIn); //new ActionResult(EnumActionResult.PASS, stack));
}
} else {
return changeMode(stack, player);
return changeMode(stack, playerIn);
}
return new ActionResult<>(EnumActionResult.FAIL, stack);
@ -88,7 +88,7 @@ public class ItemRiftConnectionTool extends ItemTool {
}
stack.damageItem(1, playerIn);
}
return new ActionResult(EnumActionResult.SUCCESS, stack);
return new ActionResult<>(EnumActionResult.SUCCESS, stack);
}
private ActionResult<ItemStack> changeMode(ItemStack stack, EntityPlayer player) {

View file

@ -2,7 +2,6 @@ package com.zixiken.dimdoors.shared.items;
import com.zixiken.dimdoors.DimDoors;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
@ -16,14 +15,13 @@ public class ItemRiftSignature extends Item {
public static final String ID = "rift_signature";
public ItemRiftSignature() {
super();
setCreativeTab(DimDoors.dimDoorsCreativeTab);
setUnlocalizedName(ID);
setRegistryName(new ResourceLocation(DimDoors.MODID, ID));
}
@Override
public void addInformation(ItemStack stack, World world, List<String> list, ITooltipFlag advanced) {
translateAndAdd("info.rift_signature.unbound", list);
public void addInformation(ItemStack stack, World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
translateAndAdd("info.rift_signature.unbound", tooltip);
}
}

View file

@ -9,7 +9,6 @@ public class ItemStableFabric extends Item {
public static final String ID = "stable_fabric";
public ItemStableFabric() {
super();
setCreativeTab(DimDoors.dimDoorsCreativeTab);
setUnlocalizedName(ID);
setRegistryName(new ResourceLocation(DimDoors.MODID, ID));

View file

@ -9,7 +9,6 @@ public class ItemWorldThread extends Item {
public static final String ID = "world_thread";
public ItemWorldThread() {
super();
setCreativeTab(DimDoors.dimDoorsCreativeTab);
setUnlocalizedName(ID);
setRegistryName(new ResourceLocation(DimDoors.MODID, ID));

View file

@ -9,44 +9,43 @@ import com.zixiken.dimdoors.shared.blocks.ModBlocks;
public class ModItems {
// Regular doors
public final static ItemDoorGold GOLD_DOOR = new ItemDoorGold();
public final static ItemDoorQuartz QUARTZ_DOOR = new ItemDoorQuartz();
public static final ItemDoorGold GOLD_DOOR = new ItemDoorGold();
public static final ItemDoorQuartz QUARTZ_DOOR = new ItemDoorQuartz();
// Dimensional doors
public final static ItemDimDoor DIMENSIONAL_DOOR = new ItemDimDoor();
public final static ItemDimDoorGold GOLD_DIMENSIONAL_DOOR = new ItemDimDoorGold();
public final static ItemDimDoorPersonal PERSONAL_DIMENSIONAL_DOOR = new ItemDimDoorPersonal();
public final static ItemDimDoorUnstable UNSTABLE_DIMENSIONAL_DOOR = new ItemDimDoorUnstable();
public final static ItemDimDoorWarp WARP_DIMENSIONAL_DOOR = new ItemDimDoorWarp();
public static final ItemDimDoor DIMENSIONAL_DOOR = new ItemDimDoor();
public static final ItemDimDoorGold GOLD_DIMENSIONAL_DOOR = new ItemDimDoorGold();
public static final ItemDimDoorPersonal PERSONAL_DIMENSIONAL_DOOR = new ItemDimDoorPersonal();
public static final ItemDimDoorUnstable UNSTABLE_DIMENSIONAL_DOOR = new ItemDimDoorUnstable();
public static final ItemDimDoorWarp WARP_DIMENSIONAL_DOOR = new ItemDimDoorWarp();
// Fabric
public final static ItemWorldThread WORLD_THREAD = new ItemWorldThread();
public final static ItemBlockFabric FABRIC = new ItemBlockFabric();
public final static ItemStableFabric STABLE_FABRIC = new ItemStableFabric();
public static final ItemWorldThread WORLD_THREAD = new ItemWorldThread();
public static final ItemStableFabric STABLE_FABRIC = new ItemStableFabric();
// Tools
public final static ItemRiftConnectionTool RIFT_CONNECTION_TOOL = new ItemRiftConnectionTool();
public final static ItemRiftBlade RIFT_BLADE = new ItemRiftBlade();
public static final ItemRiftConnectionTool RIFT_CONNECTION_TOOL = new ItemRiftConnectionTool();
public static final ItemRiftBlade RIFT_BLADE = new ItemRiftBlade();
@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) {
event.getRegistry().register(QUARTZ_DOOR);
event.getRegistry().register(PERSONAL_DIMENSIONAL_DOOR);
event.getRegistry().register(GOLD_DOOR);
event.getRegistry().register(GOLD_DIMENSIONAL_DOOR);
event.getRegistry().register(DIMENSIONAL_DOOR);
event.getRegistry().register(WARP_DIMENSIONAL_DOOR);
event.getRegistry().register(STABLE_FABRIC);
event.getRegistry().register(UNSTABLE_DIMENSIONAL_DOOR);
event.getRegistry().register(WORLD_THREAD);
event.getRegistry().register(RIFT_CONNECTION_TOOL);
event.getRegistry().register(RIFT_BLADE);
event.getRegistry().registerAll(
QUARTZ_DOOR,
PERSONAL_DIMENSIONAL_DOOR,
GOLD_DOOR,
GOLD_DIMENSIONAL_DOOR,
DIMENSIONAL_DOOR,
WARP_DIMENSIONAL_DOOR,
STABLE_FABRIC,
UNSTABLE_DIMENSIONAL_DOOR,
WORLD_THREAD,
RIFT_CONNECTION_TOOL,
RIFT_BLADE);
// ItemBlocks
event.getRegistry().register(FABRIC);
event.getRegistry().register(new ItemBlock(ModBlocks.DIMENSIONAL_TRAPDOOR)
.setRegistryName(ModBlocks.DIMENSIONAL_TRAPDOOR.getRegistryName()));
event.getRegistry().register(new ItemBlock(ModBlocks.RIFT)
.setRegistryName(ModBlocks.RIFT.getRegistryName()));
event.getRegistry().registerAll(
new ItemBlockFabric(),
new ItemBlock(ModBlocks.DIMENSIONAL_TRAPDOOR).setRegistryName(ModBlocks.DIMENSIONAL_TRAPDOOR.getRegistryName()),
new ItemBlock(ModBlocks.RIFT).setRegistryName(ModBlocks.RIFT.getRegistryName()));
}
}

View file

@ -6,7 +6,6 @@ import com.zixiken.dimdoors.shared.Pocket;
import com.zixiken.dimdoors.shared.PocketRegistry;
import com.zixiken.dimdoors.shared.util.Location;
import com.zixiken.dimdoors.shared.RiftRegistry;
import com.zixiken.dimdoors.shared.blocks.IDimDoor;
import java.util.Random;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
@ -58,7 +57,7 @@ public abstract class DDTileEntityBase extends TileEntity implements ITickable {
pairedRiftID = otherRiftID;
isPaired = true;
RiftRegistry.INSTANCE.pair(pairedRiftID, riftID); //make sure it gets paired the other way around
this.markDirty();
markDirty();
return false;
}
@ -68,7 +67,7 @@ public abstract class DDTileEntityBase extends TileEntity implements ITickable {
} else {
isPaired = false;
RiftRegistry.INSTANCE.unpair(pairedRiftID);
this.markDirty();
markDirty();
}
return false;
}
@ -76,25 +75,25 @@ public abstract class DDTileEntityBase extends TileEntity implements ITickable {
public void register(int depth) {
//if (riftID == -1) { //this check only causes problems?
riftID = RiftRegistry.INSTANCE.registerNewRift(this, depth);
DimDoors.log(this.getClass(), "Finished registering rift as ID: " + riftID);
DimDoors.log(getClass(), "Finished registering rift as ID: " + riftID);
this.markDirty();
markDirty();
//}
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
public void readFromNBT(NBTTagCompound compound) {
super.readFromNBT(compound);
try {
isPaired = nbt.getBoolean("isPaired");
riftID = nbt.getInteger("riftID");
pairedRiftID = nbt.getInteger("pairedRiftID");
isInPocket = nbt.getBoolean("isInPocket");
pocketID = nbt.getInteger("pocketID");
if (nbt.hasKey("pocketType")) {
pocketType = EnumPocketType.valueOf(nbt.getString("pocketType"));
isPaired = compound.getBoolean("isPaired");
riftID = compound.getInteger("riftID");
pairedRiftID = compound.getInteger("pairedRiftID");
isInPocket = compound.getBoolean("isInPocket");
pocketID = compound.getInteger("pocketID");
if (compound.hasKey("pocketType")) {
pocketType = EnumPocketType.valueOf(compound.getString("pocketType"));
}
depth = nbt.getInteger("depth");
depth = compound.getInteger("depth");
} catch (Exception e) {
//reading these values should only fail on loading old saves, or loading old schematics, in which case the default values will do
}
@ -103,15 +102,15 @@ public abstract class DDTileEntityBase extends TileEntity implements ITickable {
@Override
public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setBoolean("isPaired", this.isPaired);
nbt.setInteger("riftID", this.riftID);
nbt.setInteger("pairedRiftID", this.pairedRiftID);
nbt.setBoolean("isInPocket", this.isInPocket);
nbt.setInteger("pocketID", this.pocketID);
nbt.setBoolean("isPaired", isPaired);
nbt.setInteger("riftID", riftID);
nbt.setInteger("pairedRiftID", pairedRiftID);
nbt.setBoolean("isInPocket", isInPocket);
nbt.setInteger("pocketID", pocketID);
if (pocketType != null) {
nbt.setString("pocketType", this.pocketType.name());
nbt.setString("pocketType", pocketType.name());
}
nbt.setInteger("depth", this.depth);
nbt.setInteger("depth", depth);
return nbt;
}
@ -126,7 +125,7 @@ public abstract class DDTileEntityBase extends TileEntity implements ITickable {
pocketType = rift2.pocketType;
depth = rift2.depth;
this.markDirty();
markDirty();
}
}
@ -147,26 +146,26 @@ public abstract class DDTileEntityBase extends TileEntity implements ITickable {
}
public Location getTeleportTargetLocation() {
return new Location(this.getWorld().provider.getDimension(), this.getPos());
return new Location(getWorld().provider.getDimension(), getPos());
}
public abstract boolean tryTeleport(Entity entity);
public void setPocket(int ID, EnumPocketType type) {
pocketID = ID;
public void setPocket(int id, EnumPocketType type) {
pocketID = id;
pocketType = type;
isInPocket = true;
this.markDirty();
markDirty();
}
public void setIsInPocket() {
isInPocket = true;
this.markDirty();
markDirty();
}
public void setDepth(int depth) {
this.depth = depth;
this.markDirty();
markDirty();
}
protected EnumPocketType getPocketType() {
@ -174,9 +173,7 @@ public abstract class DDTileEntityBase extends TileEntity implements ITickable {
}
public void validatePlayerPocketEntry(EntityPlayer player) {
if (!isInPocket || pocketType == EnumPocketType.PRIVATE) {
return;
} else {
if (isInPocket && pocketType != EnumPocketType.PRIVATE) {
Pocket pocket = PocketRegistry.INSTANCE.getPocket(pocketID, pocketType);
pocket.validatePlayerEntry(player);
}
@ -185,13 +182,11 @@ public abstract class DDTileEntityBase extends TileEntity implements ITickable {
@Override
public void update() {
if (isTeleporting && teleportingEntity != null) {
if (tryTeleport(teleportingEntity)) {
//player is succesfully teleported
} else {
//probably should only happen on personal dimdoors?
if (!tryTeleport(teleportingEntity)) {
if (teleportingEntity instanceof EntityPlayer) {
EntityPlayer entityPlayer = (EntityPlayer) teleportingEntity;
DimDoors.chat(entityPlayer, "Teleporting failed, but since mod is still in alpha, stuff like that might simply happen.");
// TODO: It's normal for teleportation to sometimes fail, for example for an unlinked warp door. Change this to an exception-based system to print error only when it really fails?
}
}
isTeleporting = false;

View file

@ -9,7 +9,7 @@ import com.zixiken.dimdoors.shared.blocks.BlockDimDoor;
import com.zixiken.dimdoors.shared.util.Location;
import com.zixiken.dimdoors.shared.RiftRegistry;
import com.zixiken.dimdoors.shared.TeleporterDimDoors;
import com.zixiken.dimdoors.shared.util.DDRandomUtils;
import com.zixiken.dimdoors.shared.util.RandomUtils;
import com.zixiken.dimdoors.shared.world.DimDoorDimensions;
import java.util.Random;
import javax.annotation.Nullable;
@ -29,11 +29,11 @@ public class TileEntityDimDoor extends DDTileEntityBase {
super.readFromNBT(nbt);
try {
this.doorIsOpen = nbt.getBoolean("doorIsOpen");
this.orientation = EnumFacing.getFront(nbt.getInteger("orientation"));
this.lockStatus = nbt.getByte("lockStatus");
doorIsOpen = nbt.getBoolean("doorIsOpen");
orientation = EnumFacing.getFront(nbt.getInteger("orientation"));
lockStatus = nbt.getByte("lockStatus");
} catch (Exception e) {
DimDoors.warn(this.getClass(), "An error occured while trying to read this object from NBT.");
DimDoors.warn(getClass(), "An error occured while trying to read this object from NBT.");
}
}
@ -41,8 +41,8 @@ public class TileEntityDimDoor extends DDTileEntityBase {
public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setBoolean("doorIsOpen", this.doorIsOpen);
nbt.setInteger("orientation", this.orientation.getIndex());
nbt.setBoolean("doorIsOpen", doorIsOpen);
nbt.setInteger("orientation", orientation.getIndex());
nbt.setByte("lockStatus", lockStatus);
return nbt;
}
@ -50,7 +50,7 @@ public class TileEntityDimDoor extends DDTileEntityBase {
@Override
public float[] getRenderColor(Random rand) {
float[] rgbaColor = {1, 1, 1, 1};
if (this.world.provider.getDimension() == -1) {
if (world.provider.getDimension() == -1) {
rgbaColor[0] = rand.nextFloat() * 0.5F + 0.4F;
rgbaColor[1] = rand.nextFloat() * 0.05F;
rgbaColor[2] = rand.nextFloat() * 0.05F;
@ -65,7 +65,7 @@ public class TileEntityDimDoor extends DDTileEntityBase {
@Override
public Location getTeleportTargetLocation() {
return new Location(this.getWorld().provider.getDimension(), this.getPos().offset(orientation).down());
return new Location(getWorld().provider.getDimension(), getPos().offset(orientation).down());
}
@Override
@ -78,7 +78,7 @@ public class TileEntityDimDoor extends DDTileEntityBase {
}
Location tpLocation = RiftRegistry.INSTANCE.getTeleportLocation(otherRiftID);
if (tpLocation == null) {
DimDoors.warn(this.getClass(), "Location of rift teleporting to is null.");
DimDoors.warn(getClass(), "Location of rift teleporting to is null.");
return false;
}
RiftRegistry.INSTANCE.validatePlayerPocketEntry(entity, otherRiftID);
@ -109,31 +109,31 @@ public class TileEntityDimDoor extends DDTileEntityBase {
}
}
//storing the orientation inside the tile-entity, because that thing can actually save the orientation in the worldsave, unlike the block itself, which fail at that stuff somehow
this.orientation = this.getWorld().getBlockState(this.getPos()).getValue(BlockDimDoor.FACING).getOpposite(); //@todo since this is used to determine the render of the "portal, this gets reset to the "wrong" side every time the door gets updated
orientation = getWorld().getBlockState(getPos()).getValue(BlockDimDoor.FACING).getOpposite(); //@todo since this is used to determine the render of the "portal, this gets reset to the "wrong" side every time the door gets updated
}
protected int getNewTeleportDestination() {
int otherRiftID;
Location locationOfThisRift = RiftRegistry.INSTANCE.getRiftLocation(this.riftID); //returns null if this rift isn't registered
Location locationOfThisRift = RiftRegistry.INSTANCE.getRiftLocation(riftID); //returns null if this rift isn't registered
if (this.isInPocket && this.pocketType ==EnumPocketType.DUNGEON) {
if (isInPocket && pocketType == EnumPocketType.DUNGEON) {
Location origLocation = PocketRegistry.INSTANCE.getPocket(pocketID, pocketType).getDepthZeroLocation();
//choose between generating a new pocket or connecting to another door on a similar or close depth
if (DDRandomUtils.weightedBoolean(20, 80)) { //@todo make this configurable
if (RandomUtils.weightedBoolean(20, 80)) { //@todo make this configurable
otherRiftID = RiftRegistry.INSTANCE.getRandomUnpairedRiftIDAroundDepth(getRiftID(), depth);
if (otherRiftID < 0) { //ergo: no other rift can be found
//@todo, this should rarely happen. Put in an easter egg?
otherRiftID = PocketRegistry.INSTANCE.getEntranceDoorIDOfNewPocket(EnumPocketType.DUNGEON, getRandomlyTransFormedDepth(), origLocation);
otherRiftID = PocketRegistry.INSTANCE.generateRandomPocketAt(EnumPocketType.DUNGEON, getRandomlyTransFormedDepth(), origLocation).getEntranceDoorID();
}
} else {
otherRiftID = PocketRegistry.INSTANCE.getEntranceDoorIDOfNewPocket(EnumPocketType.DUNGEON, getRandomlyTransFormedDepth(), origLocation);
otherRiftID = PocketRegistry.INSTANCE.generateRandomPocketAt(EnumPocketType.DUNGEON, getRandomlyTransFormedDepth(), origLocation).getEntranceDoorID();
}
} else {
otherRiftID = PocketRegistry.INSTANCE.getEntranceDoorIDOfNewPocket(EnumPocketType.PUBLIC, 0, locationOfThisRift); //@todo should this depth be 1 instead?
otherRiftID = PocketRegistry.INSTANCE.generateRandomPocketAt(EnumPocketType.PUBLIC, 0, locationOfThisRift).getEntranceDoorID(); //@todo should this depth be 1 instead?
}
if (otherRiftID < 0) {
DimDoors.warn(this.getClass(), "No suitable destination rift was found. This probably means that a pocket was created without any Doors.");
DimDoors.warn(getClass(), "No suitable destination rift was found. This probably means that a pocket was created without any Doors.");
} else {
//@todo (should the other rift get loaded?)
RiftRegistry.INSTANCE.pair(getRiftID(), otherRiftID);
@ -143,6 +143,6 @@ public class TileEntityDimDoor extends DDTileEntityBase {
}
protected int getRandomlyTransFormedDepth() {
return DDRandomUtils.transformRandomly(depth, DDConfig.getDoorRelativeDepths(), DDConfig.getDoorRelativeDepthWeights());
return RandomUtils.transformRandomly(depth, DDConfig.getDoorRelativeDepths(), DDConfig.getDoorRelativeDepthWeights());
}
}

View file

@ -26,35 +26,35 @@ public class TileEntityDimDoorGold extends TileEntityDimDoor implements IChunkLo
chunkTicket = ticket;
/*
// Only do anything if this function is running on the server side
// NOTE: We don't have to check whether this block is the upper door
// block or the lower one because only one of them should have a
// link associated with it.
if (!worldObj.isRemote) {
DimData dimension = PocketManager.createDimensionData(worldObj);
// Only do anything if this function is running on the server side
// NOTE: We don't have to check whether this block is the upper door
// block or the lower one because only one of them should have a
// link associated with it.
if (!worldObj.isRemote) {
DimData dimension = PocketManager.createDimensionData(worldObj);
// Check whether a ticket has already been assigned to this door
if (chunkTicket == null) {
// No ticket yet.
// Check if this area should be loaded and request a new ticket.
if (isValidChunkLoaderSetup(dimension)) {
chunkTicket = ChunkLoaderHelper.createTicket(pos, worldObj);
}
} else {
// A ticket has already been provided.
// Check if this area should be loaded. If not, release the ticket.
if (!isValidChunkLoaderSetup(dimension)) {
ForgeChunkManager.releaseTicket(chunkTicket);
chunkTicket = null;
}
}
// Check whether a ticket has already been assigned to this door
if (chunkTicket == null) {
// No ticket yet.
// Check if this area should be loaded and request a new ticket.
if (isValidChunkLoaderSetup(dimension)) {
chunkTicket = ChunkLoaderHelper.createTicket(pos, worldObj);
}
} else {
// A ticket has already been provided.
// Check if this area should be loaded. If not, release the ticket.
if (!isValidChunkLoaderSetup(dimension)) {
ForgeChunkManager.releaseTicket(chunkTicket);
chunkTicket = null;
}
}
// If chunkTicket isn't null at this point, then this is a valid door setup.
// The last step is to request force loading of the pocket's chunks.
if (chunkTicket != null) {
ChunkLoaderHelper.forcePocketChunks(dimension, chunkTicket);
}
}
// If chunkTicket isn't null at this point, then this is a valid door setup.
// The last step is to request force loading of the pocket's chunks.
if (chunkTicket != null) {
ChunkLoaderHelper.forcePocketChunks(dimension, chunkTicket);
}
}
*/
}
@ -69,15 +69,15 @@ public class TileEntityDimDoorGold extends TileEntityDimDoor implements IChunkLo
//DimDoors.log(this.getClass(), "Trying to find suitable destination rift.");
int otherRiftID = RiftRegistry.INSTANCE.getRandomUnpairedRiftIDAtDepth(getRiftID(), depth);
if (otherRiftID < 0) {
Location origLocation = RiftRegistry.INSTANCE.getRiftLocation(this.riftID);
Location origLocation = RiftRegistry.INSTANCE.getRiftLocation(riftID);
if (origLocation.getDimensionID() == DimDoorDimensions.getPocketDimensionType(EnumPocketType.DUNGEON).getId()) { //if this dimdoor is a pocket Dungeon
origLocation = PocketRegistry.INSTANCE.getPocket(pocketID, pocketType).getDepthZeroLocation();
}
otherRiftID = PocketRegistry.INSTANCE.getEntranceDoorIDOfNewPocket(EnumPocketType.DUNGEON, getRandomlyTransFormedDepth(), origLocation);
otherRiftID = PocketRegistry.INSTANCE.generateRandomPocketAt(EnumPocketType.DUNGEON, getRandomlyTransFormedDepth(), origLocation).getEntranceDoorID();
}
if (otherRiftID < 0) {
DimDoors.warn(this.getClass(), "No suitable destination rift was found. This probably means that a pocket was created without any Doors.");
DimDoors.warn(getClass(), "No suitable destination rift was found. This probably means that a pocket was created without any Doors.");
} else {
RiftRegistry.INSTANCE.pair(getRiftID(), otherRiftID);
}

View file

@ -26,17 +26,17 @@ public class TileEntityDimDoorPersonal extends TileEntityDimDoor {
@Override
public boolean tryTeleport(Entity entity) { //this door is never paired
Location locationOfThisRift = RiftRegistry.INSTANCE.getRiftLocation(this.riftID);
Location locationOfThisRift = RiftRegistry.INSTANCE.getRiftLocation(riftID);
Location tpLocation;
if (entity instanceof EntityPlayer) {
EntityPlayer entityPlayer = (EntityPlayer) entity;
if (locationOfThisRift.getDimensionID() == DimDoorDimensions.getPocketDimensionType(EnumPocketType.PRIVATE).getId()) {
tpLocation = PocketRegistry.INSTANCE.getPocket(this.pocketID, EnumPocketType.PRIVATE).getDepthZeroLocation();
tpLocation = PocketRegistry.INSTANCE.getPocket(pocketID, EnumPocketType.PRIVATE).getDepthZeroLocation();
} else {
int otherDoorID = PocketRegistry.INSTANCE.getPrivateDimDoorID(entityPlayer.getCachedUniqueIdString());
tpLocation = RiftRegistry.INSTANCE.getTeleportLocation(otherDoorID);
int privatePocketID = RiftRegistry.INSTANCE.getPocketID(otherDoorID);
PocketRegistry.INSTANCE.getPocket(privatePocketID, EnumPocketType.PRIVATE).setDepthZeroLocation(this.getTeleportTargetLocation());
PocketRegistry.INSTANCE.getPocket(privatePocketID, EnumPocketType.PRIVATE).setDepthZeroLocation(getTeleportTargetLocation());
}
} else {
return false;

View file

@ -14,9 +14,9 @@ import net.minecraft.entity.Entity;
*
* @author Robijnvogel
*/
public class TileEntityDimDoorChaos extends TileEntityDimDoor {
public class TileEntityDimDoorUnstable extends TileEntityDimDoor {
public TileEntityDimDoorChaos() {
public TileEntityDimDoorUnstable() {
canRiftBePaired = false;
}

View file

@ -16,10 +16,10 @@ public class TileEntityDimDoorWarp extends TileEntityDimDoor {
int otherRiftID = getPairedRiftID();
tpLocation = RiftRegistry.INSTANCE.getTeleportLocation(otherRiftID);
RiftRegistry.INSTANCE.validatePlayerPocketEntry(entity, otherRiftID);
} else if (!(this.isInPocket)) {
} else if (!isInPocket) {
return false;
} else {
Pocket pocket = PocketRegistry.INSTANCE.getPocket(this.pocketID, this.getPocketType());
Pocket pocket = PocketRegistry.INSTANCE.getPocket(pocketID, getPocketType());
tpLocation = pocket.getDepthZeroLocation();
}
return TeleporterDimDoors.instance().teleport(entity, tpLocation);

View file

@ -36,8 +36,7 @@ public class TileEntityRift extends DDTileEntityBase implements ITickable {
public float growth = 0;
public TileEntityRift() {
super();
this.loadDataFrom(RiftRegistry.INSTANCE.getLastChangedRift()); //@todo this should absolutely not be done in this constructor...
loadDataFrom(RiftRegistry.INSTANCE.getLastChangedRift()); //@todo this should absolutely not be done in this constructor...
// Vary the update times of rifts to prevent all the rifts in a cluster
// from updating at the same time.
@ -74,8 +73,8 @@ public class TileEntityRift extends DDTileEntityBase implements ITickable {
}
// Ensure that this rift is only spawning one Enderman at a time, to prevent hordes of Endermen
Entity entity = world.getEntityByID(this.spawnedEndermenID);
if (entity != null && entity instanceof EntityEnderman) {
Entity entity = world.getEntityByID(spawnedEndermenID);
if (entity instanceof EntityEnderman) {
return;
}
@ -91,7 +90,7 @@ public class TileEntityRift extends DDTileEntityBase implements ITickable {
world.spawnEntity(enderman);
if (random.nextInt(MAX_HOSTILE_ENDERMAN_CHANCE) < HOSTILE_ENDERMAN_CHANCE) {
EntityPlayer player = this.world.getClosestPlayerToEntity(enderman, 50);
EntityPlayer player = world.getClosestPlayerToEntity(enderman, 50);
if (player != null) {
enderman.setAttackTarget(player);
}
@ -118,25 +117,25 @@ public class TileEntityRift extends DDTileEntityBase implements ITickable {
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.updateTimer = nbt.getInteger("updateTimer");
this.offset = new BlockPos(nbt.getInteger("xOffset"), nbt.getInteger("yOffset"), nbt.getInteger("zOffset"));
this.shouldClose = nbt.getBoolean("shouldClose");
this.spawnedEndermenID = nbt.getInteger("spawnedEndermenID");
this.riftRotation = nbt.getInteger("riftRotation");
this.growth = nbt.getFloat("growth");
updateTimer = nbt.getInteger("updateTimer");
offset = new BlockPos(nbt.getInteger("xOffset"), nbt.getInteger("yOffset"), nbt.getInteger("zOffset"));
shouldClose = nbt.getBoolean("shouldClose");
spawnedEndermenID = nbt.getInteger("spawnedEndermenID");
riftRotation = nbt.getInteger("riftRotation");
growth = nbt.getFloat("growth");
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setInteger("updateTimer", this.updateTimer);
nbt.setInteger("xOffset", this.offset.getX());
nbt.setInteger("yOffset", this.offset.getY());
nbt.setInteger("zOffset", this.offset.getZ());
nbt.setBoolean("shouldClose", this.shouldClose);
nbt.setInteger("spawnedEndermenID", this.spawnedEndermenID);
nbt.setInteger("riftRotation", this.riftRotation);
nbt.setFloat("growth", this.growth);
nbt.setInteger("updateTimer", updateTimer);
nbt.setInteger("xOffset", offset.getX());
nbt.setInteger("yOffset", offset.getY());
nbt.setInteger("zOffset", offset.getZ());
nbt.setBoolean("shouldClose", shouldClose);
nbt.setInteger("spawnedEndermenID", spawnedEndermenID);
nbt.setInteger("riftRotation", riftRotation);
nbt.setFloat("growth", growth);
return nbt;
}
@ -150,7 +149,7 @@ public class TileEntityRift extends DDTileEntityBase implements ITickable {
public boolean tryTeleport(Entity entity) {
int otherRiftID;
if (!isPaired()) {
DimDoors.warn(this.getClass(), "Rift " + this.getRiftID() + " was not paired and thus, should not exist as a Rift, unless it was unpaired after the door was destroyed, in which case you should contact the developers and tell them to fix stuff.");
DimDoors.warn(getClass(), "Rift " + getRiftID() + " was not paired and thus, should not exist as a Rift, unless it was unpaired after the door was destroyed, in which case you should contact the developers and tell them to fix stuff.");
return false;
} else {
otherRiftID = getPairedRiftID();

View file

@ -13,7 +13,7 @@ public class TileEntityTransTrapdoor extends DDTileEntityBase {
@Override
public float[] getRenderColor(Random rand) {
float[] rgbaColor = {1, 1, 1, 1};
if (this.world.provider.getDimension() == -1) {
if (world.provider.getDimension() == -1) {
rgbaColor[0] = world.rand.nextFloat() * 0.5F + 0.4F;
rgbaColor[1] = world.rand.nextFloat() * 0.05F;
rgbaColor[2] = world.rand.nextFloat() * 0.05F;
@ -27,7 +27,7 @@ public class TileEntityTransTrapdoor extends DDTileEntityBase {
@Override
public Location getTeleportTargetLocation() {
return new Location(this.getWorld().provider.getDimension(), this.getPos().up());
return new Location(getWorld().provider.getDimension(), getPos().up());
}
@Override
@ -37,10 +37,10 @@ public class TileEntityTransTrapdoor extends DDTileEntityBase {
int otherRiftID = getPairedRiftID();
tpLocation = RiftRegistry.INSTANCE.getTeleportLocation(otherRiftID);
RiftRegistry.INSTANCE.validatePlayerPocketEntry(entity, otherRiftID);
} else if (!(this.isInPocket)) {
} else if (!isInPocket) {
return false;
} else {
Pocket pocket = PocketRegistry.INSTANCE.getPocket(this.pocketID, this.getPocketType());
Pocket pocket = PocketRegistry.INSTANCE.getPocket(pocketID, getPocketType());
tpLocation = pocket.getDepthZeroLocation();
}
return TeleporterDimDoors.instance().teleport(entity, tpLocation);

View file

@ -33,7 +33,7 @@ public class Location implements Serializable {
}
public Location(int dimID, BlockPos pos) {
this.dimensionID = dimID;
dimensionID = dimID;
this.pos = pos; //copyOf
}
@ -88,29 +88,29 @@ public class Location implements Serializable {
}
@Override
public boolean equals(Object o) {
if (o == null || !(o instanceof Location)) {
public boolean equals(Object obj) {
if (!(obj instanceof Location)) {
return false;
}
Location other = (Location) o;
return other.dimensionID == this.dimensionID && other.pos.equals(this.pos);
Location other = (Location) obj;
return other.dimensionID == dimensionID && other.pos.equals(pos);
}
@Override
public int hashCode() {
int hash = 5;
hash = 89 * hash + this.dimensionID;
hash = 89 * hash + Objects.hashCode(this.pos);
hash = 89 * hash + dimensionID;
hash = 89 * hash + Objects.hashCode(pos);
return hash;
}
@Override
public String toString() {
return "Location: dimID: " + this.dimensionID + " position: " + this.pos.toString();
return "Location: dimID: " + dimensionID + " position: " + pos;
}
public void loadfrom(Location location) {
this.dimensionID = location.dimensionID;
this.pos = location.pos;
dimensionID = location.dimensionID;
pos = location.pos;
}
}

View file

@ -9,7 +9,7 @@ package com.zixiken.dimdoors.shared.util;
*
* @author Robijnvogel
*/
public class DDMathUtils {
public class MathUtils {
/**
* Compares the integers in two arrays and returns true if any integer in
@ -27,9 +27,9 @@ public class DDMathUtils {
if (difference < 0) {
throw new IllegalArgumentException("precondition was violated");
}
for (int One : setOne) {
for (int Two : setTwo) {
if ((Math.max(One, Two) - Math.min(One, Two)) < difference) {
for (int one : setOne) {
for (int two : setTwo) {
if (Math.max(one, two) - Math.min(one, two) < difference) {
return true;
}
}
@ -51,9 +51,9 @@ public class DDMathUtils {
public static int arraySum(int[] intArray, short flag) {
int r = 0;
for (int i : intArray) { //check flag
if (flag == 0 && i < 0) { //
if (flag == 0 && i < 0) {
throw new IllegalArgumentException("all integers in array must be positive");
} else if (flag == 1 && i > 0) { //
} else if (flag == 1 && i > 0) {
throw new IllegalArgumentException("all integers in array must be negative");
}
r += i;

View file

@ -13,7 +13,7 @@ import net.minecraft.util.EnumFacing;
*
* @author Robijnvogel
*/
public class DDRandomUtils {
public class RandomUtils {
/**
* Returns either true or false, based on a weighted random, taking in
@ -32,7 +32,7 @@ public class DDRandomUtils {
throw new IllegalArgumentException("Either of both weights were 0 or lower. Both should be at least 1.");
}
Random random = new Random();
return (random.nextInt(trueWeight + falseWeight) < trueWeight);
return random.nextInt(trueWeight + falseWeight) < trueWeight;
}
/**
@ -43,7 +43,7 @@ public class DDRandomUtils {
* @param transformations the possible transformations
* @param weights the chance-weight of those transformations
* @pre {@code transformations.length = weights.length} && {@code (\forall i; intArray.has(i); i >= 0)}
* && {@code DDMathUtils.arraySum(weights, 1) > 0}
* && {@code MathUtils.arraySum(weights, 1) > 0}
* @throws IllegalArgumentException if precondition is violated
* @return the sum of {@code base} and the value of an element in
* {@code transformations}
@ -53,9 +53,9 @@ public class DDRandomUtils {
throw new IllegalArgumentException("pre was violated, transformations.length != weights.length");
}
Random random = new Random();
int weightSum = DDMathUtils.arraySum(weights, (short) 0);
int weightSum = MathUtils.arraySum(weights, (short) 0);
if (weightSum <= 0) {
throw new IllegalArgumentException("pre was violated, DDMathUtils.arraySum(weights, 1) <= 0");
throw new IllegalArgumentException("pre was violated, MathUtils.arraySum(weights, 1) <= 0");
}
int choice = random.nextInt(weightSum);
for (int i = 0; i < weights.length; i++) {
@ -90,10 +90,9 @@ public class DDRandomUtils {
throw new IllegalArgumentException("pre was violated");
}
Random random = new Random();
DimDoors.log(DDRandomUtils.class, "base = " + base + ", power = " + power + ", depth = " + depth + " and power is " + Math.pow(base * depth, power));
DimDoors.log(RandomUtils.class, "base = " + base + ", power = " + power + ", depth = " + depth + " and power is " + Math.pow(base * depth, power));
int xOffset = random.nextInt((int) Math.pow(base * depth, power)) * (random.nextBoolean() ? 1 : -1);
int zOffset = random.nextInt((int) Math.pow(base * depth, power)) * (random.nextBoolean() ? 1 : -1);
return new Location(origLocation.getWorld(), origLocation.getPos().offset(EnumFacing.EAST, xOffset).offset(EnumFacing.SOUTH, zOffset));
}
}

View file

@ -34,31 +34,31 @@ import net.minecraftforge.fml.common.registry.ForgeRegistries;
*/
public class Schematic {
private static final String[] OLDDIMDOORBLOCKNAMES = new String[]{
"Dimensional Door",
"Fabric of Reality",
"transientDoor", //only used in the two old Overworld gateway (worldgen) structures
"Warp Door"};
private static final String[] OLDDIMDOORBLOCKNAMES = {
"Dimensional Door",
"Fabric of Reality",
"transientDoor", //only used in the two old Overworld gateway (worldgen) structures
"Warp Door"};
private static final String[] NEWDIMDOORBLOCKNAMES = new String[]{
"dimensional_door",
"fabric", //[type=fabric] is the default blockstate
"transient_dimensional_door",
"warp_dimensional_door"};
private static final String[] NEWDIMDOORBLOCKNAMES = {
"dimensional_door",
"fabric", //[type=fabric] is the default blockstate
"transient_dimensional_door",
"warp_dimensional_door"};
int version = Integer.parseInt("1"); //@todo set in build.gradle ${spongeSchematicVersion}
String author = "DimDoors"; //@todo set in build.gradle ${modID}
String schematicName = "Unknown";
long creationDate;
String[] requiredMods = new String[0];
String[] requiredMods = {};
short width;
short height;
short length;
int[] offset = new int[]{0, 0, 0};
int[] offset = {0, 0, 0};
int paletteMax;
List<IBlockState> pallette = new ArrayList();
List<IBlockState> pallette = new ArrayList<>();
int[][][] blockData; //[x][y][z]
List<NBTTagCompound> tileEntities = new ArrayList();
List<NBTTagCompound> tileEntities = new ArrayList<>();
private Schematic() {
}
@ -84,7 +84,7 @@ public class Schematic {
schematic.creationDate = metadataCompound.getLong("Date");
}
if (nbt.hasKey("RequiredMods")) { //RequiredMods is not required (ironically)
NBTTagList requiredModsTagList = ((NBTTagList) metadataCompound.getTag("RequiredMods"));
NBTTagList requiredModsTagList = (NBTTagList) metadataCompound.getTag("RequiredMods");
schematic.requiredMods = new String[requiredModsTagList.tagCount()];
for (int i = 0; i < requiredModsTagList.tagCount(); i++) {
schematic.requiredMods[i] = requiredModsTagList.getStringTagAt(i);
@ -101,7 +101,7 @@ public class Schematic {
}
NBTTagCompound paletteNBT = nbt.getCompoundTag("Palette"); //Palette is not required, however since we assume that the schematic contains at least some blocks, we can also assume that thee has to be a Palette
Map<Integer, String> paletteMap = new HashMap();
Map<Integer, String> paletteMap = new HashMap<>();
for (String key : paletteNBT.getKeySet()) {
int paletteID = paletteNBT.getInteger(key);
paletteMap.put(paletteID, key); //basically use the reversed order (key becomes value and value becomes key)
@ -126,7 +126,6 @@ public class Schematic {
if (!stateString.equals("")) {
String[] properties = stateString.split(",");
blockstate = getBlockStateWithProperties(block, properties);
} else {
}
schematic.pallette.add(blockstate); //@todo, can we assume that a schematic file always has all palette integers used from 0 to pallettemax-1?
}
@ -179,10 +178,9 @@ public class Schematic {
nbt.setInteger("PaletteMax", schematic.paletteMax);
NBTTagCompound paletteNBT = new NBTTagCompound();
Map<Integer, String> paletteMap = new HashMap();
for (int i = 0; i < schematic.pallette.size(); i++) {
IBlockState state = schematic.pallette.get(i);
DimDoors.log(Schematic.class, "Saving BlockState: " + state.toString());
DimDoors.log(Schematic.class, "Saving BlockState: " + state);
String blockStateString = getBlockStateStringFromState(state);
paletteNBT.setInteger(blockStateString, i);
}
@ -209,10 +207,9 @@ public class Schematic {
}
private static IBlockState getBlockStateWithProperties(Block block, String[] properties) {
Map<String, String> propertyAndBlockStringsMap = new HashMap();
for (int i = 0; i < properties.length; i++) {
String propertyString = properties[i];
String[] propertyAndBlockStrings = propertyString.split("=");
Map<String, String> propertyAndBlockStringsMap = new HashMap<>();
for (String property : properties) {
String[] propertyAndBlockStrings = property.split("=");
propertyAndBlockStringsMap.put(propertyAndBlockStrings[0], propertyAndBlockStrings[1]);
}
BlockStateContainer container = block.getBlockState();
@ -238,7 +235,7 @@ public class Schematic {
private static String getBlockStateStringFromState(IBlockState state) {
Block block = state.getBlock();
String blockNameString = "" + Block.REGISTRY.getNameForObject(block);
String blockStateString = "";
StringBuilder blockStateString = new StringBuilder();
String totalString;
IBlockState defaultState = block.getDefaultState();
if (state == defaultState) {
@ -248,16 +245,14 @@ public class Schematic {
for (IProperty property : container.getProperties()) { //for every property that is valid for this type of Block
String defaultPropertyValue = defaultState.getProperties().get(property).toString();
String thisPropertyValue = state.getProperties().get(property).toString();
if (defaultPropertyValue.equals(thisPropertyValue)) {
//do nothing
} else {
if (!defaultPropertyValue.equals(thisPropertyValue)) {
String firstHalf = property.getName();
String secondHalf = state.getProperties().get(property).toString();
String propertyString = firstHalf + "=" + secondHalf;
blockStateString += propertyString + ",";
blockStateString.append(propertyString).append(",");
}
}
blockStateString = blockStateString.substring(0, blockStateString.length() - 1); //removes the last comma
blockStateString = new StringBuilder(blockStateString.substring(0, blockStateString.length() - 1)); //removes the last comma
totalString = blockNameString + "[" + blockStateString + "]";
}
return totalString;
@ -365,12 +360,12 @@ public class Schematic {
IBlockState baseState = schematic.pallette.get(blockInt); //this is the default blockstate except for ancient fabric
if (baseState == baseState.getBlock().getDefaultState()) { //should only be false if {@code baseState} is ancient fabric
IBlockState additionalState = baseState.getBlock().getStateFromMeta(metadata);
IBlockState additionalState = baseState.getBlock().getStateFromMeta(metadata); // TODO: this was getStateFromMeta(metadata), but that method got deprecated and just calls getDefaultState(). Is this right?
if (schematic.pallette.contains(additionalState)) { //check whether or not this blockstate is already in the list
blockInt = schematic.pallette.indexOf(additionalState);
} else {
schematic.pallette.add(additionalState);
DimDoors.log(Schematic.class, "New blockstate detected. Original blockInt = " + blockInt + " and baseState is " + baseState.toString());
DimDoors.log(Schematic.class, "New blockstate detected. Original blockInt = " + blockInt + " and baseState is " + baseState);
blockInt = schematic.pallette.size() - 1;
}
} else { //if this is ancient fabric
@ -419,7 +414,7 @@ public class Schematic {
}
private static void generateDefaultSchematic(String baseName, int pocketSize, IBlockState innerWallBlockState, Block doorBlock) {
int maxbound = ((pocketSize + 1) * 16) - 1;
int maxbound = (pocketSize + 1) * 16 - 1;
Schematic schematic = new Schematic();
schematic.version = 1;
@ -434,7 +429,7 @@ public class Schematic {
schematic.offset = new int[]{0, 0, 0};
schematic.paletteMax = 4;
schematic.pallette = new ArrayList();
schematic.pallette = new ArrayList<>();
schematic.pallette.add(Blocks.AIR.getDefaultState());
schematic.pallette.add(ModBlocks.FABRIC.getDefaultState().withProperty(BlockFabric.TYPE, BlockFabric.EnumType.ANCIENT));
schematic.pallette.add(innerWallBlockState);
@ -449,7 +444,7 @@ public class Schematic {
|| y == 0 || y == maxbound - 1
|| z == 0 || z == maxbound - 1) {
schematic.blockData[x][y][z] = 1; //outer dim wall
} else if (DDMathUtils.withinDistanceOf(new int[]{x, y, z}, 5, new int[]{0, maxbound})) {
} else if (MathUtils.withinDistanceOf(new int[]{x, y, z}, 5, new int[]{0, maxbound})) {
if (z == 4 && x == (maxbound - 1) / 2 && y > 4 && y < 7) {
if (y == 5) {
schematic.blockData[x][y][z] = 3; //door bottom
@ -466,7 +461,7 @@ public class Schematic {
}
}
schematic.tileEntities = new ArrayList();
schematic.tileEntities = new ArrayList<>();
TileEntity tileEntity = doorBlock.createTileEntity(DimDoors.proxy.getDefWorld(), doorBlock.getDefaultState());
NBTTagCompound tileNBT = tileEntity.serializeNBT();
tileNBT.setInteger("x", (maxbound - 1) / 2);

View file

@ -12,7 +12,7 @@ import java.util.List;
*
* @author Robijnvogel
*/
public class DDStringUtils {
public class StringUtils {
public static char flipCase(char in) {
if (Character.isUpperCase(in)) {
@ -23,7 +23,7 @@ public class DDStringUtils {
}
public static List<String> getAsStringList(Integer[] integers) {
List<String> list = new ArrayList();
List<String> list = new ArrayList<>();
for (int integer : integers) {
list.add("" + integer);
}
@ -34,7 +34,7 @@ public class DDStringUtils {
if (template.equals("")) {
return comparables;
}
List<String> results = new ArrayList();
List<String> results = new ArrayList<>();
for (String comparable : comparables) {
if (isStartOfString(template, comparable, caseSensitive)) {
results.add(comparable);
@ -53,11 +53,7 @@ public class DDStringUtils {
for (int i = 0; i < template.length(); i++) {
char tChar = template.charAt(i);
char cChar = comparable.charAt(i);
if (tChar == cChar) {
//this matches, so continue the loop
} else if (!caseSensitive && flipCase(tChar) == cChar) {
//this matches, so continue the loop
} else {
if (tChar != cChar && !caseSensitive && flipCase(tChar) == cChar) {
return false;
}
}

View file

@ -1,7 +0,0 @@
package com.zixiken.dimdoors.shared.world;
/**
* Created by Jared Johnson on 1/24/2017.
*/
public class BiomeGenPocket {
}

View file

@ -30,11 +30,11 @@ public class CustomSkyProvider extends IRenderHandler {
@SideOnly(Side.CLIENT)
@Override
public void render(float par1, WorldClient world, Minecraft mc) {
public void render(float partialTicks, WorldClient world, Minecraft mc) {
starGLCallList = GLAllocation.generateDisplayLists(3);
glSkyList = this.starGLCallList + 1;
glSkyList2 = this.starGLCallList + 2;
glSkyList = starGLCallList + 1;
glSkyList2 = starGLCallList + 2;
GL11.glDisable(GL11.GL_FOG);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_BLEND);
@ -42,11 +42,11 @@ public class CustomSkyProvider extends IRenderHandler {
RenderHelper.disableStandardItemLighting();
GL11.glDepthMask(false);
mc.renderEngine.bindTexture((locationEndSkyPng));
mc.renderEngine.bindTexture(locationEndSkyPng);
if (mc.world.provider.isSurfaceWorld()) {
GL11.glDisable(GL11.GL_TEXTURE_2D);
final Vec3d vec3 = world.getSkyColor(mc.getRenderViewEntity(), par1);
final Vec3d vec3 = world.getSkyColor(mc.getRenderViewEntity(), partialTicks);
float f1 = (float) vec3.x;
float f2 = (float) vec3.y;
float f3 = (float) vec3.z;
@ -67,13 +67,13 @@ public class CustomSkyProvider extends IRenderHandler {
GL11.glDepthMask(false);
GL11.glEnable(GL11.GL_FOG);
GL11.glColor3f(f1, f2, f3);
GL11.glCallList(this.glSkyList);
GL11.glCallList(glSkyList);
GL11.glDisable(GL11.GL_FOG);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
RenderHelper.disableStandardItemLighting();
float[] afloat = world.provider.calcSunriseSunsetColors(world.getCelestialAngle(par1), par1);
float[] afloat = world.provider.calcSunriseSunsetColors(world.getCelestialAngle(partialTicks), partialTicks);
float f7;
float f8;
float f9;
@ -84,7 +84,7 @@ public class CustomSkyProvider extends IRenderHandler {
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glPushMatrix();
GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(MathHelper.sin(world.getCelestialAngleRadians(par1)) < 0.0F ? 180.0F : 0.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(MathHelper.sin(world.getCelestialAngleRadians(partialTicks)) < 0.0F ? 180.0F : 0.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
f4 = afloat[0];
f7 = afloat[1];
@ -119,16 +119,16 @@ public class CustomSkyProvider extends IRenderHandler {
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
GL11.glPushMatrix();
f4 = 1.0F - world.getRainStrength(par1);
f4 = 1.0F - world.getRainStrength(partialTicks);
f7 = 0.0F;
f8 = 0.0F;
f9 = 0.0F;
GL11.glColor4f(1.0F, 1.0F, 1.0F, f4);
GL11.glTranslatef(f7, f8, f9);
GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(world.getCelestialAngle(par1) * 360.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F);
f10 = 30.0F;
mc.renderEngine.bindTexture(this.getSunRenderPath());
mc.renderEngine.bindTexture(getSunRenderPath());
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
buffer.pos(-f10, 100, -f10).tex(0, 0).endVertex();
buffer.pos(f10, 100, -f10).tex(1, 0).endVertex();
@ -137,26 +137,24 @@ public class CustomSkyProvider extends IRenderHandler {
tessellator.draw();
f10 = 20.0F;
mc.renderEngine.bindTexture(this.getMoonRenderPath());
mc.renderEngine.bindTexture(getMoonRenderPath());
int k = world.getMoonPhase();
int l = k % 4;
int i = k % 4;
int i1 = k / 4 % 2;
float f14 = l + 0;
float f15 = i1 + 0;
float f16 = l + 1;
float f16 = i + 1;
float f17 = i1 + 1;
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
buffer.pos(-f10, -100, f10).tex(f16, f17).endVertex();
buffer.pos(f10, -100, f10).tex(f14, f17).endVertex();
buffer.pos(f10, -100, -f10).tex(f14, f15).endVertex();
buffer.pos(-f10, -100, -f10).tex(f16, f15).endVertex();
buffer.pos(f10, -100, f10).tex((float) i, f17).endVertex();
buffer.pos(f10, -100, -f10).tex((float) i, (float) i1).endVertex();
buffer.pos(-f10, -100, -f10).tex(f16, (float) i1).endVertex();
tessellator.draw();
GL11.glDisable(GL11.GL_TEXTURE_2D);
float f18 = world.getStarBrightness(par1) * f4;
float f18 = world.getStarBrightness(partialTicks) * f4;
if (f18 > 0.0F) {
GL11.glColor4f(f18, f18, f18, f18);
GL11.glCallList(this.starGLCallList);
GL11.glCallList(starGLCallList);
}
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
@ -166,12 +164,12 @@ public class CustomSkyProvider extends IRenderHandler {
GL11.glPopMatrix();
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glColor3f(0.0F, 0.0F, 0.0F);
double d0 = mc.player.getLook(par1).y - world.getHorizon();
double d0 = mc.player.getLook(partialTicks).y - world.getHorizon();
if (d0 < 0.0D) {
GL11.glPushMatrix();
GL11.glTranslatef(0.0F, 12.0F, 0.0F);
GL11.glCallList(this.glSkyList2);
GL11.glCallList(glSkyList2);
GL11.glPopMatrix();
f8 = 1.0F;
f9 = -((float) (d0 + 65.0D));
@ -209,11 +207,10 @@ public class CustomSkyProvider extends IRenderHandler {
GL11.glPushMatrix();
GL11.glTranslatef(0.0F, -((float) (d0 - 16.0D)), 0.0F);
GL11.glCallList(this.glSkyList2);
GL11.glCallList(glSkyList2);
GL11.glPopMatrix();
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glDepthMask(true);
}
}
}
}

View file

@ -11,12 +11,11 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.minecraft.world.DimensionType;
import net.minecraft.world.WorldProvider;
import net.minecraftforge.common.DimensionManager;
public class DimDoorDimensions {
public static DimensionType LIMBO;
public static DimensionType LIMBO = null;
private static int minPocketDimID;
private static int maxPocketDimID;
private static final List<EnumPocketType> pocketTypes = new ArrayList<>();
@ -43,12 +42,13 @@ public class DimDoorDimensions {
registerDimension(pocketDimensionTypes.get(pocketType));
}
for (int i = 0; i < 0; i++) { //@todo: For future use? Like, server owners can add their own set of DimDoors DimensionTypes via the configs? Or is this nonsense?
dimID++;
DimensionType tempType = DimensionType.register("Name", "_name", dimID, WorldProvider.class, false);
CUSTOM.add(tempType);
registerDimension(tempType);
}
// TODO: For future use? Like, server owners can add their own set of DimDoors DimensionTypes via the configs? Or is this nonsense?
// for (int i = 0; i < 0; i++) {
// dimID++;
// DimensionType tempType = DimensionType.register("Name", "_name", dimID, WorldProvider.class, false);
// CUSTOM.add(tempType);
// registerDimension(tempType);
//}
}
public static void registerDimension(DimensionType dimension) {

View file

@ -5,22 +5,22 @@ import net.minecraft.world.biome.Biome;
/**
* Created by Jared Johnson on 1/24/2017.
*/
public class DimDoorsBiome extends Biome
{
public class DimDoorsBiome extends Biome {
public DimDoorsBiome(String name) {
super(new BiomeProperties(name));
this.decorator.treesPerChunk = 0;
this.decorator.flowersPerChunk = 0;
this.decorator.grassPerChunk = 0;
decorator.treesPerChunk = 0;
decorator.flowersPerChunk = 0;
decorator.grassPerChunk = 0;
this.spawnableMonsterList.clear();
this.spawnableCreatureList.clear();
this.spawnableWaterCreatureList.clear();
this.spawnableCaveCreatureList.clear();
spawnableMonsterList.clear();
spawnableCreatureList.clear();
spawnableWaterCreatureList.clear();
spawnableCaveCreatureList.clear();
}
@Override
public boolean canRain() {
return false;
}
}
}

View file

@ -3,7 +3,8 @@ package com.zixiken.dimdoors.shared.world.limbodimension;
import com.zixiken.dimdoors.shared.world.biomes.DimDoorsBiome;
public class LimboBiome extends DimDoorsBiome {
public LimboBiome() {
super("limbo");
}
}
}

View file

@ -167,6 +167,6 @@ public class LimboDecay {
}
}
return (block == null || !(block instanceof BlockContainer));
return !(block instanceof BlockContainer);
}
}
}

View file

@ -19,9 +19,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class LimboGenerator implements IChunkGenerator
{
private static Random rand;
public class LimboGenerator implements IChunkGenerator {
private Random rand;
/** A NoiseGeneratorOctaves used in generating terrain */
private NoiseGeneratorOctaves noiseGen1;
@ -75,44 +75,44 @@ public class LimboGenerator implements IChunkGenerator
*/
float[] parabolicField;
int[][] field_73219_j = new int[32][32];
{
// caveGenerator = TerrainGen.getModdedMapGen(caveGenerator, CAVE);
}
//{
// caveGenerator = TerrainGen.getModdedMapGen(caveGenerator, CAVE);
//}
//private CustomLimboPopulator spawner;
public LimboGenerator(World world, long seed /*CustomLimboPopulator spawner*/) {
this.worldObj = world;
LimboGenerator.rand = new Random(seed);
this.noiseGen1 = new NoiseGeneratorOctaves(LimboGenerator.rand, 16); //base terrain
this.noiseGen2 = new NoiseGeneratorOctaves(LimboGenerator.rand, 16); //hillyness
this.noiseGen3 = new NoiseGeneratorOctaves(LimboGenerator.rand, 80); //seems to adjust the size of features, how stretched things are -default 8
this.noiseGen4 = new NoiseGeneratorOctaves(LimboGenerator.rand, 4);
this.noiseGen5 = new NoiseGeneratorOctaves(LimboGenerator.rand, 10);
this.noiseGen6 = new NoiseGeneratorOctaves(LimboGenerator.rand, 16);
this.mobSpawnerNoise = new NoiseGeneratorOctaves(LimboGenerator.rand, 8);
worldObj = world;
rand = new Random(seed);
noiseGen1 = new NoiseGeneratorOctaves(rand, 16); //base terrain
noiseGen2 = new NoiseGeneratorOctaves(rand, 16); //hillyness
noiseGen3 = new NoiseGeneratorOctaves(rand, 80); //seems to adjust the size of features, how stretched things are -default 8
noiseGen4 = new NoiseGeneratorOctaves(rand, 4);
noiseGen5 = new NoiseGeneratorOctaves(rand, 10);
noiseGen6 = new NoiseGeneratorOctaves(rand, 16);
mobSpawnerNoise = new NoiseGeneratorOctaves(rand, 8);
NoiseGeneratorOctaves[] noiseGens = {noiseGen1, noiseGen2, noiseGen3, noiseGen4, noiseGen5, noiseGen6, mobSpawnerNoise};
// noiseGens = TerrainGen.getModdedNoiseGenerators(par1World, this.rand, noiseGens);
this.noiseGen1 = noiseGens[0];
this.noiseGen2 = noiseGens[1];
this.noiseGen3 = noiseGens[2];
this.noiseGen4 = noiseGens[3];
this.noiseGen5 = noiseGens[4];
this.noiseGen6 = noiseGens[5];
this.mobSpawnerNoise = noiseGens[6];
noiseGen1 = noiseGens[0];
noiseGen2 = noiseGens[1];
noiseGen3 = noiseGens[2];
noiseGen4 = noiseGens[3];
noiseGen5 = noiseGens[4];
noiseGen6 = noiseGens[5];
mobSpawnerNoise = noiseGens[6];
this.worldObj = world;
worldObj = world;
//this.spawner = spawner;
}
@Override
public Chunk generateChunk(int chunkX, int chunkZ) {
public Chunk generateChunk(int x, int z) {
//TODO: Wtf? Why do you reinitialize the seed when we already initialized it in the constructor?! ~SenseiKiwi
LimboGenerator.rand.setSeed(chunkX * 341873128712L + chunkZ * 132897987541L);
rand.setSeed(x * 341873128712L + z * 132897987541L);
ChunkPrimer primer = new ChunkPrimer();
this.scale(chunkX, chunkZ, primer);
Chunk chunk = new Chunk(this.worldObj, primer, chunkX, chunkZ);
scale(x, z, primer);
Chunk chunk = new Chunk(worldObj, primer, x, z);
chunk.generateSkylightMap();
if (!chunk.isTerrainPopulated()) {
@ -124,7 +124,7 @@ public class LimboGenerator implements IChunkGenerator
}
@Override
public void populate(int var2, int var3) {
public void populate(int x, int z) {
}
@ -138,24 +138,24 @@ public class LimboGenerator implements IChunkGenerator
par1ArrayOfDouble = new double[par5 * par6 * par7];
}
if (this.parabolicField == null) {
this.parabolicField = new float[25];
if (parabolicField == null) {
parabolicField = new float[25];
for (int var8 = -2; var8 <= 2; ++var8) {
for (int var9 = -2; var9 <= 2; ++var9) {
float var10 = 10.0F / MathHelper.sqrt(var8 * var8 + var9 * var9 + 0.2F);
this.parabolicField[var8 + 2 + (var9 + 2) * 5] = var10;
parabolicField[var8 + 2 + (var9 + 2) * 5] = var10;
}
}
}
double var44 = 884.412D; //large values here create spiky land. add a 0, good -default 884
double var45 = 9840.412D; //large values here make sheets- default - 684
this.noise5 = this.noiseGen5.generateNoiseOctaves(this.noise5, par2, par4, par5, par7, 1.121D, 1.121D, 0.5D);
this.noise6 = this.noiseGen6.generateNoiseOctaves(this.noise6, par2, par4, par5, par7, 200.0D, 200.0D, 0.5D);
this.noise3 = this.noiseGen3.generateNoiseOctaves(this.noise3, par2, par3, par4, par5, par6, par7, var44 / 80.0D, var45 / 160.0D, var44 / 80.0D);
this.noise1 = this.noiseGen1.generateNoiseOctaves(this.noise1, par2, par3, par4, par5, par6, par7, var44, var45, var44);
this.noise2 = this.noiseGen2.generateNoiseOctaves(this.noise2, par2, par3, par4, par5, par6, par7, var44, var45, var44);
noise5 = noiseGen5.generateNoiseOctaves(noise5, par2, par4, par5, par7, 1.121D, 1.121D, 0.5D);
noise6 = noiseGen6.generateNoiseOctaves(noise6, par2, par4, par5, par7, 200.0D, 200.0D, 0.5D);
noise3 = noiseGen3.generateNoiseOctaves(noise3, par2, par3, par4, par5, par6, par7, var44 / 80.0D, var45 / 160.0D, var44 / 80.0D);
noise1 = noiseGen1.generateNoiseOctaves(noise1, par2, par3, par4, par5, par6, par7, var44, var45, var44);
noise2 = noiseGen2.generateNoiseOctaves(noise2, par2, par3, par4, par5, par6, par7, var44, var45, var44);
int var12 = 0;
int var13 = 0;
@ -169,7 +169,7 @@ public class LimboGenerator implements IChunkGenerator
for (int var21 = -var19; var21 <= var19; ++var21) {
for (int var22 = -var19; var22 <= var19; ++var22) {
float var24 = this.parabolicField[var21 + 2 + (var22 + 2) * 5] / (Biomes.PLAINS.getBaseHeight() + 9.0F);
float var24 = parabolicField[var21 + 2 + (var22 + 2) * 5] / (Biomes.PLAINS.getBaseHeight() + 9.0F);
//this adjusts the height of the terrain
@ -182,9 +182,9 @@ public class LimboGenerator implements IChunkGenerator
var16 /= var18;
var17 /= var18;
var16 = (var16 * 0.9F + 0.1F);
var16 = var16 * 0.9F + 0.1F;
var17 = (var17 * 4.0F - 1.0F) / 8.0F;
double var47 = this.noise6[var13] / 8000.0D;
double var47 = noise6[var13] / 8000.0D;
if (var47 < 0.0D) {
var47 = -var47 * 0.3D;
@ -214,20 +214,19 @@ public class LimboGenerator implements IChunkGenerator
for (int var46 = 0; var46 < par6; ++var46) {
double var48 = var17;
double var26 = var16;
var48 += var47 * 0.2D;
var48 = var48 * par6 / 16.0D;
double var28 = par6 / 2.0D + var48 * 4.0D;
double var30 = 0.0D;
double var32 = (var46 - var28) * 12.0D * 128.0D / 128.0D / var26;
double var30;
double var32 = (var46 - var28) * 12.0D * 128.0D / 128.0D / (double) var16;
if (var32 < 0.0D) {
var32 *= 4.0D;
}
double var34 = this.noise1[var12] / 512.0D;
double var36 = this.noise2[var12] / 512.0D;
double var38 = (this.noise3[var12] / 10.0D + 1.0D) / 2.0D;
double var34 = noise1[var12] / 512.0D;
double var36 = noise2[var12] / 512.0D;
double var38 = (noise3[var12] / 10.0D + 1.0D) / 2.0D;
if (var38 < 0.0D) {
var30 = var34;
@ -257,8 +256,8 @@ public class LimboGenerator implements IChunkGenerator
public void scale(int x, int z, ChunkPrimer primer) { //Coursty of
// TODO: this:
this.biomesForGeneration = this.worldObj.getBiomeProvider().getBiomesForGeneration(this.biomesForGeneration, x * 4 - 2, z * 4 - 2, 10, 10);
this.noiseArray = this.initializeNoiseField(this.noiseArray, x * 4, 0, z * 4, 5, 17, 5);
biomesForGeneration = worldObj.getBiomeProvider().getBiomesForGeneration(biomesForGeneration, x * 4 - 2, z * 4 - 2, 10, 10);
noiseArray = initializeNoiseField(noiseArray, x * 4, 0, z * 4, 5, 17, 5);
int xzSections = 4;
int xzSectionSize = 4;
@ -281,14 +280,14 @@ public class LimboGenerator implements IChunkGenerator
for (int sectionY = 0; sectionY < ySections; ++sectionY) {
int ySectionPart = sectionY * ySectionSize;
double v0y0 = this.noiseArray[i0_0 + sectionY];
double v0y1 = this.noiseArray[i0_1 + sectionY];
double v1y0 = this.noiseArray[i1_0 + sectionY];
double v1y1 = this.noiseArray[i1_1 + sectionY];
double d0y0 = (this.noiseArray[i0_0 + sectionY + 1] - v0y0) * yScale;
double d0y1 = (this.noiseArray[i0_1 + sectionY + 1] - v0y1) * yScale;
double d1y0 = (this.noiseArray[i1_0 + sectionY + 1] - v1y0) * yScale;
double d1y1 = (this.noiseArray[i1_1 + sectionY + 1] - v1y1) * yScale;
double v0y0 = noiseArray[i0_0 + sectionY];
double v0y1 = noiseArray[i0_1 + sectionY];
double v1y0 = noiseArray[i1_0 + sectionY];
double v1y1 = noiseArray[i1_1 + sectionY];
double d0y0 = (noiseArray[i0_0 + sectionY + 1] - v0y0) * yScale;
double d0y1 = (noiseArray[i0_1 + sectionY + 1] - v0y1) * yScale;
double d1y0 = (noiseArray[i1_0 + sectionY + 1] - v1y0) * yScale;
double d1y1 = (noiseArray[i1_1 + sectionY + 1] - v1y1) * yScale;
for (int yRel = 0; yRel < ySectionSize; ++yRel) {
int yCoord = ySectionPart + yRel;
@ -328,8 +327,8 @@ public class LimboGenerator implements IChunkGenerator
}
@Override
public List<Biome.SpawnListEntry> getPossibleCreatures(EnumCreatureType par1EnumCreatureType, BlockPos pos) {
return new ArrayList<Biome.SpawnListEntry>();
public List<Biome.SpawnListEntry> getPossibleCreatures(EnumCreatureType creatureType, BlockPos pos) {
return new ArrayList<>();
}
@Nullable
@ -347,4 +346,4 @@ public class LimboGenerator implements IChunkGenerator
public boolean isInsideStructure(World worldIn, String structureName, BlockPos pos) {
return false;
}
}
}

View file

@ -8,6 +8,7 @@ import net.minecraft.util.ResourceLocation;
* Created by Jared Johnson on 1/24/2017.
*/
public class LimboSkyProvider extends CustomSkyProvider {
private static final ResourceLocation limboMoonResourceLoc = new ResourceLocation(DimDoors.MODID + ":textures/other/limbo_moon.png");
private static final ResourceLocation limboSunResourceLoc = new ResourceLocation(DimDoors.MODID + ":textures/other/limbo_sun.png");

View file

@ -12,7 +12,6 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.DimensionType;
import net.minecraft.world.World;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.gen.IChunkGenerator;
@ -21,12 +20,13 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class WorldProviderLimbo extends WorldProvider {
private IRenderHandler skyRenderer;
private LimboBiome limboBiome;
public WorldProviderLimbo() {
this.hasSkyLight = false;
this.skyRenderer = new LimboSkyProvider();
hasSkyLight = false;
skyRenderer = new LimboSkyProvider();
limboBiome = new LimboBiome();
//this.spawner
}
@ -43,8 +43,7 @@ public class WorldProviderLimbo extends WorldProvider {
}
@Override
public boolean canRespawnHere()
{
public boolean canRespawnHere() {
return false; //properties.HardcoreLimboEnabled;
}
@ -65,18 +64,18 @@ public class WorldProviderLimbo extends WorldProvider {
for (int steps = 0; steps <= 15; ++steps) {
float var3 = 1.0F - steps / 15.0F;
this.lightBrightnessTable[steps] = ((0.0F + var3) / (var3 * 3.0F + 1.0F) * (1.0F - modifier) + modifier)*3;
lightBrightnessTable[steps] = ((0.0F + var3) / (var3 * 3.0F + 1.0F) * (1.0F - modifier) + modifier)*3;
// System.out.println( this.lightBrightnessTable[steps]+"light");
}
}
@Override
public BlockPos getSpawnPoint() {
return this.getRandomizedSpawnPoint();
return getRandomizedSpawnPoint();
}
@Override
public float calculateCelestialAngle(long par1, float par3) {
public float calculateCelestialAngle(long worldTime, float partialTicks) {
return 0;
}
@ -87,18 +86,18 @@ public class WorldProviderLimbo extends WorldProvider {
@Override
public String getSaveFolder() {
return ("DIM" + getDimension() + "DimDoorsLimbo");
return "DIM" + getDimension() + "DimDoorsLimbo";
}
@Override
public boolean canCoordinateBeSpawn(int x, int z) {
BlockPos pos = this.world.getTopSolidOrLiquidBlock(new BlockPos(x, 0, z));
BlockPos pos = world.getTopSolidOrLiquidBlock(new BlockPos(x, 0, z));
return world.getBlockState(pos).equals(ModBlocks.FABRIC.getDefaultState().withProperty(BlockFabric.TYPE, BlockFabric.EnumType.UNRAVELED));
}
@Override
public double getHorizon() {
return world.getHeight()/4-800;
return (double) world.getHeight() / 4 - 800;
}
@SideOnly(Side.CLIENT)
@ -111,7 +110,7 @@ public class WorldProviderLimbo extends WorldProvider {
}
@SideOnly(Side.CLIENT)
@Override
public Vec3d getFogColor(float par1, float par2) {
public Vec3d getFogColor(float p_76562_1_, float p_76562_2_) {
return new Vec3d(.2, .2, .2);
}
@ -131,15 +130,15 @@ public class WorldProviderLimbo extends WorldProvider {
}
public static Location getLimboSkySpawn(EntityPlayer player) {
int x = (int) (player.posX) + MathHelper.clamp(player.world.rand.nextInt(), -100, 100); //-properties.LimboEntryRange, properties.LimboEntryRange);
int z = (int) (player.posZ) + MathHelper.clamp(player.world.rand.nextInt(), -100, 100); //-properties.LimboEntryRange, properties.LimboEntryRange);
int x = (int) player.posX + MathHelper.clamp(player.world.rand.nextInt(), -100, 100); //-properties.LimboEntryRange, properties.LimboEntryRange);
int z = (int) player.posZ + MathHelper.clamp(player.world.rand.nextInt(), -100, 100); //-properties.LimboEntryRange, properties.LimboEntryRange);
return new Location(DimDoorDimensions.LIMBO.getId(), x, 700, z);
}
@Override
public BlockPos getRandomizedSpawnPoint() {
int x = MathHelper.clamp(this.world.rand.nextInt(), -500, 500);
int z = MathHelper.clamp(this.world.rand.nextInt(), -500, 500);
int x = MathHelper.clamp(world.rand.nextInt(), -500, 500);
int z = MathHelper.clamp(world.rand.nextInt(), -500, 500);
return new BlockPos(x, 700, z);
}

View file

@ -13,20 +13,21 @@ import java.util.ArrayList;
import java.util.List;
public class PocketChunkGenerator implements IChunkGenerator {
private World worldObj;
//private CustomLimboPopulator spawner;
public PocketChunkGenerator(World world, long seed /*CustomLimboPopulator spawner*/) {
this.worldObj = world;
worldObj = world;
//this.spawner = spawner;
}
@Override
public Chunk generateChunk(int chunkX, int chunkZ) {
public Chunk generateChunk(int x, int z) {
ChunkPrimer primer = new ChunkPrimer();
Chunk chunk = new Chunk(worldObj, primer, chunkX, chunkZ);
Chunk chunk = new Chunk(worldObj, primer, x, z);
if(!chunk.isTerrainPopulated()) {
chunk.setTerrainPopulated(true);
@ -36,7 +37,7 @@ public class PocketChunkGenerator implements IChunkGenerator {
}
@Override
public void populate(int chunkX, int chunkZ) {
public void populate(int x, int z) {
}
@ -47,7 +48,7 @@ public class PocketChunkGenerator implements IChunkGenerator {
@Override
public List<Biome.SpawnListEntry> getPossibleCreatures(EnumCreatureType creatureType, BlockPos pos) {
return new ArrayList();
return new ArrayList<>();
}
@Nullable
@ -65,4 +66,4 @@ public class PocketChunkGenerator implements IChunkGenerator {
public boolean isInsideStructure(World worldIn, String structureName, BlockPos pos) {
return false;
}
}
}

View file

@ -13,7 +13,7 @@ public class WorldProviderDungeonPocket extends WorldProviderPublicPocket {
@Override
public String getSaveFolder() {
return ("DIM" + getDimension() + "DimDoorsDungeon");
return "DIM" + getDimension() + "DimDoorsDungeon";
}
@Override

View file

@ -33,7 +33,7 @@ public class WorldProviderPersonalPocket extends WorldProviderPublicPocket {
@SideOnly(Side.CLIENT)
@Override
public Vec3d getFogColor(float par1, float par2) {
public Vec3d getFogColor(float p_76562_1_, float p_76562_2_) {
return new Vec3d(1, 1, 1);
}
@ -49,6 +49,6 @@ public class WorldProviderPersonalPocket extends WorldProviderPublicPocket {
@Override
public String getSaveFolder() {
return ("DIM" + getDimension() + "DimDoorsPersonal");
return "DIM" + getDimension() + "DimDoorsPersonal";
}
}

View file

@ -4,7 +4,6 @@ import com.zixiken.dimdoors.client.CloudRenderBlank;
import com.zixiken.dimdoors.shared.EnumPocketType;
import com.zixiken.dimdoors.shared.world.DimDoorDimensions;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.DimensionType;
@ -14,13 +13,13 @@ import net.minecraftforge.client.IRenderHandler;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class WorldProviderPublicPocket extends WorldProvider {//@todo, we might want an abstract super class to this one?
public class WorldProviderPublicPocket extends WorldProvider { //@todo, we might want an abstract super class to this one?
//protected CustomLimboPopulator spawner;
protected IRenderHandler skyRenderer;
public WorldProviderPublicPocket() {
this.hasSkyLight = true;
hasSkyLight = true;
}
@SideOnly(Side.CLIENT)
@ -32,7 +31,7 @@ public class WorldProviderPublicPocket extends WorldProvider {//@todo, we might
@SideOnly(Side.CLIENT)
@Override
public Vec3d getFogColor(float par1, float par2) {
public Vec3d getFogColor(float p_76562_1_, float p_76562_2_) {
return Vec3d.ZERO;
}
@ -47,7 +46,7 @@ public class WorldProviderPublicPocket extends WorldProvider {//@todo, we might
}
@Override
public boolean canSnowAt(BlockPos pos, boolean light) {
public boolean canSnowAt(BlockPos pos, boolean checkLight) {
return false;
}
@ -57,7 +56,7 @@ public class WorldProviderPublicPocket extends WorldProvider {//@todo, we might
}
@Override
public float calculateCelestialAngle(long par1, float par3) {
public float calculateCelestialAngle(long worldTime, float partialTicks) {
return .5F;
}
@ -91,7 +90,7 @@ public class WorldProviderPublicPocket extends WorldProvider {//@todo, we might
@Override
public String getSaveFolder() {
return ("DIM" + getDimension() + "DimDoorsPublic");
return "DIM" + getDimension() + "DimDoorsPublic";
}
@Override

View file

@ -6,4 +6,4 @@
"type=unraveled": { "model": "dimdoors:fabric_unraveled" },
"type=eternal": { "model": "dimdoors:fabric_eternal" }
}
}
}

View file

@ -76,4 +76,4 @@ info.warp_dimensional_door1=Spalts, um ein Portal zu erstellen,
info.warp_dimensional_door2=oder platziere irgendwo in einer
info.warp_dimensional_door3=kleinen Dimension, um sie zu verlassen.
entity.dimdoors.monolith.name=Monolith
entity.dimdoors.monolith.name=Monolith

View file

@ -76,4 +76,4 @@ info.warp_dimensional_door1=a rift to create a portal,
info.warp_dimensional_door2=or place anywhere in a
info.warp_dimensional_door3=pocket dimension to exit.
entity.dimdoors.monolith.name=Monolith
entity.dimdoors.monolith.name=Monolith

View file

@ -76,4 +76,4 @@ info.warp_dimensional_door1=fissure pour créer un portail,
info.warp_dimensional_door2=ou placez n'importe où dans une
info.warp_dimensional_door3=dimension de poche pour sortir.
entity.dimdoors.monolith.name=Monolithe
entity.dimdoors.monolith.name=Monolithe

View file

@ -76,4 +76,4 @@ info.warp_dimensional_door1=frattura per creare un portale,
info.warp_dimensional_door2=o piazzalo da qualunque altra parte
info.warp_dimensional_door3=in una dimensione tascabile per uscire.
entity.dimdoors.monolith.name=Monolito
entity.dimdoors.monolith.name=Monolito

View file

@ -76,4 +76,4 @@ info.warp_dimensional_door1=om een portaal te creëren,
info.warp_dimensional_door2=of plaats het ergens in een
info.warp_dimensional_door3=broekzak dimensie om deze te verlaten.
entity.dimdoors.monolith.name=Monoliet
entity.dimdoors.monolith.name=Monoliet

View file

@ -76,4 +76,4 @@ info.warp_dimensional_door1=разломом, чтобы создать порт
info.warp_dimensional_door2=или поставьте куда угодно в
info.warp_dimensional_door3=карманном измерении, чтобы выйти из него.
entity.dimdoors.monolith.name=Монолит
entity.dimdoors.monolith.name=Монолит

View file

@ -76,4 +76,4 @@ info.warp_dimensional_door1=来制造传送门,
info.warp_dimensional_door2=放在口袋次元中
info.warp_dimensional_door3=以退出空间.
entity.dimdoors.monolith.name=巨石
entity.dimdoors.monolith.name=巨石

View file

@ -1,4 +1,4 @@
{
"parent": "block/cube_all",
"textures": { "all": "dimdoors:blocks/fabric_altered" }
}
}

View file

@ -1,4 +1,4 @@
{
"parent": "block/cube_all",
"textures": { "all": "dimdoors:blocks/fabric_ancient" }
}
}

View file

@ -1,4 +1,4 @@
{
"parent": "block/cube_all",
"textures": { "all": "dimdoors:blocks/fabric_eternal" }
}
}

View file

@ -1,4 +1,4 @@
{
"parent": "block/cube_all",
"textures": { "all": "dimdoors:blocks/fabric_reality" }
}
}

View file

@ -1,4 +1,4 @@
{
"parent": "block/cube_all",
"textures": { "all": "dimdoors:blocks/fabric_unraveled" }
}
}

View file

@ -1,3 +1,3 @@
{
"parent": "builtin/missing"
}
}

View file

@ -1,3 +1,3 @@
{
"parent": "dimdoors:block/dimensional_trapdoor_bottom"
}
}

View file

@ -7,4 +7,4 @@
"scale": [ 0.375, 0.375, 0.375 ]
}
}
}
}

View file

@ -7,4 +7,4 @@
"scale": [ 0.375, 0.375, 0.375 ]
}
}
}
}

View file

@ -7,4 +7,4 @@
"scale": [ 0.375, 0.375, 0.375 ]
}
}
}
}

Some files were not shown because too many files have changed in this diff Show more