diff --git a/bukkit/src/main/java/com/volmit/iris/platform/bukkit/IrisBukkitChunkGenerator.java b/bukkit/src/main/java/com/volmit/iris/platform/bukkit/IrisBukkitChunkGenerator.java index 7b0121c84..f63b46383 100644 --- a/bukkit/src/main/java/com/volmit/iris/platform/bukkit/IrisBukkitChunkGenerator.java +++ b/bukkit/src/main/java/com/volmit/iris/platform/bukkit/IrisBukkitChunkGenerator.java @@ -9,7 +9,7 @@ import com.volmit.iris.engine.feature.FeatureSizedTarget; import com.volmit.iris.engine.feature.FeatureTarget; import com.volmit.iris.engine.pipeline.PipedHunkStack; import com.volmit.iris.platform.IrisPlatform; -import com.volmit.iris.platform.PlatformBlock; +import com.volmit.iris.platform.block.PlatformBlock; import com.volmit.iris.platform.bukkit.wrapper.BukkitWorld; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/bukkit/src/main/java/com/volmit/iris/platform/bukkit/util/ChunkDataHunkView.java b/bukkit/src/main/java/com/volmit/iris/platform/bukkit/util/ChunkDataHunkView.java index b2c3e0db5..f28316981 100644 --- a/bukkit/src/main/java/com/volmit/iris/platform/bukkit/util/ChunkDataHunkView.java +++ b/bukkit/src/main/java/com/volmit/iris/platform/bukkit/util/ChunkDataHunkView.java @@ -1,7 +1,7 @@ package com.volmit.iris.platform.bukkit.util; import art.arcane.spatial.hunk.Hunk; -import com.volmit.iris.platform.PlatformBlock; +import com.volmit.iris.platform.block.PlatformBlock; import com.volmit.iris.platform.bukkit.wrapper.BukkitBlock; import org.bukkit.generator.ChunkGenerator; diff --git a/bukkit/src/main/java/com/volmit/iris/platform/bukkit/wrapper/BukkitBlock.java b/bukkit/src/main/java/com/volmit/iris/platform/bukkit/wrapper/BukkitBlock.java index 4f78ef6e8..5f2036438 100644 --- a/bukkit/src/main/java/com/volmit/iris/platform/bukkit/wrapper/BukkitBlock.java +++ b/bukkit/src/main/java/com/volmit/iris/platform/bukkit/wrapper/BukkitBlock.java @@ -2,9 +2,12 @@ package com.volmit.iris.platform.bukkit.wrapper; import com.volmit.iris.platform.PlatformBlock; import com.volmit.iris.platform.PlatformNamespaceKey; +import com.volmit.iris.platform.block.PlatformAgeable; +import com.volmit.iris.platform.block.PlatformBlock; import lombok.Data; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.block.data.Ageable; import org.bukkit.block.data.BlockData; import java.util.Collections; diff --git a/bukkit/src/main/java/com/volmit/iris/platform/bukkit/wrapper/BukkitWorld.java b/bukkit/src/main/java/com/volmit/iris/platform/bukkit/wrapper/BukkitWorld.java index 68d093483..3f1244202 100644 --- a/bukkit/src/main/java/com/volmit/iris/platform/bukkit/wrapper/BukkitWorld.java +++ b/bukkit/src/main/java/com/volmit/iris/platform/bukkit/wrapper/BukkitWorld.java @@ -1,7 +1,7 @@ package com.volmit.iris.platform.bukkit.wrapper; import com.volmit.iris.platform.PlatformBiome; -import com.volmit.iris.platform.PlatformBlock; +import com.volmit.iris.platform.block.PlatformBlock; import com.volmit.iris.platform.PlatformChunk; import com.volmit.iris.platform.PlatformPlayer; import com.volmit.iris.platform.PlatformWorld; diff --git a/engine/src/main/java/com/volmit/iris/engine/Engine.java b/engine/src/main/java/com/volmit/iris/engine/Engine.java index c3c031cc4..7c73c7765 100644 --- a/engine/src/main/java/com/volmit/iris/engine/Engine.java +++ b/engine/src/main/java/com/volmit/iris/engine/Engine.java @@ -1,18 +1,15 @@ package com.volmit.iris.engine; -import art.arcane.chrono.PrecisionStopwatch; -import com.volmit.iris.engine.dimension.IrisBiome; import com.volmit.iris.engine.feature.features.FeatureTerrain; import com.volmit.iris.engine.pipeline.EnginePipeline; import com.volmit.iris.engine.pipeline.EnginePlumbing; import com.volmit.iris.engine.pipeline.PipelinePhase; import com.volmit.iris.engine.pipeline.PipelineTask; import com.volmit.iris.platform.IrisPlatform; -import com.volmit.iris.platform.PlatformBlock; +import com.volmit.iris.platform.block.PlatformBlock; import com.volmit.iris.platform.PlatformNamespaceKey; import com.volmit.iris.platform.PlatformRegistry; import com.volmit.iris.platform.PlatformWorld; -import com.volmit.iris.util.NSK; import lombok.Data; import manifold.util.concurrent.ConcurrentWeakHashMap; diff --git a/engine/src/main/java/com/volmit/iris/engine/feature/features/FeatureTerrain.java b/engine/src/main/java/com/volmit/iris/engine/feature/features/FeatureTerrain.java index 08be53c6b..a3e970da3 100644 --- a/engine/src/main/java/com/volmit/iris/engine/feature/features/FeatureTerrain.java +++ b/engine/src/main/java/com/volmit/iris/engine/feature/features/FeatureTerrain.java @@ -1,6 +1,5 @@ package com.volmit.iris.engine.feature.features; -import art.arcane.amulet.range.IntegerRange; import art.arcane.source.NoisePlane; import art.arcane.source.util.NoisePreset; import com.volmit.iris.engine.Engine; diff --git a/engine/src/main/java/com/volmit/iris/engine/network/Network.java b/engine/src/main/java/com/volmit/iris/engine/network/Network.java new file mode 100644 index 000000000..35d2f3fb3 --- /dev/null +++ b/engine/src/main/java/com/volmit/iris/engine/network/Network.java @@ -0,0 +1,4 @@ +package com.volmit.iris.engine.network; + +public class Network { +} diff --git a/engine/src/main/java/com/volmit/iris/engine/network/server/EngineServer.java b/engine/src/main/java/com/volmit/iris/engine/network/server/EngineServer.java new file mode 100644 index 000000000..7ed1cda06 --- /dev/null +++ b/engine/src/main/java/com/volmit/iris/engine/network/server/EngineServer.java @@ -0,0 +1,45 @@ +package com.volmit.iris.engine.network.server; + +import com.volmit.iris.engine.Engine; + +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; +import java.net.SocketTimeoutException; +import java.util.HashMap; +import java.util.Map; + +public class EngineServer extends Thread { + private final Engine engine; + private final ServerSocket server; + private final Map connections; + + public EngineServer(Engine engine, int bindPort) throws IOException { + this.engine = engine; + this.connections = new HashMap<>(); + this.server = new ServerSocket(bindPort); + this.server.setPerformancePreferences(0, 0, 1); + this.server.setSoTimeout(5000); + } + + public void run() { + while(!interrupted()) { + try { + Socket socket = server.accept(); + EngineServerConnection connection = new EngineServerConnection(this, socket); + connections.put(connection.getConnectionId(), connection); + } + catch(SocketTimeoutException e) { + continue; + } catch (Throwable e) { + throw new RuntimeException(e); + } + } + } + + public void close() + { + this.interrupt(); + server.close(); + } +} diff --git a/engine/src/main/java/com/volmit/iris/engine/network/server/EngineServerConnection.java b/engine/src/main/java/com/volmit/iris/engine/network/server/EngineServerConnection.java new file mode 100644 index 000000000..ee16b133c --- /dev/null +++ b/engine/src/main/java/com/volmit/iris/engine/network/server/EngineServerConnection.java @@ -0,0 +1,19 @@ +package com.volmit.iris.engine.network.server; + +import lombok.Getter; + +import java.net.Socket; +import java.util.UUID; + +@Getter +public class EngineServerConnection extends Thread { + private final EngineServer server; + private final Socket socket; + private final UUID connectionId; + + public EngineServerConnection(EngineServer server, Socket socket) { + this.server = server; + this.socket = socket; + this.connectionId = UUID.randomUUID(); + } +} diff --git a/engine/src/main/java/com/volmit/iris/platform/PlatformBlock.java b/engine/src/main/java/com/volmit/iris/platform/block/PlatformBlock.java similarity index 57% rename from engine/src/main/java/com/volmit/iris/platform/PlatformBlock.java rename to engine/src/main/java/com/volmit/iris/platform/block/PlatformBlock.java index 34c04f90e..324798bb3 100644 --- a/engine/src/main/java/com/volmit/iris/platform/PlatformBlock.java +++ b/engine/src/main/java/com/volmit/iris/platform/block/PlatformBlock.java @@ -1,4 +1,6 @@ -package com.volmit.iris.platform; +package com.volmit.iris.platform.block; + +import com.volmit.iris.platform.PlatformNamespaced; import java.util.Map;