class cleanup
This commit is contained in:
parent
ca97bf2e18
commit
6c34d24b8c
27 changed files with 132 additions and 129 deletions
|
@ -173,7 +173,6 @@ import common.tileentity.TileEntity;
|
|||
import common.util.LocalPos;
|
||||
import common.util.BoundingBox;
|
||||
import common.util.CharValidator;
|
||||
import common.util.ChunkPos;
|
||||
import common.util.ExtMath;
|
||||
import common.util.HitPosition;
|
||||
import common.util.IntHashMap;
|
||||
|
@ -577,13 +576,13 @@ public class Client implements IThreadListener {
|
|||
private IntHashMap<Entity> entityIds;
|
||||
|
||||
|
||||
@Variable(name = "chunk_view_distance", category = CVarCategory.RENDER, min = 2, max = 64, callback = DistanceFunction.class, display = "Sichtweite", unit = "Chunks")
|
||||
@Variable(name = "chunk_view_distance", category = CVarCategory.RENDER, min = 2, max = 32, callback = DistanceFunction.class, display = "Sichtweite", unit = "Chunks")
|
||||
public int renderDistance = 8;
|
||||
@Variable(name = "chunk_build_time", category = CVarCategory.RENDER, min = 1, max = 100, display = "Zeit für Chunk-Bau", unit = "ms")
|
||||
public int maxBuildTime = 8;
|
||||
@Variable(name = "chunk_light_updates", category = CVarCategory.RENDER, min = 0, max = 10000, display = "Licht-Updates / Frame")
|
||||
private int lightUpdates = 150;
|
||||
@Variable(name = "chunk_light_range", category = CVarCategory.RENDER, min = 5, max = 1024, display = "Radius Licht-Updates")
|
||||
@Variable(name = "chunk_light_range", category = CVarCategory.RENDER, min = 5, max = 512, display = "Radius Licht-Updates")
|
||||
private int lightRange = 32;
|
||||
@Variable(name = "draw_fov", category = CVarCategory.RENDER, min = 20.0f, max = 160.0f, display = "Sichtfeld (FOV)", unit = "°", precision = 1)
|
||||
public float fov = 70.0f;
|
||||
|
|
|
@ -720,7 +720,7 @@ public class ClientPlayer implements IClientPlayer
|
|||
|
||||
for (SPacketMultiBlockChange.BlockUpdateData update : packetIn.getChangedBlocks())
|
||||
{
|
||||
this.world.setState(SPacketMultiBlockChange.getPos(packetIn.getChunkPos(), update.getRawPos()), update.getBlockState());
|
||||
this.world.setState(SPacketMultiBlockChange.getPos(packetIn.getChunkPosX(), packetIn.getChunkPosZ(), update.getRawPos()), update.getBlockState());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ import client.renderer.texture.Sprite;
|
|||
import client.renderer.texture.TextureManager;
|
||||
import client.renderer.texture.TextureMap;
|
||||
import client.renderer.tileentity.SpecialRenderer;
|
||||
import client.util.Vector3f;
|
||||
import client.world.ChunkClient;
|
||||
import common.block.Block;
|
||||
import common.block.Material;
|
||||
|
@ -73,7 +74,6 @@ import common.util.ParticleType;
|
|||
import common.util.Util;
|
||||
import common.util.Vec3;
|
||||
import common.util.Vec3i;
|
||||
import common.util.Vector3f;
|
||||
import common.world.IBlockAccess;
|
||||
import common.world.IWorldAccess;
|
||||
import common.world.State;
|
||||
|
|
|
@ -8,12 +8,12 @@ import java.nio.FloatBuffer;
|
|||
import org.lwjgl.opengl.GL20;
|
||||
|
||||
import client.util.FileUtils;
|
||||
import client.util.Matrix4f;
|
||||
import client.util.Vector3f;
|
||||
import client.util.Vector4f;
|
||||
import common.dimension.Shader;
|
||||
import common.log.Log;
|
||||
import common.util.Matrix4f;
|
||||
import common.util.Vec3;
|
||||
import common.util.Vector3f;
|
||||
import common.util.Vector4f;
|
||||
|
||||
public class ShaderContext {
|
||||
private static final FloatBuffer BUFFER = ByteBuffer.allocateDirect(16 << 2).order(ByteOrder.nativeOrder()).asFloatBuffer();
|
||||
|
|
|
@ -2,8 +2,8 @@ package client.renderer.blockmodel;
|
|||
|
||||
import java.util.Map;
|
||||
|
||||
import client.util.Vector3f;
|
||||
import common.util.Facing;
|
||||
import common.util.Vector3f;
|
||||
|
||||
public class BlockPart
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package client.renderer.blockmodel;
|
||||
|
||||
import client.util.Vector3f;
|
||||
import common.util.Facing;
|
||||
import common.util.Vector3f;
|
||||
|
||||
public class BlockPartRotation {
|
||||
public final Vector3f origin;
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
package client.renderer.blockmodel;
|
||||
|
||||
import client.renderer.texture.Sprite;
|
||||
import client.util.Matrix4f;
|
||||
import client.util.Vector3f;
|
||||
import client.util.Vector4f;
|
||||
import common.model.ModelRotation;
|
||||
import common.util.ExtMath;
|
||||
import common.util.Facing;
|
||||
import common.util.Matrix4f;
|
||||
import common.util.Vec3i;
|
||||
import common.util.Vector3f;
|
||||
import common.util.Vector4f;
|
||||
|
||||
public class FaceBakery
|
||||
{
|
||||
|
@ -64,6 +64,10 @@ public class FaceBakery
|
|||
private static final float SCALE_ROTATION_22_5 = 1.0F / (float)Math.cos(0.39269909262657166D) - 1.0F;
|
||||
private static final float SCALE_ROTATION_GENERAL = 1.0F / (float)Math.cos((Math.PI / 4D)) - 1.0F;
|
||||
|
||||
private static final Matrix4f[] MATRICES = new Matrix4f[ModelRotation.values().length];
|
||||
private static final int[] QUARTERS_X = new int[ModelRotation.values().length];
|
||||
private static final int[] QUARTERS_Y = new int[ModelRotation.values().length];
|
||||
|
||||
static {
|
||||
FACINGS[Constants.DOWN_INDEX] = EnumFaceDirection.DOWN;
|
||||
FACINGS[Constants.UP_INDEX] = EnumFaceDirection.UP;
|
||||
|
@ -71,6 +75,64 @@ public class FaceBakery
|
|||
FACINGS[Constants.SOUTH_INDEX] = EnumFaceDirection.SOUTH;
|
||||
FACINGS[Constants.WEST_INDEX] = EnumFaceDirection.WEST;
|
||||
FACINGS[Constants.EAST_INDEX] = EnumFaceDirection.EAST;
|
||||
|
||||
for(int z = 0; z < ModelRotation.values().length; z++) {
|
||||
ModelRotation rot = ModelRotation.values()[z];
|
||||
MATRICES[z] = new Matrix4f();
|
||||
Matrix4f mat1 = new Matrix4f();
|
||||
mat1.setIdentity();
|
||||
Matrix4f.rotate((float)(-rot.rotX) * 0.017453292F, new Vector3f(1.0F, 0.0F, 0.0F), mat1, mat1);
|
||||
QUARTERS_X[z] = ExtMath.absi(rot.rotX / 90);
|
||||
Matrix4f mat2 = new Matrix4f();
|
||||
mat2.setIdentity();
|
||||
Matrix4f.rotate((float)(-rot.rotY) * 0.017453292F, new Vector3f(0.0F, 1.0F, 0.0F), mat2, mat2);
|
||||
QUARTERS_Y[z] = ExtMath.absi(rot.rotY / 90);
|
||||
Matrix4f.mul(mat2, mat1, MATRICES[z]);
|
||||
}
|
||||
}
|
||||
|
||||
private static Matrix4f getMatrix4d(ModelRotation rot) {
|
||||
return MATRICES[rot.ordinal()];
|
||||
}
|
||||
|
||||
public static Facing rotateFace(ModelRotation rot, Facing face) {
|
||||
Facing dir = face;
|
||||
int qx = QUARTERS_X[rot.ordinal()];
|
||||
int qy = QUARTERS_Y[rot.ordinal()];
|
||||
|
||||
for(int i = 0; i < qx; ++i) {
|
||||
dir = dir.rotateAround(Facing.Axis.X);
|
||||
}
|
||||
|
||||
if(dir.getAxis() != Facing.Axis.Y) {
|
||||
for(int j = 0; j < qy; ++j) {
|
||||
dir = dir.rotateAround(Facing.Axis.Y);
|
||||
}
|
||||
}
|
||||
|
||||
return dir;
|
||||
}
|
||||
|
||||
private static int rotateVertex(ModelRotation rot, Facing face, int index) {
|
||||
int idx = index;
|
||||
int qx = QUARTERS_X[rot.ordinal()];
|
||||
int qy = QUARTERS_Y[rot.ordinal()];
|
||||
|
||||
if(face.getAxis() == Facing.Axis.X) {
|
||||
idx = (index + qx) % 4;
|
||||
}
|
||||
|
||||
Facing dir = face;
|
||||
|
||||
for(int j = 0; j < qx; ++j) {
|
||||
dir = dir.rotateAround(Facing.Axis.X);
|
||||
}
|
||||
|
||||
if(dir.getAxis() == Facing.Axis.Y) {
|
||||
idx = (idx + qy) % 4;
|
||||
}
|
||||
|
||||
return idx;
|
||||
}
|
||||
|
||||
public BakedQuad makeBakedQuad(Vector3f posFrom, Vector3f posTo, BlockPartFace face, Sprite sprite, Facing facing, ModelRotation modelRotationIn, BlockPartRotation partRotation, boolean uvLocked, boolean shade)
|
||||
|
@ -147,7 +209,7 @@ public class FaceBakery
|
|||
|
||||
private void fillVertexData(int[] faceData, int vertexIndex, Facing facing, BlockPartFace partFace, float[] p_178402_5_, Sprite sprite, ModelRotation modelRotationIn, BlockPartRotation partRotation, boolean uvLocked, boolean shade)
|
||||
{
|
||||
Facing enumfacing = modelRotationIn.rotateFace(facing);
|
||||
Facing enumfacing = rotateFace(modelRotationIn, facing);
|
||||
int color = shade ? getFaceShadeColor(enumfacing) : 0xffffffff;
|
||||
VertexInformation enumfacedirection$vertexinformation = EnumFaceDirection.getFacing(facing).getVertexInformation(vertexIndex);
|
||||
Vector3f vector3f = new Vector3f(p_178402_5_[enumfacedirection$vertexinformation.xIndex], p_178402_5_[enumfacedirection$vertexinformation.yIndex], p_178402_5_[enumfacedirection$vertexinformation.zIndex]);
|
||||
|
@ -221,8 +283,8 @@ public class FaceBakery
|
|||
}
|
||||
else
|
||||
{
|
||||
this.rotateScale(position, new Vector3f(0.5F, 0.5F, 0.5F), modelRotationIn.getMatrix4d(), new Vector3f(1.0F, 1.0F, 1.0F));
|
||||
return modelRotationIn.rotateVertex(facing, vertexIndex);
|
||||
this.rotateScale(position, new Vector3f(0.5F, 0.5F, 0.5F), getMatrix4d(modelRotationIn), new Vector3f(1.0F, 1.0F, 1.0F));
|
||||
return rotateVertex(modelRotationIn, facing, vertexIndex);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -233,7 +233,7 @@ public abstract class ModelBakery
|
|||
if (face.cull == null)
|
||||
builder.addGeneralQuad(faceBakery.makeBakedQuad(blockpart.positionFrom, blockpart.positionTo, face, sprite, enumfacing, modelRotationIn, blockpart.partRotation, uvLocked, blockpart.shade));
|
||||
else
|
||||
builder.addFaceQuad(modelRotationIn.rotateFace(face.cull), faceBakery.makeBakedQuad(blockpart.positionFrom, blockpart.positionTo, face, sprite, enumfacing, modelRotationIn, blockpart.partRotation, uvLocked, blockpart.shade));
|
||||
builder.addFaceQuad(FaceBakery.rotateFace(modelRotationIn, face.cull), faceBakery.makeBakedQuad(blockpart.positionFrom, blockpart.positionTo, face, sprite, enumfacing, modelRotationIn, blockpart.partRotation, uvLocked, blockpart.shade));
|
||||
}
|
||||
}
|
||||
return builder.makeBakedModel();
|
||||
|
|
|
@ -3,13 +3,13 @@ package client.renderer.blockmodel;
|
|||
import java.util.List;
|
||||
|
||||
import client.renderer.texture.TextureMap;
|
||||
import client.util.Vector3f;
|
||||
import common.collect.Lists;
|
||||
import common.collect.Maps;
|
||||
import common.model.Model;
|
||||
import common.model.ModelRotation;
|
||||
import common.model.GuiPosition;
|
||||
import common.util.Facing;
|
||||
import common.util.Vector3f;
|
||||
|
||||
public class ModelBlock extends Model {
|
||||
private final List<BlockPart> elements;
|
||||
|
|
|
@ -8,11 +8,11 @@ import client.renderer.model.ModelBox;
|
|||
import client.renderer.texture.Sprite;
|
||||
import client.renderer.texture.TextureMap;
|
||||
import client.renderer.texture.TextureUtil;
|
||||
import client.util.Vector3f;
|
||||
import common.collect.Lists;
|
||||
import common.collect.Maps;
|
||||
import common.log.Log;
|
||||
import common.util.Facing;
|
||||
import common.util.Vector3f;
|
||||
|
||||
public abstract class ModelGenerator {
|
||||
public static List<ModelBox> bakeModel(String textureLocation, int tx, int ty, int tw, int th, float x, float y, float z, int w, int h, int d)
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package common.util;
|
||||
package client.util;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.nio.FloatBuffer;
|
|
@ -29,7 +29,7 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package common.util;
|
||||
package client.util;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.nio.FloatBuffer;
|
|
@ -29,7 +29,7 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package common.util;
|
||||
package client.util;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.nio.FloatBuffer;
|
|
@ -29,7 +29,7 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package common.util;
|
||||
package client.util;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.nio.FloatBuffer;
|
|
@ -3,7 +3,6 @@ package client.world;
|
|||
import common.block.Block;
|
||||
import common.init.Blocks;
|
||||
import common.tileentity.TileEntity;
|
||||
import common.util.Facing;
|
||||
import common.util.LocalPos;
|
||||
import common.world.BlockArray;
|
||||
import common.world.Chunk;
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
package common.model;
|
||||
|
||||
import common.util.ExtMath;
|
||||
import common.util.Facing;
|
||||
import common.util.Matrix4f;
|
||||
import common.util.Vector3f;
|
||||
|
||||
public enum ModelRotation {
|
||||
X0_Y0(0, 0),
|
||||
|
@ -22,62 +19,13 @@ public enum ModelRotation {
|
|||
X270_Y90(270, 90),
|
||||
X270_Y180(270, 180),
|
||||
X270_Y270(270, 270);
|
||||
|
||||
private final Matrix4f matrix4d;
|
||||
private final int quartersX;
|
||||
private final int quartersY;
|
||||
|
||||
public final int rotX;
|
||||
public final int rotY;
|
||||
|
||||
private ModelRotation(int x, int y) {
|
||||
this.matrix4d = new Matrix4f();
|
||||
Matrix4f mat1 = new Matrix4f();
|
||||
mat1.setIdentity();
|
||||
Matrix4f.rotate((float)(-x) * 0.017453292F, new Vector3f(1.0F, 0.0F, 0.0F), mat1, mat1);
|
||||
this.quartersX = ExtMath.absi(x / 90);
|
||||
Matrix4f mat2 = new Matrix4f();
|
||||
mat2.setIdentity();
|
||||
Matrix4f.rotate((float)(-y) * 0.017453292F, new Vector3f(0.0F, 1.0F, 0.0F), mat2, mat2);
|
||||
this.quartersY = ExtMath.absi(y / 90);
|
||||
Matrix4f.mul(mat2, mat1, this.matrix4d);
|
||||
}
|
||||
|
||||
public Matrix4f getMatrix4d() {
|
||||
return this.matrix4d;
|
||||
}
|
||||
|
||||
public Facing rotateFace(Facing face) {
|
||||
Facing dir = face;
|
||||
|
||||
for(int i = 0; i < this.quartersX; ++i) {
|
||||
dir = dir.rotateAround(Facing.Axis.X);
|
||||
}
|
||||
|
||||
if(dir.getAxis() != Facing.Axis.Y) {
|
||||
for(int j = 0; j < this.quartersY; ++j) {
|
||||
dir = dir.rotateAround(Facing.Axis.Y);
|
||||
}
|
||||
}
|
||||
|
||||
return dir;
|
||||
}
|
||||
|
||||
public int rotateVertex(Facing face, int index) {
|
||||
int idx = index;
|
||||
|
||||
if(face.getAxis() == Facing.Axis.X) {
|
||||
idx = (index + this.quartersX) % 4;
|
||||
}
|
||||
|
||||
Facing dir = face;
|
||||
|
||||
for(int j = 0; j < this.quartersX; ++j) {
|
||||
dir = dir.rotateAround(Facing.Axis.X);
|
||||
}
|
||||
|
||||
if(dir.getAxis() == Facing.Axis.Y) {
|
||||
idx = (idx + this.quartersY) % 4;
|
||||
}
|
||||
|
||||
return idx;
|
||||
this.rotX = x;
|
||||
this.rotY = y;
|
||||
}
|
||||
|
||||
public static ModelRotation getNorthRot(Facing face) {
|
||||
|
|
|
@ -25,7 +25,6 @@ import common.packet.CPacketSign;
|
|||
import common.packet.CPacketSkin;
|
||||
import common.util.LocalPos;
|
||||
import common.util.CharValidator;
|
||||
import common.util.ChunkPos;
|
||||
import common.util.PortalType;
|
||||
|
||||
public interface IPlayer extends NetHandler {
|
||||
|
@ -91,7 +90,7 @@ public interface IPlayer extends NetHandler {
|
|||
void setSelectMode();
|
||||
void sendPacket(Packet packet);
|
||||
void setPlayerLocation(double x, double y, double z, float yaw, float pitch);
|
||||
List<ChunkPos> getLoadedChunkList();
|
||||
List getLoadedChunkList();
|
||||
double getManagedX();
|
||||
double getManagedZ();
|
||||
void setManagedPos(double x, double z);
|
||||
|
|
|
@ -7,25 +7,26 @@ import common.network.IClientPlayer;
|
|||
import common.network.Packet;
|
||||
import common.network.PacketBuffer;
|
||||
import common.util.LocalPos;
|
||||
import common.util.ChunkPos;
|
||||
import common.world.State;
|
||||
|
||||
public class SPacketMultiBlockChange implements Packet<IClientPlayer>
|
||||
{
|
||||
private ChunkPos chunkPosCoord;
|
||||
private int chunkPosCoordX;
|
||||
private int chunkPosCoordZ;
|
||||
private SPacketMultiBlockChange.BlockUpdateData[] changedBlocks;
|
||||
|
||||
public static LocalPos getPos(ChunkPos pos, long position)
|
||||
public static LocalPos getPos(int posX, int posZ, long position)
|
||||
{
|
||||
return new LocalPos(new LocalPos((pos.x << 4) + (int)(position >> 36 & 15L), (int)(position & 4294967295L), (pos.z << 4) + (int)(position >> 32 & 15L)));
|
||||
return new LocalPos(new LocalPos((posX << 4) + (int)(position >> 36 & 15L), (int)(position & 4294967295L), (posZ << 4) + (int)(position >> 32 & 15L)));
|
||||
}
|
||||
|
||||
public SPacketMultiBlockChange()
|
||||
{
|
||||
}
|
||||
|
||||
public SPacketMultiBlockChange(ChunkPos pos, SPacketMultiBlockChange.BlockUpdateData[] changes) {
|
||||
this.chunkPosCoord = pos;
|
||||
public SPacketMultiBlockChange(int posX, int posZ, SPacketMultiBlockChange.BlockUpdateData[] changes) {
|
||||
this.chunkPosCoordX = posX;
|
||||
this.chunkPosCoordZ = posZ;
|
||||
this.changedBlocks = changes;
|
||||
}
|
||||
|
||||
|
@ -34,7 +35,8 @@ public class SPacketMultiBlockChange implements Packet<IClientPlayer>
|
|||
*/
|
||||
public void readPacketData(PacketBuffer buf) throws IOException
|
||||
{
|
||||
this.chunkPosCoord = new ChunkPos(buf.readInt(), buf.readInt());
|
||||
this.chunkPosCoordX = buf.readInt();
|
||||
this.chunkPosCoordZ = buf.readInt();
|
||||
this.changedBlocks = new SPacketMultiBlockChange.BlockUpdateData[buf.readVarInt()];
|
||||
|
||||
for (int i = 0; i < this.changedBlocks.length; ++i)
|
||||
|
@ -48,8 +50,8 @@ public class SPacketMultiBlockChange implements Packet<IClientPlayer>
|
|||
*/
|
||||
public void writePacketData(PacketBuffer buf) throws IOException
|
||||
{
|
||||
buf.writeInt(this.chunkPosCoord.x);
|
||||
buf.writeInt(this.chunkPosCoord.z);
|
||||
buf.writeInt(this.chunkPosCoordX);
|
||||
buf.writeInt(this.chunkPosCoordZ);
|
||||
buf.writeVarInt(this.changedBlocks.length);
|
||||
|
||||
for (SPacketMultiBlockChange.BlockUpdateData s22packetmultiblockchange$blockupdatedata : this.changedBlocks)
|
||||
|
@ -72,9 +74,14 @@ public class SPacketMultiBlockChange implements Packet<IClientPlayer>
|
|||
return this.changedBlocks;
|
||||
}
|
||||
|
||||
public ChunkPos getChunkPos()
|
||||
public int getChunkPosX()
|
||||
{
|
||||
return this.chunkPosCoord;
|
||||
return this.chunkPosCoordX;
|
||||
}
|
||||
|
||||
public int getChunkPosZ()
|
||||
{
|
||||
return this.chunkPosCoordZ;
|
||||
}
|
||||
|
||||
public static class BlockUpdateData
|
||||
|
|
|
@ -265,7 +265,7 @@ public abstract class Vars {
|
|||
public static int spawnMoreZombie = 25;
|
||||
@Var(name = "explosionBlocksPerTick", min = 100, max = 10000000)
|
||||
public static int maxExplosionIters = 1000000;
|
||||
@Var(name = "viewDistance", min = 2, max = 64)
|
||||
@Var(name = "viewDistance", min = 2, max = 32)
|
||||
public static int distance = 8;
|
||||
@Var(name = "timeFlow", min = 0)
|
||||
public static int timeFlow = 1;
|
||||
|
|
|
@ -3,7 +3,6 @@ package common.world;
|
|||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import common.block.Block;
|
||||
|
@ -16,7 +15,6 @@ import common.block.natural.BlockSnow;
|
|||
import common.block.tech.BlockAnvil;
|
||||
import common.block.tech.BlockPipe;
|
||||
import common.collect.Lists;
|
||||
import common.collect.Sets;
|
||||
import common.dimension.DimType;
|
||||
import common.dimension.Dimension;
|
||||
import common.entity.Entity;
|
||||
|
@ -31,7 +29,6 @@ import common.tileentity.ITickable;
|
|||
import common.tileentity.TileEntity;
|
||||
import common.util.LocalPos;
|
||||
import common.util.BoundingBox;
|
||||
import common.util.ChunkPos;
|
||||
import common.util.ExtMath;
|
||||
import common.util.Facing;
|
||||
import common.util.HitPosition;
|
||||
|
@ -58,7 +55,6 @@ public abstract class World implements IWorldAccess {
|
|||
public final List<EntityNPC> players = Lists.<EntityNPC>newArrayList();
|
||||
public final List<Entity> effects = Lists.<Entity>newArrayList();
|
||||
public final IntHashMap<Entity> entityIds = new IntHashMap();
|
||||
protected final Set<ChunkPos> active = Sets.<ChunkPos>newHashSet();
|
||||
public final Dimension dimension;
|
||||
|
||||
protected double gravity = 1.0;
|
||||
|
@ -1158,25 +1154,6 @@ public abstract class World implements IWorldAccess {
|
|||
this.temp = this.getBaseTemperature() + this.weather.getTemperature();
|
||||
}
|
||||
|
||||
public Set<ChunkPos> setActiveChunks(int radius) {
|
||||
this.active.clear();
|
||||
for(int n = 0; n < this.players.size(); ++n) {
|
||||
EntityNPC player = (EntityNPC)this.players.get(n);
|
||||
int x = ExtMath.floord(player.posX / 16.0D);
|
||||
int z = ExtMath.floord(player.posZ / 16.0D);
|
||||
for(int cx = -radius; cx <= radius; cx++) {
|
||||
for(int cz = -radius; cz <= radius; cz++) {
|
||||
this.active.add(new ChunkPos(cx + x, cz + z));
|
||||
}
|
||||
}
|
||||
}
|
||||
return this.active;
|
||||
}
|
||||
|
||||
public Set<ChunkPos> getActiveChunks() {
|
||||
return this.active;
|
||||
}
|
||||
|
||||
public float getTempOffset() {
|
||||
return this.temp;
|
||||
}
|
||||
|
|
|
@ -110,7 +110,6 @@ import common.tileentity.Device;
|
|||
import common.tileentity.TileEntitySign;
|
||||
import common.util.LocalPos;
|
||||
import common.util.BoundingBox;
|
||||
import common.util.ChunkPos;
|
||||
import common.util.ExtMath;
|
||||
import common.util.Facing;
|
||||
import common.util.IntHashMap;
|
||||
|
@ -134,6 +133,7 @@ import server.clipboard.RotationRegistry;
|
|||
import server.clipboard.RotationValue;
|
||||
import server.command.Executor;
|
||||
import server.init.UniverseRegistry;
|
||||
import server.util.ChunkPos;
|
||||
import server.util.Form;
|
||||
import server.vars.SVars;
|
||||
import server.world.ChunkServer;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package common.util;
|
||||
package server.util;
|
||||
|
||||
public class ChunkPos {
|
||||
public final int x;
|
|
@ -81,7 +81,7 @@ public abstract class SVars {
|
|||
public static int spawnDungeonMobs = 4;
|
||||
@Var(name = "chunksPerTick", min = 5, max = 1024)
|
||||
public static int chunksPerTick = 10;
|
||||
@Var(name = "updateDistance", min = 2, max = 64)
|
||||
@Var(name = "updateDistance", min = 2, max = 32)
|
||||
public static int updateDistance = 8;
|
||||
|
||||
@Var(name = "password", nonDefault = true)
|
||||
|
|
|
@ -11,9 +11,9 @@ import common.init.Blocks;
|
|||
import common.rng.Random;
|
||||
import common.rng.WeightedList;
|
||||
import common.util.LocalPos;
|
||||
import common.util.ChunkPos;
|
||||
import common.util.ExtMath;
|
||||
import common.world.World;
|
||||
import server.util.ChunkPos;
|
||||
import server.vars.SVars;
|
||||
import server.worldgen.RngSpawn;
|
||||
|
||||
|
|
|
@ -59,7 +59,6 @@ import common.tags.TagObject;
|
|||
import common.tileentity.TileEntity;
|
||||
import common.util.LocalPos;
|
||||
import common.util.BoundingBox;
|
||||
import common.util.ChunkPos;
|
||||
import common.util.ExtMath;
|
||||
import common.util.IntHashMap;
|
||||
import common.util.LongHashMap;
|
||||
|
@ -83,6 +82,7 @@ import server.init.TeleportRegistry;
|
|||
import server.init.UniverseRegistry;
|
||||
import server.network.Player;
|
||||
import server.rng.PerlinGen;
|
||||
import server.util.ChunkPos;
|
||||
import server.vars.SVars;
|
||||
import server.village.VillageCollection;
|
||||
import server.worldgen.ChunkPrimer;
|
||||
|
@ -142,6 +142,7 @@ public final class WorldServer extends AWorldServer {
|
|||
private final Server server;
|
||||
private final File chunkDir;
|
||||
private final Random grng;
|
||||
private final Set<ChunkPos> active = Sets.<ChunkPos>newHashSet();
|
||||
private final Set<NextTickListEntry> ticks = Sets.<NextTickListEntry>newHashSet();
|
||||
private final TreeSet<NextTickListEntry> ticksNext = new TreeSet();
|
||||
private final List<NextTickListEntry> ticksNow = Lists.<NextTickListEntry>newArrayList();
|
||||
|
@ -447,7 +448,18 @@ public final class WorldServer extends AWorldServer {
|
|||
}
|
||||
|
||||
protected void updateBlocks() {
|
||||
this.setActiveChunks(SVars.updateDistance);
|
||||
this.active.clear();
|
||||
int radius = SVars.updateDistance;
|
||||
for(int n = 0; n < this.players.size(); ++n) {
|
||||
EntityNPC player = (EntityNPC)this.players.get(n);
|
||||
int x = ExtMath.floord(player.posX / 16.0D);
|
||||
int z = ExtMath.floord(player.posZ / 16.0D);
|
||||
for(int cx = -radius; cx <= radius; cx++) {
|
||||
for(int cz = -radius; cz <= radius; cz++) {
|
||||
this.active.add(new ChunkPos(cx + x, cz + z));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int dtics = 0;
|
||||
int rtics = 0;
|
||||
|
@ -2590,12 +2602,11 @@ public final class WorldServer extends AWorldServer {
|
|||
}
|
||||
|
||||
private static SPacketMultiBlockChange getPacket(int amount, long[] list, ChunkServer chunk) {
|
||||
ChunkPos pos = new ChunkPos(chunk.xPos, chunk.zPos);
|
||||
SPacketMultiBlockChange.BlockUpdateData[] changes = new SPacketMultiBlockChange.BlockUpdateData[amount];
|
||||
for(int z = 0; z < changes.length; z++) {
|
||||
changes[z] = new SPacketMultiBlockChange.BlockUpdateData(list[z], chunk.getState(SPacketMultiBlockChange.getPos(pos, list[z])));
|
||||
changes[z] = new SPacketMultiBlockChange.BlockUpdateData(list[z], chunk.getState(SPacketMultiBlockChange.getPos(chunk.xPos, chunk.zPos, list[z])));
|
||||
}
|
||||
return new SPacketMultiBlockChange(pos, changes);
|
||||
return new SPacketMultiBlockChange(chunk.xPos, chunk.zPos, changes);
|
||||
}
|
||||
|
||||
public boolean generateBigMushroom(LocalPos pos, State state, Random rand)
|
||||
|
|
|
@ -7,9 +7,9 @@ import common.collect.Maps;
|
|||
import common.rng.Random;
|
||||
import common.tags.TagObject;
|
||||
import common.util.LocalPos;
|
||||
import common.util.ChunkPos;
|
||||
import common.util.LongHashMap;
|
||||
import common.world.World;
|
||||
import server.util.ChunkPos;
|
||||
import server.world.WorldServer;
|
||||
import server.world.WorldServer.WorldSavedData;
|
||||
import server.worldgen.ChunkPrimer;
|
||||
|
|
|
@ -7,7 +7,8 @@ import common.collect.Lists;
|
|||
import common.rng.Random;
|
||||
import common.tags.TagObject;
|
||||
import java.util.List;
|
||||
import common.util.ChunkPos;
|
||||
|
||||
import server.util.ChunkPos;
|
||||
import server.world.WorldServer;
|
||||
|
||||
public abstract class StructureStart
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue