Unified naming schemes for blocks, tiles and registries
- Blocks are now in packages *.world.block - Tiles are now in packages *.world.tile - Renamed WorldRenderable to Renderable - GraphicsInterface now exposes frame counter - ...which is now a long - Removed leftover debug FPS console spam
This commit is contained in:
parent
30e61cf33f
commit
3ff074e384
@ -1,14 +1,7 @@
|
|||||||
package ru.windcorp.progressia.client;
|
package ru.windcorp.progressia.client;
|
||||||
|
|
||||||
import static ru.windcorp.progressia.client.world.renders.BlockRenders.register;
|
import static ru.windcorp.progressia.client.world.block.BlockRenderRegistry.getBlockTexture;
|
||||||
import static ru.windcorp.progressia.client.world.renders.BlockRenders.getBlockTexture;
|
import static ru.windcorp.progressia.client.world.tile.TileRenderRegistry.getTileTexture;
|
||||||
import static ru.windcorp.progressia.client.world.renders.TileRenders.register;
|
|
||||||
import static ru.windcorp.progressia.client.world.renders.TileRenders.getTileTexture;
|
|
||||||
|
|
||||||
import static ru.windcorp.progressia.common.block.BlockDataRegistry.register;
|
|
||||||
import static ru.windcorp.progressia.common.block.TileDataRegistry.register;
|
|
||||||
|
|
||||||
import static ru.windcorp.progressia.server.block.BlockLogicRegistry.register;
|
|
||||||
|
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
|
|
||||||
@ -16,17 +9,23 @@ import glm.vec._3.i.Vec3i;
|
|||||||
import ru.windcorp.progressia.client.comms.controls.ControlTriggerOnKeyPress;
|
import ru.windcorp.progressia.client.comms.controls.ControlTriggerOnKeyPress;
|
||||||
import ru.windcorp.progressia.client.comms.controls.ControlTriggerRegistry;
|
import ru.windcorp.progressia.client.comms.controls.ControlTriggerRegistry;
|
||||||
import ru.windcorp.progressia.client.graphics.input.KeyMatcher;
|
import ru.windcorp.progressia.client.graphics.input.KeyMatcher;
|
||||||
import ru.windcorp.progressia.client.world.renders.*;
|
import ru.windcorp.progressia.client.world.block.*;
|
||||||
import ru.windcorp.progressia.common.block.*;
|
import ru.windcorp.progressia.client.world.tile.TileRender;
|
||||||
|
import ru.windcorp.progressia.client.world.tile.TileRenderGrass;
|
||||||
|
import ru.windcorp.progressia.client.world.tile.TileRenderRegistry;
|
||||||
|
import ru.windcorp.progressia.client.world.tile.TileRenderSimple;
|
||||||
import ru.windcorp.progressia.common.comms.controls.ControlData;
|
import ru.windcorp.progressia.common.comms.controls.ControlData;
|
||||||
import ru.windcorp.progressia.common.comms.controls.ControlDataRegistry;
|
import ru.windcorp.progressia.common.comms.controls.ControlDataRegistry;
|
||||||
import ru.windcorp.progressia.common.comms.controls.PacketControl;
|
import ru.windcorp.progressia.common.comms.controls.PacketControl;
|
||||||
import ru.windcorp.progressia.common.world.ChunkData;
|
import ru.windcorp.progressia.common.world.ChunkData;
|
||||||
|
import ru.windcorp.progressia.common.world.block.*;
|
||||||
|
import ru.windcorp.progressia.common.world.tile.TileData;
|
||||||
|
import ru.windcorp.progressia.common.world.tile.TileDataRegistry;
|
||||||
import ru.windcorp.progressia.server.Server;
|
import ru.windcorp.progressia.server.Server;
|
||||||
import ru.windcorp.progressia.server.block.*;
|
|
||||||
import ru.windcorp.progressia.server.comms.Client;
|
import ru.windcorp.progressia.server.comms.Client;
|
||||||
import ru.windcorp.progressia.server.comms.controls.ControlLogic;
|
import ru.windcorp.progressia.server.comms.controls.ControlLogic;
|
||||||
import ru.windcorp.progressia.server.comms.controls.ControlLogicRegistry;
|
import ru.windcorp.progressia.server.comms.controls.ControlLogicRegistry;
|
||||||
|
import ru.windcorp.progressia.server.world.block.*;
|
||||||
|
|
||||||
public class TestContent {
|
public class TestContent {
|
||||||
|
|
||||||
@ -88,9 +87,9 @@ public class TestContent {
|
|||||||
|
|
||||||
BlockData block;
|
BlockData block;
|
||||||
if (data.getBlock(z000).getId().equals("Test:Stone")) {
|
if (data.getBlock(z000).getId().equals("Test:Stone")) {
|
||||||
block = BlockDataRegistry.get("Test:Glass");
|
block = BlockDataRegistry.getInstance().get("Test:Glass");
|
||||||
} else {
|
} else {
|
||||||
block = BlockDataRegistry.get("Test:Stone");
|
block = BlockDataRegistry.getInstance().get("Test:Stone");
|
||||||
}
|
}
|
||||||
|
|
||||||
server.getAdHocChanger().setBlock(z000, block);
|
server.getAdHocChanger().setBlock(z000, block);
|
||||||
@ -98,4 +97,28 @@ public class TestContent {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void register(BlockData x) {
|
||||||
|
BlockDataRegistry.getInstance().register(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void register(TileData x) {
|
||||||
|
TileDataRegistry.getInstance().register(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void register(BlockRender x) {
|
||||||
|
BlockRenderRegistry.getInstance().register(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void register(TileRender x) {
|
||||||
|
TileRenderRegistry.getInstance().register(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void register(BlockLogic x) {
|
||||||
|
BlockLogicRegistry.getInstance().register(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
// private static void register(TileRender x) {
|
||||||
|
// TileLogicRegistry.getInstance().register(x);
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ public class GraphicsBackend {
|
|||||||
private static final Vec2i FRAME_SIZE = new Vec2i();
|
private static final Vec2i FRAME_SIZE = new Vec2i();
|
||||||
|
|
||||||
private static double frameLength = 1.0 / 60; // TODO do something about it
|
private static double frameLength = 1.0 / 60; // TODO do something about it
|
||||||
private static int framesRendered = 0;
|
private static long framesRendered = 0;
|
||||||
private static double frameStart = Double.NaN;
|
private static double frameStart = Double.NaN;
|
||||||
|
|
||||||
private GraphicsBackend() {}
|
private GraphicsBackend() {}
|
||||||
@ -102,7 +102,7 @@ public class GraphicsBackend {
|
|||||||
return frameLength;
|
return frameLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getFramesRendered() {
|
public static long getFramesRendered() {
|
||||||
return framesRendered;
|
return framesRendered;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,6 +59,10 @@ public class GraphicsInterface {
|
|||||||
return 1 / GraphicsBackend.getFrameLength();
|
return 1 / GraphicsBackend.getFrameLength();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static long getFramesRendered() {
|
||||||
|
return GraphicsBackend.getFramesRendered();
|
||||||
|
}
|
||||||
|
|
||||||
public static void subscribeToInputEvents(Object listener) {
|
public static void subscribeToInputEvents(Object listener) {
|
||||||
InputHandler.register(listener);
|
InputHandler.register(listener);
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ import ru.windcorp.progressia.client.graphics.backend.Usage;
|
|||||||
import ru.windcorp.progressia.client.graphics.model.Face;
|
import ru.windcorp.progressia.client.graphics.model.Face;
|
||||||
import ru.windcorp.progressia.client.graphics.model.Faces;
|
import ru.windcorp.progressia.client.graphics.model.Faces;
|
||||||
import ru.windcorp.progressia.client.graphics.model.Shape;
|
import ru.windcorp.progressia.client.graphics.model.Shape;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
|
|
||||||
public class RenderTarget {
|
public class RenderTarget {
|
||||||
@ -41,12 +41,12 @@ public class RenderTarget {
|
|||||||
|
|
||||||
private final MaskStack masks = new MaskStack();
|
private final MaskStack masks = new MaskStack();
|
||||||
private final Mat4 transform;
|
private final Mat4 transform;
|
||||||
private final WorldRenderable renderable;
|
private final Renderable renderable;
|
||||||
|
|
||||||
public Clip(
|
public Clip(
|
||||||
Iterable<TransformedMask> masks,
|
Iterable<TransformedMask> masks,
|
||||||
Mat4 transform,
|
Mat4 transform,
|
||||||
WorldRenderable renderable
|
Renderable renderable
|
||||||
) {
|
) {
|
||||||
for (TransformedMask mask : masks) {
|
for (TransformedMask mask : masks) {
|
||||||
this.masks.pushMask(mask);
|
this.masks.pushMask(mask);
|
||||||
@ -60,7 +60,7 @@ public class RenderTarget {
|
|||||||
return transform;
|
return transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WorldRenderable getRenderable() {
|
public Renderable getRenderable() {
|
||||||
return renderable;
|
return renderable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ public class RenderTarget {
|
|||||||
return transformStack.getFirst();
|
return transformStack.getFirst();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addCustomRenderer(WorldRenderable renderable) {
|
public void addCustomRenderer(Renderable renderable) {
|
||||||
assembleCurrentClipFromFaces();
|
assembleCurrentClipFromFaces();
|
||||||
assembled.add(new Clip(
|
assembled.add(new Clip(
|
||||||
maskStack, getTransform(), renderable
|
maskStack, getTransform(), renderable
|
||||||
|
@ -2,7 +2,7 @@ package ru.windcorp.progressia.client.graphics.font;
|
|||||||
|
|
||||||
import glm.vec._2.i.Vec2i;
|
import glm.vec._2.i.Vec2i;
|
||||||
import ru.windcorp.progressia.client.graphics.Colors;
|
import ru.windcorp.progressia.client.graphics.Colors;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
|
|
||||||
public class Font {
|
public class Font {
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ public class Font {
|
|||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WorldRenderable assemble(
|
public Renderable assemble(
|
||||||
CharSequence chars, int maxWidth
|
CharSequence chars, int maxWidth
|
||||||
) {
|
) {
|
||||||
return typeface.assemble(chars, style, align, maxWidth, color);
|
return typeface.assemble(chars, style, align, maxWidth, color);
|
||||||
|
@ -11,7 +11,7 @@ import ru.windcorp.progressia.client.graphics.model.Face;
|
|||||||
import ru.windcorp.progressia.client.graphics.model.Faces;
|
import ru.windcorp.progressia.client.graphics.model.Faces;
|
||||||
import ru.windcorp.progressia.client.graphics.model.Shape;
|
import ru.windcorp.progressia.client.graphics.model.Shape;
|
||||||
import ru.windcorp.progressia.client.graphics.model.ShapeRenderProgram;
|
import ru.windcorp.progressia.client.graphics.model.ShapeRenderProgram;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
|
|
||||||
public abstract class SpriteTypeface extends Typeface {
|
public abstract class SpriteTypeface extends Typeface {
|
||||||
@ -64,7 +64,7 @@ public abstract class SpriteTypeface extends Typeface {
|
|||||||
public abstract ShapeRenderProgram getProgram();
|
public abstract ShapeRenderProgram getProgram();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WorldRenderable assemble(
|
public Renderable assemble(
|
||||||
CharSequence chars, int style,
|
CharSequence chars, int style,
|
||||||
float align, int maxWidth,
|
float align, int maxWidth,
|
||||||
int color
|
int color
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package ru.windcorp.progressia.client.graphics.font;
|
package ru.windcorp.progressia.client.graphics.font;
|
||||||
|
|
||||||
import glm.vec._2.i.Vec2i;
|
import glm.vec._2.i.Vec2i;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
import ru.windcorp.progressia.common.util.CoordinatePacker;
|
import ru.windcorp.progressia.common.util.CoordinatePacker;
|
||||||
import ru.windcorp.progressia.common.util.Named;
|
import ru.windcorp.progressia.common.util.Named;
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ public abstract class Typeface extends Named {
|
|||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract WorldRenderable assemble(
|
public abstract Renderable assemble(
|
||||||
CharSequence chars, int style,
|
CharSequence chars, int style,
|
||||||
float align, int maxWidth,
|
float align, int maxWidth,
|
||||||
int color
|
int color
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package ru.windcorp.progressia.client.graphics.model;
|
package ru.windcorp.progressia.client.graphics.model;
|
||||||
|
|
||||||
import static ru.windcorp.progressia.common.block.BlockFace.*;
|
import static ru.windcorp.progressia.common.world.block.BlockFace.*;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
|
||||||
import glm.vec._3.Vec3;
|
import glm.vec._3.Vec3;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
class BlockFaceVectors {
|
class BlockFaceVectors {
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ public abstract class DynamicModel extends Model {
|
|||||||
private final boolean[] dynamics;
|
private final boolean[] dynamics;
|
||||||
|
|
||||||
public DynamicModel(
|
public DynamicModel(
|
||||||
WorldRenderable[] parts,
|
Renderable[] parts,
|
||||||
Mat4[] transforms,
|
Mat4[] transforms,
|
||||||
boolean[] dynamic
|
boolean[] dynamic
|
||||||
) {
|
) {
|
||||||
@ -70,14 +70,14 @@ public abstract class DynamicModel extends Model {
|
|||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
|
|
||||||
private final List<WorldRenderable> parts = new ArrayList<>();
|
private final List<Renderable> parts = new ArrayList<>();
|
||||||
private final List<Mat4> transforms = new ArrayList<>();
|
private final List<Mat4> transforms = new ArrayList<>();
|
||||||
private final List<Boolean> dynamics = new ArrayList<>();
|
private final List<Boolean> dynamics = new ArrayList<>();
|
||||||
|
|
||||||
protected Builder() {}
|
protected Builder() {}
|
||||||
|
|
||||||
private Builder addPart(
|
private Builder addPart(
|
||||||
WorldRenderable part,
|
Renderable part,
|
||||||
Mat4 transform,
|
Mat4 transform,
|
||||||
boolean isDynamic
|
boolean isDynamic
|
||||||
) {
|
) {
|
||||||
@ -89,26 +89,26 @@ public abstract class DynamicModel extends Model {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Builder addStaticPart(
|
public Builder addStaticPart(
|
||||||
WorldRenderable part,
|
Renderable part,
|
||||||
Mat4 transform
|
Mat4 transform
|
||||||
) {
|
) {
|
||||||
return addPart(part, new Mat4(transform), false);
|
return addPart(part, new Mat4(transform), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder addDynamicPart(
|
public Builder addDynamicPart(
|
||||||
WorldRenderable part
|
Renderable part
|
||||||
) {
|
) {
|
||||||
return addPart(part, new Mat4(), true);
|
return addPart(part, new Mat4(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder addStaticPart(
|
public Builder addStaticPart(
|
||||||
WorldRenderable part
|
Renderable part
|
||||||
) {
|
) {
|
||||||
return addStaticPart(part, IDENTITY);
|
return addStaticPart(part, IDENTITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
private WorldRenderable[] getParts() {
|
private Renderable[] getParts() {
|
||||||
return parts.toArray(new WorldRenderable[parts.size()]);
|
return parts.toArray(new Renderable[parts.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Mat4[] getTransforms() {
|
private Mat4[] getTransforms() {
|
||||||
|
@ -24,7 +24,7 @@ public class EmptyModel extends Model {
|
|||||||
private static final EmptyModel INSTANCE = new EmptyModel();
|
private static final EmptyModel INSTANCE = new EmptyModel();
|
||||||
|
|
||||||
private EmptyModel() {
|
private EmptyModel() {
|
||||||
super(new WorldRenderable[0]);
|
super(new Renderable[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EmptyModel getInstance() {
|
public static EmptyModel getInstance() {
|
||||||
|
@ -23,8 +23,8 @@ import glm.vec._2.Vec2;
|
|||||||
import glm.vec._3.Vec3;
|
import glm.vec._3.Vec3;
|
||||||
import ru.windcorp.progressia.client.graphics.model.ShapeRenderProgram.VertexBuilder;
|
import ru.windcorp.progressia.client.graphics.model.ShapeRenderProgram.VertexBuilder;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
|
||||||
import ru.windcorp.progressia.common.util.Vectors;
|
import ru.windcorp.progressia.common.util.Vectors;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
public class Faces {
|
public class Faces {
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ public class LambdaModel extends DynamicModel {
|
|||||||
private final TransformGetter[] getters;
|
private final TransformGetter[] getters;
|
||||||
|
|
||||||
public LambdaModel(
|
public LambdaModel(
|
||||||
WorldRenderable[] parts,
|
Renderable[] parts,
|
||||||
Mat4[] transforms,
|
Mat4[] transforms,
|
||||||
boolean[] dynamic,
|
boolean[] dynamic,
|
||||||
TransformGetter[] getters
|
TransformGetter[] getters
|
||||||
@ -64,7 +64,7 @@ public class LambdaModel extends DynamicModel {
|
|||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
|
|
||||||
private final List<WorldRenderable> parts = new ArrayList<>();
|
private final List<Renderable> parts = new ArrayList<>();
|
||||||
private final List<Mat4> transforms = new ArrayList<>();
|
private final List<Mat4> transforms = new ArrayList<>();
|
||||||
private final List<Boolean> dynamics = new ArrayList<>();
|
private final List<Boolean> dynamics = new ArrayList<>();
|
||||||
private final List<TransformGetter> getters = new ArrayList<>();
|
private final List<TransformGetter> getters = new ArrayList<>();
|
||||||
@ -72,7 +72,7 @@ public class LambdaModel extends DynamicModel {
|
|||||||
protected Builder() {}
|
protected Builder() {}
|
||||||
|
|
||||||
private Builder addPart(
|
private Builder addPart(
|
||||||
WorldRenderable part,
|
Renderable part,
|
||||||
Mat4 transform,
|
Mat4 transform,
|
||||||
TransformGetter getter
|
TransformGetter getter
|
||||||
) {
|
) {
|
||||||
@ -85,27 +85,27 @@ public class LambdaModel extends DynamicModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Builder addStaticPart(
|
public Builder addStaticPart(
|
||||||
WorldRenderable part,
|
Renderable part,
|
||||||
Mat4 transform
|
Mat4 transform
|
||||||
) {
|
) {
|
||||||
return addPart(part, new Mat4(transform), null);
|
return addPart(part, new Mat4(transform), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder addDynamicPart(
|
public Builder addDynamicPart(
|
||||||
WorldRenderable part,
|
Renderable part,
|
||||||
TransformGetter getter
|
TransformGetter getter
|
||||||
) {
|
) {
|
||||||
return addPart(part, new Mat4(), getter);
|
return addPart(part, new Mat4(), getter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder addStaticPart(
|
public Builder addStaticPart(
|
||||||
WorldRenderable part
|
Renderable part
|
||||||
) {
|
) {
|
||||||
return addStaticPart(part, IDENTITY);
|
return addStaticPart(part, IDENTITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
private WorldRenderable[] getParts() {
|
private Renderable[] getParts() {
|
||||||
return parts.toArray(new WorldRenderable[parts.size()]);
|
return parts.toArray(new Renderable[parts.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Mat4[] getTransforms() {
|
private Mat4[] getTransforms() {
|
||||||
|
@ -19,11 +19,11 @@ package ru.windcorp.progressia.client.graphics.model;
|
|||||||
|
|
||||||
import glm.mat._4.Mat4;
|
import glm.mat._4.Mat4;
|
||||||
|
|
||||||
public abstract class Model implements WorldRenderable {
|
public abstract class Model implements Renderable {
|
||||||
|
|
||||||
private final WorldRenderable[] parts;
|
private final Renderable[] parts;
|
||||||
|
|
||||||
public Model(WorldRenderable[] parts) {
|
public Model(Renderable[] parts) {
|
||||||
this.parts = parts;
|
this.parts = parts;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ public abstract class Model implements WorldRenderable {
|
|||||||
@Override
|
@Override
|
||||||
public void render(ShapeRenderHelper helper) {
|
public void render(ShapeRenderHelper helper) {
|
||||||
for (int i = 0; i < parts.length; ++i) {
|
for (int i = 0; i < parts.length; ++i) {
|
||||||
WorldRenderable part = parts[i];
|
Renderable part = parts[i];
|
||||||
Mat4 transform = getTransform(i);
|
Mat4 transform = getTransform(i);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.graphics.model;
|
package ru.windcorp.progressia.client.graphics.model;
|
||||||
|
|
||||||
public interface WorldRenderable {
|
public interface Renderable {
|
||||||
|
|
||||||
void render(ShapeRenderHelper renderer);
|
void render(ShapeRenderHelper renderer);
|
||||||
|
|
@ -25,7 +25,7 @@ import org.lwjgl.BufferUtils;
|
|||||||
import ru.windcorp.progressia.client.graphics.backend.Usage;
|
import ru.windcorp.progressia.client.graphics.backend.Usage;
|
||||||
import ru.windcorp.progressia.client.graphics.backend.VertexBufferObject;
|
import ru.windcorp.progressia.client.graphics.backend.VertexBufferObject;
|
||||||
|
|
||||||
public class Shape implements WorldRenderable {
|
public class Shape implements Renderable {
|
||||||
|
|
||||||
private final ShapeRenderProgram program;
|
private final ShapeRenderProgram program;
|
||||||
private final Face[] faces;
|
private final Face[] faces;
|
||||||
|
@ -30,7 +30,7 @@ public class StaticModel extends Model {
|
|||||||
private final Mat4[] transforms;
|
private final Mat4[] transforms;
|
||||||
|
|
||||||
public StaticModel(
|
public StaticModel(
|
||||||
WorldRenderable[] parts,
|
Renderable[] parts,
|
||||||
Mat4[] transforms
|
Mat4[] transforms
|
||||||
) {
|
) {
|
||||||
super(parts);
|
super(parts);
|
||||||
@ -52,13 +52,13 @@ public class StaticModel extends Model {
|
|||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
|
|
||||||
private final List<WorldRenderable> parts = new ArrayList<>();
|
private final List<Renderable> parts = new ArrayList<>();
|
||||||
private final List<Mat4> transforms = new ArrayList<>();
|
private final List<Mat4> transforms = new ArrayList<>();
|
||||||
|
|
||||||
protected Builder() {}
|
protected Builder() {}
|
||||||
|
|
||||||
public Builder addPart(
|
public Builder addPart(
|
||||||
WorldRenderable part,
|
Renderable part,
|
||||||
Mat4 transform
|
Mat4 transform
|
||||||
) {
|
) {
|
||||||
parts.add(Objects.requireNonNull(part, "part"));
|
parts.add(Objects.requireNonNull(part, "part"));
|
||||||
@ -68,13 +68,13 @@ public class StaticModel extends Model {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Builder addPart(
|
public Builder addPart(
|
||||||
WorldRenderable part
|
Renderable part
|
||||||
) {
|
) {
|
||||||
return addPart(part, IDENTITY);
|
return addPart(part, IDENTITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
private WorldRenderable[] getParts() {
|
private Renderable[] getParts() {
|
||||||
return parts.toArray(new WorldRenderable[parts.size()]);
|
return parts.toArray(new Renderable[parts.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Mat4[] getTransforms() {
|
private Mat4[] getTransforms() {
|
||||||
|
@ -91,10 +91,6 @@ public class LayerWorld extends Layer {
|
|||||||
client.getCamera().move(velCopy);
|
client.getCamera().move(velCopy);
|
||||||
|
|
||||||
Vectors.release(velCopy);
|
Vectors.release(velCopy);
|
||||||
|
|
||||||
if (GraphicsBackend.getFramesRendered() % 60 == 0) {
|
|
||||||
System.out.println(GraphicsInterface.getFPS());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderWorld() {
|
private void renderWorld() {
|
||||||
|
@ -28,20 +28,20 @@ import glm.vec._3.i.Vec3i;
|
|||||||
import ru.windcorp.progressia.client.graphics.model.Model;
|
import ru.windcorp.progressia.client.graphics.model.Model;
|
||||||
import ru.windcorp.progressia.client.graphics.model.ShapeRenderHelper;
|
import ru.windcorp.progressia.client.graphics.model.ShapeRenderHelper;
|
||||||
import ru.windcorp.progressia.client.graphics.model.StaticModel;
|
import ru.windcorp.progressia.client.graphics.model.StaticModel;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
import ru.windcorp.progressia.client.graphics.model.StaticModel.Builder;
|
import ru.windcorp.progressia.client.graphics.model.StaticModel.Builder;
|
||||||
import ru.windcorp.progressia.client.world.renders.BlockRender;
|
import ru.windcorp.progressia.client.world.block.BlockRender;
|
||||||
import ru.windcorp.progressia.client.world.renders.BlockRenderNone;
|
import ru.windcorp.progressia.client.world.block.BlockRenderNone;
|
||||||
import ru.windcorp.progressia.client.world.renders.BlockRenders;
|
import ru.windcorp.progressia.client.world.block.BlockRenderRegistry;
|
||||||
import ru.windcorp.progressia.client.world.renders.TileRender;
|
import ru.windcorp.progressia.client.world.cro.ChunkRenderOptimizer;
|
||||||
import ru.windcorp.progressia.client.world.renders.TileRenders;
|
import ru.windcorp.progressia.client.world.cro.ChunkRenderOptimizerSupplier;
|
||||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizer;
|
import ru.windcorp.progressia.client.world.cro.ChunkRenderOptimizers;
|
||||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizerSupplier;
|
import ru.windcorp.progressia.client.world.tile.TileRender;
|
||||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizers;
|
import ru.windcorp.progressia.client.world.tile.TileRenderRegistry;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
|
||||||
import ru.windcorp.progressia.common.block.TileData;
|
|
||||||
import ru.windcorp.progressia.common.util.Vectors;
|
import ru.windcorp.progressia.common.util.Vectors;
|
||||||
import ru.windcorp.progressia.common.world.ChunkData;
|
import ru.windcorp.progressia.common.world.ChunkData;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
import ru.windcorp.progressia.common.world.tile.TileData;
|
||||||
|
|
||||||
public class ChunkRender {
|
public class ChunkRender {
|
||||||
|
|
||||||
@ -73,7 +73,9 @@ public class ChunkRender {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public BlockRender getBlock(Vec3i posInChunk) {
|
public BlockRender getBlock(Vec3i posInChunk) {
|
||||||
return BlockRenders.get(getData().getBlock(posInChunk).getId());
|
return BlockRenderRegistry.getInstance().get(
|
||||||
|
getData().getBlock(posInChunk).getId()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void render(ShapeRenderHelper renderer) {
|
public void render(ShapeRenderHelper renderer) {
|
||||||
@ -155,7 +157,7 @@ public class ChunkRender {
|
|||||||
Vec3i cursor,
|
Vec3i cursor,
|
||||||
Builder builder
|
Builder builder
|
||||||
) {
|
) {
|
||||||
WorldRenderable renderable = block.createRenderable();
|
Renderable renderable = block.createRenderable();
|
||||||
|
|
||||||
if (renderable == null) {
|
if (renderable == null) {
|
||||||
renderable = block::render;
|
renderable = block::render;
|
||||||
@ -196,7 +198,9 @@ public class ChunkRender {
|
|||||||
|
|
||||||
buildTile(
|
buildTile(
|
||||||
cursor, face,
|
cursor, face,
|
||||||
TileRenders.get(tiles.get(layer).getId()),
|
TileRenderRegistry.getInstance().get(
|
||||||
|
tiles.get(layer).getId()
|
||||||
|
),
|
||||||
layer,
|
layer,
|
||||||
optimizers, builder
|
optimizers, builder
|
||||||
);
|
);
|
||||||
|
@ -15,10 +15,10 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.block;
|
||||||
|
|
||||||
import ru.windcorp.progressia.client.graphics.model.ShapeRenderHelper;
|
import ru.windcorp.progressia.client.graphics.model.ShapeRenderHelper;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
import ru.windcorp.progressia.common.util.Namespaced;
|
import ru.windcorp.progressia.common.util.Namespaced;
|
||||||
|
|
||||||
public abstract class BlockRender extends Namespaced {
|
public abstract class BlockRender extends Namespaced {
|
||||||
@ -33,7 +33,7 @@ public abstract class BlockRender extends Namespaced {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public WorldRenderable createRenderable() {
|
public Renderable createRenderable() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -15,10 +15,10 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.block;
|
||||||
|
|
||||||
import ru.windcorp.progressia.client.graphics.model.EmptyModel;
|
import ru.windcorp.progressia.client.graphics.model.EmptyModel;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
|
|
||||||
public class BlockRenderNone extends BlockRender {
|
public class BlockRenderNone extends BlockRender {
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ public class BlockRenderNone extends BlockRender {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WorldRenderable createRenderable() {
|
public Renderable createRenderable() {
|
||||||
return EmptyModel.getInstance();
|
return EmptyModel.getInstance();
|
||||||
}
|
}
|
||||||
|
|
@ -15,10 +15,10 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.block;
|
||||||
|
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
public class BlockRenderOpaqueCube extends BlockRenderTexturedCube {
|
public class BlockRenderOpaqueCube extends BlockRenderTexturedCube {
|
||||||
|
|
@ -15,33 +15,25 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.block;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Atlases;
|
import ru.windcorp.progressia.client.graphics.texture.Atlases;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Atlases.AtlasGroup;
|
import ru.windcorp.progressia.client.graphics.texture.Atlases.AtlasGroup;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.SimpleTexture;
|
import ru.windcorp.progressia.client.graphics.texture.SimpleTexture;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
import ru.windcorp.progressia.common.resource.ResourceManager;
|
import ru.windcorp.progressia.common.resource.ResourceManager;
|
||||||
|
import ru.windcorp.progressia.common.util.NamespacedRegistry;
|
||||||
|
|
||||||
public class BlockRenders {
|
public class BlockRenderRegistry extends NamespacedRegistry<BlockRender> {
|
||||||
|
|
||||||
private static final Map<String, BlockRender> BLOCK_RENDERS =
|
private static final BlockRenderRegistry INSTANCE =
|
||||||
new HashMap<>();
|
new BlockRenderRegistry();
|
||||||
|
|
||||||
private static final AtlasGroup BLOCKS_ATLAS_GROUP =
|
private static final AtlasGroup BLOCKS_ATLAS_GROUP =
|
||||||
new AtlasGroup("Blocks", 1 << 12);
|
new AtlasGroup("Blocks", 1 << 12);
|
||||||
|
|
||||||
private BlockRenders() {}
|
public static BlockRenderRegistry getInstance() {
|
||||||
|
return INSTANCE;
|
||||||
public static BlockRender get(String name) {
|
|
||||||
return BLOCK_RENDERS.get(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void register(BlockRender blockRender) {
|
|
||||||
BLOCK_RENDERS.put(blockRender.getId(), blockRender);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Texture getBlockTexture(String name) {
|
public static Texture getBlockTexture(String name) {
|
||||||
@ -53,4 +45,8 @@ public class BlockRenders {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static AtlasGroup getBlocksAtlasGroup() {
|
||||||
|
return BLOCKS_ATLAS_GROUP;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -15,19 +15,19 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.block;
|
||||||
|
|
||||||
import static ru.windcorp.progressia.common.block.BlockFace.*;
|
import static ru.windcorp.progressia.common.world.block.BlockFace.*;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import ru.windcorp.progressia.client.graphics.model.Shapes;
|
import ru.windcorp.progressia.client.graphics.model.Shapes;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram;
|
import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram;
|
||||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizerCube.OpaqueCube;
|
import ru.windcorp.progressia.client.world.cro.ChunkRenderOptimizerCube.OpaqueCube;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
public abstract class BlockRenderTexturedCube
|
public abstract class BlockRenderTexturedCube
|
||||||
extends BlockRender
|
extends BlockRender
|
||||||
@ -57,7 +57,7 @@ implements OpaqueCube {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WorldRenderable createRenderable() {
|
public Renderable createRenderable() {
|
||||||
return new Shapes.PppBuilder(
|
return new Shapes.PppBuilder(
|
||||||
WorldRenderProgram.getDefault(),
|
WorldRenderProgram.getDefault(),
|
||||||
getTexture(TOP), getTexture(BOTTOM),
|
getTexture(TOP), getTexture(BOTTOM),
|
@ -15,10 +15,10 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.block;
|
||||||
|
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
public class BlockRenderTransparentCube extends BlockRenderTexturedCube {
|
public class BlockRenderTransparentCube extends BlockRenderTexturedCube {
|
||||||
|
|
@ -15,14 +15,14 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders.cro;
|
package ru.windcorp.progressia.client.world.cro;
|
||||||
|
|
||||||
import glm.vec._3.i.Vec3i;
|
import glm.vec._3.i.Vec3i;
|
||||||
import ru.windcorp.progressia.client.graphics.model.Shape;
|
import ru.windcorp.progressia.client.graphics.model.Shape;
|
||||||
import ru.windcorp.progressia.client.world.ChunkRender;
|
import ru.windcorp.progressia.client.world.ChunkRender;
|
||||||
import ru.windcorp.progressia.client.world.renders.BlockRender;
|
import ru.windcorp.progressia.client.world.block.BlockRender;
|
||||||
import ru.windcorp.progressia.client.world.renders.TileRender;
|
import ru.windcorp.progressia.client.world.tile.TileRender;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
public abstract class ChunkRenderOptimizer {
|
public abstract class ChunkRenderOptimizer {
|
||||||
|
|
@ -15,11 +15,11 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders.cro;
|
package ru.windcorp.progressia.client.world.cro;
|
||||||
|
|
||||||
import static ru.windcorp.progressia.common.block.BlockFace.BLOCK_FACE_COUNT;
|
|
||||||
import static ru.windcorp.progressia.common.world.ChunkData.BLOCKS_PER_CHUNK;
|
import static ru.windcorp.progressia.common.world.ChunkData.BLOCKS_PER_CHUNK;
|
||||||
import static ru.windcorp.progressia.common.world.ChunkData.TILES_PER_FACE;
|
import static ru.windcorp.progressia.common.world.ChunkData.TILES_PER_FACE;
|
||||||
|
import static ru.windcorp.progressia.common.world.block.BlockFace.BLOCK_FACE_COUNT;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -34,10 +34,10 @@ import ru.windcorp.progressia.client.graphics.model.Shape;
|
|||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram;
|
import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram;
|
||||||
import ru.windcorp.progressia.client.world.ChunkRender;
|
import ru.windcorp.progressia.client.world.ChunkRender;
|
||||||
import ru.windcorp.progressia.client.world.renders.BlockRender;
|
import ru.windcorp.progressia.client.world.block.BlockRender;
|
||||||
import ru.windcorp.progressia.client.world.renders.TileRender;
|
import ru.windcorp.progressia.client.world.tile.TileRender;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
|
||||||
import ru.windcorp.progressia.common.util.Vectors;
|
import ru.windcorp.progressia.common.util.Vectors;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
public class ChunkRenderOptimizerCube extends ChunkRenderOptimizer {
|
public class ChunkRenderOptimizerCube extends ChunkRenderOptimizer {
|
||||||
|
|
@ -15,7 +15,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders.cro;
|
package ru.windcorp.progressia.client.world.cro;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
|
|
@ -15,7 +15,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders.cro;
|
package ru.windcorp.progressia.client.world.cro;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
@ -1,10 +1,10 @@
|
|||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.tile;
|
||||||
|
|
||||||
import ru.windcorp.progressia.client.graphics.model.ShapeRenderHelper;
|
import ru.windcorp.progressia.client.graphics.model.ShapeRenderHelper;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizer;
|
import ru.windcorp.progressia.client.world.cro.ChunkRenderOptimizer;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
|
||||||
import ru.windcorp.progressia.common.util.Namespaced;
|
import ru.windcorp.progressia.common.util.Namespaced;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
public class TileRender extends Namespaced {
|
public class TileRender extends Namespaced {
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ public class TileRender extends Namespaced {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public WorldRenderable createRenderable(BlockFace face) {
|
public Renderable createRenderable(BlockFace face) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -1,16 +1,16 @@
|
|||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.tile;
|
||||||
|
|
||||||
import glm.vec._3.Vec3;
|
import glm.vec._3.Vec3;
|
||||||
import ru.windcorp.progressia.client.graphics.backend.Usage;
|
import ru.windcorp.progressia.client.graphics.backend.Usage;
|
||||||
import ru.windcorp.progressia.client.graphics.model.Faces;
|
import ru.windcorp.progressia.client.graphics.model.Faces;
|
||||||
import ru.windcorp.progressia.client.graphics.model.Shape;
|
import ru.windcorp.progressia.client.graphics.model.Shape;
|
||||||
import ru.windcorp.progressia.client.graphics.model.ShapeRenderProgram;
|
import ru.windcorp.progressia.client.graphics.model.ShapeRenderProgram;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram;
|
import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram;
|
||||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizerCube.OpaqueTile;
|
import ru.windcorp.progressia.client.world.cro.ChunkRenderOptimizerCube.OpaqueTile;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
|
||||||
import ru.windcorp.progressia.common.util.Vectors;
|
import ru.windcorp.progressia.common.util.Vectors;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
public class TileRenderGrass extends TileRender implements OpaqueTile {
|
public class TileRenderGrass extends TileRender implements OpaqueTile {
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ public class TileRenderGrass extends TileRender implements OpaqueTile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WorldRenderable createRenderable(BlockFace face) {
|
public Renderable createRenderable(BlockFace face) {
|
||||||
ShapeRenderProgram program = WorldRenderProgram.getDefault();
|
ShapeRenderProgram program = WorldRenderProgram.getDefault();
|
||||||
|
|
||||||
Vec3 color = Vectors.grab3().set(1, 1, 1);
|
Vec3 color = Vectors.grab3().set(1, 1, 1);
|
@ -15,33 +15,28 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.tile;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Atlases;
|
import ru.windcorp.progressia.client.graphics.texture.Atlases;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Atlases.AtlasGroup;
|
import ru.windcorp.progressia.client.graphics.texture.Atlases.AtlasGroup;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.SimpleTexture;
|
import ru.windcorp.progressia.client.graphics.texture.SimpleTexture;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
import ru.windcorp.progressia.common.resource.ResourceManager;
|
import ru.windcorp.progressia.common.resource.ResourceManager;
|
||||||
|
import ru.windcorp.progressia.common.util.NamespacedRegistry;
|
||||||
|
|
||||||
public class TileRenders {
|
public class TileRenderRegistry extends NamespacedRegistry<TileRender> {
|
||||||
|
|
||||||
private static final Map<String, TileRender> TILE_RENDERS =
|
private static final TileRenderRegistry INSTANCE = new TileRenderRegistry();
|
||||||
new HashMap<>();
|
|
||||||
|
|
||||||
private static final AtlasGroup TILES_ATLAS_GROUP =
|
private static final AtlasGroup TILES_ATLAS_GROUP =
|
||||||
new AtlasGroup("Tiles", 1 << 12);
|
new AtlasGroup("Tiles", 1 << 12);
|
||||||
|
|
||||||
private TileRenders() {}
|
public static TileRenderRegistry getInstance() {
|
||||||
|
return INSTANCE;
|
||||||
public static TileRender get(String name) {
|
|
||||||
return TILE_RENDERS.get(name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void register(TileRender tileRender) {
|
public static AtlasGroup getTilesAtlasGroup() {
|
||||||
TILE_RENDERS.put(tileRender.getId(), tileRender);
|
return TILES_ATLAS_GROUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Texture getTileTexture(String name) {
|
public static Texture getTileTexture(String name) {
|
@ -1,16 +1,16 @@
|
|||||||
package ru.windcorp.progressia.client.world.renders;
|
package ru.windcorp.progressia.client.world.tile;
|
||||||
|
|
||||||
import glm.vec._3.Vec3;
|
import glm.vec._3.Vec3;
|
||||||
import ru.windcorp.progressia.client.graphics.backend.Usage;
|
import ru.windcorp.progressia.client.graphics.backend.Usage;
|
||||||
import ru.windcorp.progressia.client.graphics.model.Faces;
|
import ru.windcorp.progressia.client.graphics.model.Faces;
|
||||||
import ru.windcorp.progressia.client.graphics.model.Shape;
|
import ru.windcorp.progressia.client.graphics.model.Shape;
|
||||||
import ru.windcorp.progressia.client.graphics.model.ShapeRenderProgram;
|
import ru.windcorp.progressia.client.graphics.model.ShapeRenderProgram;
|
||||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
import ru.windcorp.progressia.client.graphics.model.Renderable;
|
||||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||||
import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram;
|
import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram;
|
||||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizerCube.OpaqueTile;
|
import ru.windcorp.progressia.client.world.cro.ChunkRenderOptimizerCube.OpaqueTile;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
|
||||||
import ru.windcorp.progressia.common.util.Vectors;
|
import ru.windcorp.progressia.common.util.Vectors;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
|
||||||
public class TileRenderSimple extends TileRender implements OpaqueTile {
|
public class TileRenderSimple extends TileRender implements OpaqueTile {
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ public class TileRenderSimple extends TileRender implements OpaqueTile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WorldRenderable createRenderable(BlockFace face) {
|
public Renderable createRenderable(BlockFace face) {
|
||||||
ShapeRenderProgram program = WorldRenderProgram.getDefault();
|
ShapeRenderProgram program = WorldRenderProgram.getDefault();
|
||||||
|
|
||||||
Vec3 color = Vectors.grab3().set(1, 1, 1);
|
Vec3 color = Vectors.grab3().set(1, 1, 1);
|
@ -17,7 +17,7 @@
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.common.world;
|
package ru.windcorp.progressia.common.world;
|
||||||
|
|
||||||
import static ru.windcorp.progressia.common.block.BlockFace.*;
|
import static ru.windcorp.progressia.common.world.block.BlockFace.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -26,14 +26,14 @@ import java.util.function.Consumer;
|
|||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
import glm.vec._3.i.Vec3i;
|
import glm.vec._3.i.Vec3i;
|
||||||
import ru.windcorp.progressia.common.block.BlockData;
|
|
||||||
import ru.windcorp.progressia.common.block.BlockDataRegistry;
|
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
|
||||||
import ru.windcorp.progressia.common.block.TileData;
|
|
||||||
import ru.windcorp.progressia.common.block.TileDataRegistry;
|
|
||||||
import ru.windcorp.progressia.common.util.SizeLimitedList;
|
import ru.windcorp.progressia.common.util.SizeLimitedList;
|
||||||
import ru.windcorp.progressia.common.util.VectorUtil;
|
import ru.windcorp.progressia.common.util.VectorUtil;
|
||||||
import ru.windcorp.progressia.common.util.Vectors;
|
import ru.windcorp.progressia.common.util.Vectors;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockData;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockDataRegistry;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
import ru.windcorp.progressia.common.world.tile.TileData;
|
||||||
|
import ru.windcorp.progressia.common.world.tile.TileDataRegistry;
|
||||||
|
|
||||||
public class ChunkData {
|
public class ChunkData {
|
||||||
|
|
||||||
@ -61,14 +61,14 @@ public class ChunkData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void tmp_generate() {
|
private void tmp_generate() {
|
||||||
BlockData dirt = BlockDataRegistry.get("Test:Dirt");
|
BlockData dirt = BlockDataRegistry.getInstance().get("Test:Dirt");
|
||||||
BlockData stone = BlockDataRegistry.get("Test:Stone");
|
BlockData stone = BlockDataRegistry.getInstance().get("Test:Stone");
|
||||||
BlockData air = BlockDataRegistry.get("Test:Air");
|
BlockData air = BlockDataRegistry.getInstance().get("Test:Air");
|
||||||
|
|
||||||
TileData grass = TileDataRegistry.get("Test:Grass");
|
TileData grass = TileDataRegistry.getInstance().get("Test:Grass");
|
||||||
TileData stones = TileDataRegistry.get("Test:Stones");
|
TileData stones = TileDataRegistry.getInstance().get("Test:Stones");
|
||||||
TileData flowers = TileDataRegistry.get("Test:YellowFlowers");
|
TileData flowers = TileDataRegistry.getInstance().get("Test:YellowFlowers");
|
||||||
TileData sand = TileDataRegistry.get("Test:Sand");
|
TileData sand = TileDataRegistry.getInstance().get("Test:Sand");
|
||||||
|
|
||||||
Vec3i aPoint = new Vec3i(5, 0, BLOCKS_PER_CHUNK + BLOCKS_PER_CHUNK/2);
|
Vec3i aPoint = new Vec3i(5, 0, BLOCKS_PER_CHUNK + BLOCKS_PER_CHUNK/2);
|
||||||
Vec3i pos = new Vec3i();
|
Vec3i pos = new Vec3i();
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.common.block;
|
package ru.windcorp.progressia.common.world.block;
|
||||||
|
|
||||||
import ru.windcorp.progressia.common.util.Namespaced;
|
import ru.windcorp.progressia.common.util.Namespaced;
|
||||||
|
|
@ -15,21 +15,16 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.common.block;
|
package ru.windcorp.progressia.common.world.block;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import ru.windcorp.progressia.common.util.NamespacedRegistry;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class BlockDataRegistry {
|
public class BlockDataRegistry extends NamespacedRegistry<BlockData> {
|
||||||
|
|
||||||
private static final Map<String, BlockData> REGISTRY = new HashMap<>();
|
private static final BlockDataRegistry INSTANCE = new BlockDataRegistry();
|
||||||
|
|
||||||
public static BlockData get(String name) {
|
public static BlockDataRegistry getInstance() {
|
||||||
return REGISTRY.get(name);
|
return INSTANCE;
|
||||||
}
|
|
||||||
|
|
||||||
public static void register(BlockData blockData) {
|
|
||||||
REGISTRY.put(blockData.getId(), blockData);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -15,7 +15,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.common.block;
|
package ru.windcorp.progressia.common.world.block;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package ru.windcorp.progressia.common.block;
|
package ru.windcorp.progressia.common.world.block;
|
||||||
|
|
||||||
import static java.lang.Math.abs;
|
import static java.lang.Math.abs;
|
||||||
import static java.lang.Math.max;
|
import static java.lang.Math.max;
|
@ -15,7 +15,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.common.block;
|
package ru.windcorp.progressia.common.world.tile;
|
||||||
|
|
||||||
import ru.windcorp.progressia.common.util.Namespaced;
|
import ru.windcorp.progressia.common.util.Namespaced;
|
||||||
|
|
@ -15,21 +15,16 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package ru.windcorp.progressia.common.block;
|
package ru.windcorp.progressia.common.world.tile;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import ru.windcorp.progressia.common.util.NamespacedRegistry;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class TileDataRegistry {
|
public class TileDataRegistry extends NamespacedRegistry<TileData> {
|
||||||
|
|
||||||
private static final Map<String, TileData> REGISTRY = new HashMap<>();
|
private static final TileDataRegistry INSTANCE = new TileDataRegistry();
|
||||||
|
|
||||||
public static TileData get(String name) {
|
public static TileDataRegistry getInstance() {
|
||||||
return REGISTRY.get(name);
|
return INSTANCE;
|
||||||
}
|
|
||||||
|
|
||||||
public static void register(TileData tileData) {
|
|
||||||
REGISTRY.put(tileData.getId(), tileData);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,18 +0,0 @@
|
|||||||
package ru.windcorp.progressia.server.block;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class BlockLogicRegistry {
|
|
||||||
|
|
||||||
private static final Map<String, BlockLogic> REGISTRY = new HashMap<>();
|
|
||||||
|
|
||||||
public static BlockLogic get(String name) {
|
|
||||||
return REGISTRY.get(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void register(BlockLogic blockLogic) {
|
|
||||||
REGISTRY.put(blockLogic.getId(), blockLogic);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,9 +1,9 @@
|
|||||||
package ru.windcorp.progressia.server.world;
|
package ru.windcorp.progressia.server.world;
|
||||||
|
|
||||||
import glm.vec._3.i.Vec3i;
|
import glm.vec._3.i.Vec3i;
|
||||||
import ru.windcorp.progressia.common.block.BlockData;
|
import ru.windcorp.progressia.common.world.block.BlockData;
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
import ru.windcorp.progressia.common.block.TileData;
|
import ru.windcorp.progressia.common.world.tile.TileData;
|
||||||
|
|
||||||
public interface Changer {
|
public interface Changer {
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@ import java.util.function.BiConsumer;
|
|||||||
|
|
||||||
import glm.vec._3.i.Vec3i;
|
import glm.vec._3.i.Vec3i;
|
||||||
import ru.windcorp.progressia.common.world.ChunkData;
|
import ru.windcorp.progressia.common.world.ChunkData;
|
||||||
import ru.windcorp.progressia.server.block.BlockLogic;
|
import ru.windcorp.progressia.server.world.block.BlockLogic;
|
||||||
import ru.windcorp.progressia.server.block.BlockLogicRegistry;
|
import ru.windcorp.progressia.server.world.block.BlockLogicRegistry;
|
||||||
import ru.windcorp.progressia.server.block.Tickable;
|
import ru.windcorp.progressia.server.world.block.Tickable;
|
||||||
|
|
||||||
public class ChunkLogic {
|
public class ChunkLogic {
|
||||||
|
|
||||||
@ -63,7 +63,9 @@ public class ChunkLogic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public BlockLogic getBlock(Vec3i blockInChunk) {
|
public BlockLogic getBlock(Vec3i blockInChunk) {
|
||||||
return BlockLogicRegistry.get(getData().getBlock(blockInChunk).getId());
|
return BlockLogicRegistry.getInstance().get(
|
||||||
|
getData().getBlock(blockInChunk).getId()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,15 +5,15 @@ import java.util.List;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import glm.vec._3.i.Vec3i;
|
import glm.vec._3.i.Vec3i;
|
||||||
import ru.windcorp.progressia.common.block.BlockData;
|
|
||||||
import ru.windcorp.progressia.common.block.BlockFace;
|
|
||||||
import ru.windcorp.progressia.common.block.TileData;
|
|
||||||
import ru.windcorp.progressia.common.comms.packets.Packet;
|
import ru.windcorp.progressia.common.comms.packets.Packet;
|
||||||
import ru.windcorp.progressia.common.comms.packets.PacketWorldChange;
|
import ru.windcorp.progressia.common.comms.packets.PacketWorldChange;
|
||||||
import ru.windcorp.progressia.common.util.LowOverheadCache;
|
import ru.windcorp.progressia.common.util.LowOverheadCache;
|
||||||
import ru.windcorp.progressia.common.util.Vectors;
|
import ru.windcorp.progressia.common.util.Vectors;
|
||||||
import ru.windcorp.progressia.common.world.Coordinates;
|
import ru.windcorp.progressia.common.world.Coordinates;
|
||||||
import ru.windcorp.progressia.common.world.WorldData;
|
import ru.windcorp.progressia.common.world.WorldData;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockData;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockFace;
|
||||||
|
import ru.windcorp.progressia.common.world.tile.TileData;
|
||||||
import ru.windcorp.progressia.server.Server;
|
import ru.windcorp.progressia.server.Server;
|
||||||
|
|
||||||
public class ImplementedChangeTracker implements Changer {
|
public class ImplementedChangeTracker implements Changer {
|
||||||
|
@ -4,7 +4,7 @@ import glm.vec._3.i.Vec3i;
|
|||||||
import ru.windcorp.progressia.common.util.Vectors;
|
import ru.windcorp.progressia.common.util.Vectors;
|
||||||
import ru.windcorp.progressia.common.world.Coordinates;
|
import ru.windcorp.progressia.common.world.Coordinates;
|
||||||
import ru.windcorp.progressia.server.Server;
|
import ru.windcorp.progressia.server.Server;
|
||||||
import ru.windcorp.progressia.server.block.BlockTickContext;
|
import ru.windcorp.progressia.server.world.block.BlockTickContext;
|
||||||
|
|
||||||
public class MutableBlockTickContext implements BlockTickContext {
|
public class MutableBlockTickContext implements BlockTickContext {
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package ru.windcorp.progressia.server.world;
|
package ru.windcorp.progressia.server.world;
|
||||||
|
|
||||||
import ru.windcorp.progressia.server.Server;
|
import ru.windcorp.progressia.server.Server;
|
||||||
import ru.windcorp.progressia.server.block.Tickable;
|
import ru.windcorp.progressia.server.world.block.Tickable;
|
||||||
|
|
||||||
public class Ticker implements Runnable {
|
public class Ticker implements Runnable {
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package ru.windcorp.progressia.server.block;
|
package ru.windcorp.progressia.server.world.block;
|
||||||
|
|
||||||
import ru.windcorp.progressia.common.util.Namespaced;
|
import ru.windcorp.progressia.common.util.Namespaced;
|
||||||
|
|
@ -0,0 +1,13 @@
|
|||||||
|
package ru.windcorp.progressia.server.world.block;
|
||||||
|
|
||||||
|
import ru.windcorp.progressia.common.util.NamespacedRegistry;
|
||||||
|
|
||||||
|
public class BlockLogicRegistry extends NamespacedRegistry<BlockLogic> {
|
||||||
|
|
||||||
|
private static final BlockLogicRegistry INSTANCE = new BlockLogicRegistry();
|
||||||
|
|
||||||
|
public static BlockLogicRegistry getInstance() {
|
||||||
|
return INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
package ru.windcorp.progressia.server.block;
|
package ru.windcorp.progressia.server.world.block;
|
||||||
|
|
||||||
import glm.vec._3.i.Vec3i;
|
import glm.vec._3.i.Vec3i;
|
||||||
import ru.windcorp.progressia.common.block.BlockData;
|
import ru.windcorp.progressia.common.world.block.BlockData;
|
||||||
import ru.windcorp.progressia.server.world.ChunkTickContext;
|
import ru.windcorp.progressia.server.world.ChunkTickContext;
|
||||||
|
|
||||||
public interface BlockTickContext extends ChunkTickContext {
|
public interface BlockTickContext extends ChunkTickContext {
|
@ -1,9 +1,9 @@
|
|||||||
package ru.windcorp.progressia.server.block;
|
package ru.windcorp.progressia.server.world.block;
|
||||||
|
|
||||||
import glm.vec._3.i.Vec3i;
|
import glm.vec._3.i.Vec3i;
|
||||||
import ru.windcorp.progressia.common.block.BlockData;
|
|
||||||
import ru.windcorp.progressia.common.world.ChunkData;
|
import ru.windcorp.progressia.common.world.ChunkData;
|
||||||
import ru.windcorp.progressia.common.world.WorldData;
|
import ru.windcorp.progressia.common.world.WorldData;
|
||||||
|
import ru.windcorp.progressia.common.world.block.BlockData;
|
||||||
import ru.windcorp.progressia.server.Server;
|
import ru.windcorp.progressia.server.Server;
|
||||||
import ru.windcorp.progressia.server.world.ChunkLogic;
|
import ru.windcorp.progressia.server.world.ChunkLogic;
|
||||||
import ru.windcorp.progressia.server.world.WorldLogic;
|
import ru.windcorp.progressia.server.world.WorldLogic;
|
@ -1,4 +1,4 @@
|
|||||||
package ru.windcorp.progressia.server.block;
|
package ru.windcorp.progressia.server.world.block;
|
||||||
|
|
||||||
import ru.windcorp.progressia.server.world.Changer;
|
import ru.windcorp.progressia.server.world.Changer;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package ru.windcorp.progressia.server.block;
|
package ru.windcorp.progressia.server.world.block;
|
||||||
|
|
||||||
import ru.windcorp.progressia.server.world.Changer;
|
import ru.windcorp.progressia.server.world.Changer;
|
||||||
|
|
Reference in New Issue
Block a user