From ce8165417bbc85246acf6a2dbf840acd6420d03f Mon Sep 17 00:00:00 2001 From: BananaPuncher714 Date: Sat, 14 Mar 2026 23:03:06 -0400 Subject: [PATCH] Initial cleanup and refactor --- .git-submodules/spigot-docker-build-tools | 1 + .gitignore | 10 +- .gitmodules | 3 + core/pom.xml | 25 ++ .../bananapuncher714/mesh/Chain.java | 0 .../bananapuncher714/mesh/EdgeSet.java | 0 .../bananapuncher714/mesh/HalfEdge.java | 0 .../bananapuncher714/mesh/Mesh.java | 64 ++++- .../bananapuncher714/mesh/Point.java | 0 .../bananapuncher714/mesh/Polygon.java | 0 .../bananapuncher714/mesh/Segment.java | 0 .../mesh/SortedEdgeCollection.java | 0 .../bananapuncher714/mesh/Vector2d.java | 0 .../bananapuncher714/mesh/Vertex.java | 0 .../mesh/region/CompositeRegionRule.java | 0 .../bananapuncher714/mesh/region/Region.java | 0 .../mesh/region/RegionRule.java | 0 .../mesh/region/simple/RegionRuleWinding.java | 0 .../mesh/region/simple/RegionSimple.java | 0 install.sh | 14 + plugin/dependency-reduced-pom.xml | 253 ++++++++++++++++++ plugin/pom.xml | 78 ++++++ .../minietest/ChunkMeshCache.java | 0 .../bananapuncher714/minietest/MeshTest.java | 0 .../minietest/MeshingTest2.java | 3 + .../minietest/MeshingTest3.java | 3 + .../minietest/MeshingTest4.java | 3 + .../minietest/MeshingTest5.java | 3 + .../minietest/MeshingTest6.java | 3 + .../minietest/MeshingTest7.java | 3 + .../minietest/MiniePlugin.java | 4 +- .../bananapuncher714/minietest/MinieTest.java | 0 .../minietest/command/CommandBase.java | 0 .../minietest/command/CommandOption.java | 0 .../minietest/command/CommandParameters.java | 0 .../minietest/command/CommandResult.java | 0 .../minietest/command/SplitCommand.java | 0 .../minietest/command/SubCommand.java | 0 .../command/executor/CommandExecutable.java | 0 .../executor/CommandExecutableMessage.java | 0 .../command/executor/package-info.java | 0 .../minietest/command/package-info.java | 0 .../command/validator/InputValidator.java | 0 .../validator/InputValidatorArguments.java | 0 .../validator/InputValidatorBoolean.java | 0 .../validator/InputValidatorChain.java | 0 .../validator/InputValidatorDouble.java | 0 .../command/validator/InputValidatorInt.java | 0 .../validator/InputValidatorPattern.java | 0 .../validator/InputValidatorPlayer.java | 0 .../validator/InputValidatorString.java | 0 .../command/validator/package-info.java | 0 .../validator/sender/SenderValidator.java | 0 .../sender/SenderValidatorNotPlayer.java | 0 .../sender/SenderValidatorPermission.java | 0 .../sender/SenderValidatorPlayer.java | 0 .../validator/sender/package-info.java | 0 .../minietest/objects/Aabb.java | 0 .../minietest/objects/BlockDataType.java | 0 .../minietest/objects/BlockDataTypeSet.java | 0 .../minietest/objects/ChunkLocation.java | 0 .../minietest/objects/ChunkMesh.java | 12 + .../minietest/objects/IndexedPolygon.java | 0 .../minietest/objects/MinecraftPlane.java | 0 .../minietest/objects/PlaneMesh.java | 0 .../minietest/objects/VectorReference.java | 0 .../minietest/objects/mesh/Facet.java | 0 .../minietest/objects/mesh/LineSegment.java | 0 .../minietest/objects/mesh/MeshBuilder.java | 0 .../minietest/objects/mesh/Plane.java | 0 .../minietest/util/BinaryWriter.java | 0 .../minietest/util/BukkitUtil.java | 0 .../minietest/util/ChunkMeshUtil.java | 0 .../minietest/util/FileUtil.java | 0 {src => plugin/src}/main/resources/README.md | 0 {src => plugin/src}/main/resources/plugin.yml | 0 pom.xml | 104 +++---- 77 files changed, 492 insertions(+), 94 deletions(-) create mode 160000 .git-submodules/spigot-docker-build-tools create mode 100644 .gitmodules create mode 100644 core/pom.xml rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Chain.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/EdgeSet.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/HalfEdge.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Mesh.java (98%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Point.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Polygon.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Segment.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/SortedEdgeCollection.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vector2d.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vertex.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/CompositeRegionRule.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/Region.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/RegionRule.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionRuleWinding.java (100%) rename {src => core/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionSimple.java (100%) create mode 100644 install.sh create mode 100644 plugin/dependency-reduced-pom.xml create mode 100644 plugin/pom.xml rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/ChunkMeshCache.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshTest.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest2.java (97%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest3.java (99%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest4.java (99%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest5.java (99%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest6.java (97%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest7.java (99%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MiniePlugin.java (97%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MinieTest.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandBase.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandOption.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandParameters.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandResult.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SplitCommand.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SubCommand.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutable.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutableMessage.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/package-info.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/package-info.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidator.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorArguments.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorBoolean.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorChain.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorDouble.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorInt.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPattern.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPlayer.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorString.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/package-info.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidator.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorNotPlayer.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPermission.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPlayer.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/package-info.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/Aabb.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataType.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataTypeSet.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkLocation.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkMesh.java (95%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/IndexedPolygon.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/MinecraftPlane.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/PlaneMesh.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/VectorReference.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Facet.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/LineSegment.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/MeshBuilder.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Plane.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BinaryWriter.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BukkitUtil.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/ChunkMeshUtil.java (100%) rename {src => plugin/src}/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/FileUtil.java (100%) rename {src => plugin/src}/main/resources/README.md (100%) rename {src => plugin/src}/main/resources/plugin.yml (100%) diff --git a/.git-submodules/spigot-docker-build-tools b/.git-submodules/spigot-docker-build-tools new file mode 160000 index 0000000..0ed0246 --- /dev/null +++ b/.git-submodules/spigot-docker-build-tools @@ -0,0 +1 @@ +Subproject commit 0ed02463e7e0c07347eb847117112badbff78133 diff --git a/.gitignore b/.gitignore index 475016f..d5c8323 100644 --- a/.gitignore +++ b/.gitignore @@ -2,12 +2,4 @@ .project target .settings -chunks -new_chunks -images -chunk_models -chunk_models_new -chunks_test -chunk_models_test -facets -polygons +data \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a6a85b3 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule ".git-submodules/spigot-docker-build-tools"] + path = .git-submodules/spigot-docker-build-tools + url = https://git.048596.world/banana/spigot-docker-build-tools.git diff --git a/core/pom.xml b/core/pom.xml new file mode 100644 index 0000000..34c0f37 --- /dev/null +++ b/core/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + + com.aaaaahhhhhhh.bananapuncher714 + mc-mesh-master + 1.0.0 + + mc-mesh-core + 0.0.1 + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.1 + + 8 + + + + + \ No newline at end of file diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Chain.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Chain.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Chain.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Chain.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/EdgeSet.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/EdgeSet.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/EdgeSet.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/EdgeSet.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/HalfEdge.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/HalfEdge.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/HalfEdge.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/HalfEdge.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Mesh.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Mesh.java similarity index 98% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Mesh.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Mesh.java index 596b7bd..999f930 100644 --- a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Mesh.java +++ b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Mesh.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.Deque; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -70,6 +71,9 @@ import com.aaaaahhhhhhh.bananapuncher714.mesh.region.RegionRule; * * The time complexity for the entire algorithm should be roughly O(n^2logn). * + * To use this class, you can add your polygons then call meshify() which will return + * a list of triangles. + * * TODO Remove guaranteed checks or add some compile time thing to remove * * @author BananaPuncher714 @@ -80,6 +84,10 @@ public class Mesh< T extends Region > { public static final double CROSS_TOLERANCE = Math.sin( ANGLE_TOLERANCE ); // Point to vertex map, to avoid duplicating vertices when inserting polygons + // Not strictly necessary, since it is only used when adding polygons, and + // vertices with the exact same point will end up getting merged anyways. + // TODO Consider removing this, since it does require keeping track of vertices + // that we may no longer care about and want removed. protected Map< Point, Vertex > vertexMap = new HashMap< Point, Vertex >(); // All points in the graph @@ -107,15 +115,34 @@ public class Mesh< T extends Region > { * * @param poly * @param rule + * + * @return The amount of points added */ - public void addPolygon( final Polygon poly, final RegionRule< T > rule ) { - // Is it at least a triangle? - if ( poly.getPoints().size() < 3 ) { - return; + public int addPolygon( final Polygon poly, final RegionRule< T > rule ) { + // Remove consecutive points that are the same, to prevent zero edges + final Deque< Point > points = new ArrayDeque< Point >(); + for ( int i = 0; i < poly.points.size(); ++i ) { + final Point point = poly.points.get( i ); + + if ( points.isEmpty() || !points.getLast().equals( point ) ) { + points.add( point ); + } } - + + // Check for the edge case where the last point is the same as the first + if ( points.size() > 1 ) { + if ( points.getFirst().equals( points.getLast() ) ) { + points.removeLast(); + } + } + + // Is it at least a triangle? + if ( points.size() < 3 ) { + return 0; + } + HalfEdge edge = null; - for ( final Point point : poly.getPoints() ) { + for ( final Point point : points ) { if ( edge == null ) { edge = new HalfEdge(); HalfEdge.splice( edge, edge.getSym() ); @@ -127,9 +154,12 @@ public class Mesh< T extends Region > { final Vertex vertex = vertexMap.get( point ); if ( vertex != null ) { HalfEdge.splice( edge.getPrev(), vertex.getEdge() ); + + edge.setOrigin( vertex ); } else { edge.getOrigin().setPosition( new Vector2d( point ) ); + vertexMap.put( point, edge.getOrigin() ); vertices.add( edge.getOrigin() ); } @@ -138,6 +168,16 @@ public class Mesh< T extends Region > { state = MeshState.DIRTY; } + + /* + * Invariants: + * - No vertices have the same x and y + * - All edges have a winding rule + * - All vertices are attached to a non-zero even number of edges + * - No edges have length 0 + */ + + return points.size(); } public boolean addPartitionHandler( final MeshPartitionEventHandler handler ) { @@ -337,10 +377,10 @@ public class Mesh< T extends Region > { } } ); vertexSet.addAll( vertices ); - + // Need to update vertices if using the vertex map when inserting polygons vertexSet.parallelStream().forEach( Vertex::update ); - + // Do a quick merging of edges so we don't have to deal with them later // Not really necessary, but _may_ offer a speedup. // mergeOverlappingEdges( vertexSet ); @@ -358,8 +398,6 @@ public class Mesh< T extends Region > { // This set contains the non-redundant vertices. final Set< Vertex > scannedVertices = new HashSet< Vertex >(); - // TODO Remove zero edges - while ( !vertexSet.isEmpty() ) { final Vertex vertex = vertexSet.pollFirst(); final Vector2d pos = vertex.getPosition(); @@ -483,6 +521,10 @@ public class Mesh< T extends Region > { // Update the list of vertices with our new updated list of vertices vertices = scannedVertices; + + // Update the vertex map + vertexMap.clear(); + vertices.forEach( v -> vertexMap.put( v.getPosition(), v ) ); /* * At this point, each vertex should be merged and moved to the @@ -492,7 +534,7 @@ public class Mesh< T extends Region > { * Invariants: * - All vertices are at least VERTEX_TOLERANCE away from each other * - All vertices are at least VERTEX_TOLERANCE away from each other horizontally - * - All vertices will not be moved after this + * - No vertices will be moved after this * - No vertices have only 1 edge * - No vertices are within VERTEX_TOLERANCE of another edge which they are not part of * - No edges have length of 0 diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Point.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Point.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Point.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Point.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Polygon.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Polygon.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Polygon.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Polygon.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Segment.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Segment.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Segment.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Segment.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/SortedEdgeCollection.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/SortedEdgeCollection.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/SortedEdgeCollection.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/SortedEdgeCollection.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vector2d.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vector2d.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vector2d.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vector2d.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vertex.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vertex.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vertex.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/Vertex.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/CompositeRegionRule.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/CompositeRegionRule.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/CompositeRegionRule.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/CompositeRegionRule.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/Region.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/Region.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/Region.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/Region.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/RegionRule.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/RegionRule.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/RegionRule.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/RegionRule.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionRuleWinding.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionRuleWinding.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionRuleWinding.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionRuleWinding.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionSimple.java b/core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionSimple.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionSimple.java rename to core/src/main/java/com/aaaaahhhhhhh/bananapuncher714/mesh/region/simple/RegionSimple.java diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..b79ffc7 --- /dev/null +++ b/install.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +export REV="1.21.11" +export M2_DIRECTORY="$M2_REPOSITORY" +export BUILD_DIRECTORY="$ARTIFACT_DIRECTORY" +export JAVA_VERSION="21" + +REPOSITORY_DIR=$(dirname "$0") + +cd "$REPOSITORY_DIR" + +git submodule update --init --recursive --remote + +./.git-submodules/spigot-docker-build-tools/run.sh mvn clean package \ No newline at end of file diff --git a/plugin/dependency-reduced-pom.xml b/plugin/dependency-reduced-pom.xml new file mode 100644 index 0000000..dc5770b --- /dev/null +++ b/plugin/dependency-reduced-pom.xml @@ -0,0 +1,253 @@ + + + + mc-mesh-master + com.aaaaahhhhhhh.bananapuncher714 + 1.0.0 + + 4.0.0 + mc-mesh-plugin + 0.0.1-SNAPSHOT + + + + maven-shade-plugin + 3.1.0 + + + package + + shade + + + + + + maven-compiler-plugin + 3.14.1 + + 21 + + + + maven-jar-plugin + 3.5.0 + + + + true + com.aaaaahhhhhhh.bananapuncher714.minietest.MeshingTest6 + + + + + + + + + org.spigotmc + spigot + 1.21.10-R0.1-SNAPSHOT + provided + + + spigot-api + org.spigotmc + + + jline + org.jline + + + log4j-iostreams + org.apache.logging.log4j + + + asm-commons + org.ow2.asm + + + jackson-annotations + com.fasterxml.jackson.core + + + jackson-core + com.fasterxml.jackson.core + + + jackson-databind + com.fasterxml.jackson.core + + + oshi-core + com.github.oshi + + + jcip-annotations + com.github.stephenc.jcip + + + msal4j + com.microsoft.azure + + + authlib + com.mojang + + + brigadier + com.mojang + + + datafixerupper + com.mojang + + + jtracy + com.mojang + + + logging + com.mojang + + + content-type + com.nimbusds + + + lang-tag + com.nimbusds + + + nimbus-jose-jwt + com.nimbusds + + + oauth2-oidc-sdk + com.nimbusds + + + commons-io + commons-io + + + netty-buffer + io.netty + + + netty-codec + io.netty + + + netty-codec-http + io.netty + + + netty-common + io.netty + + + netty-handler + io.netty + + + netty-resolver + io.netty + + + netty-transport + io.netty + + + netty-transport-classes-epoll + io.netty + + + netty-transport-native-epoll + io.netty + + + netty-transport-native-epoll + io.netty + + + netty-transport-native-unix-common + io.netty + + + fastutil + it.unimi.dsi + + + jna + net.java.dev.jna + + + jna-platform + net.java.dev.jna + + + accessors-smart + net.minidev + + + json-smart + net.minidev + + + jopt-simple + net.sf.jopt-simple + + + commons-lang3 + org.apache.commons + + + log4j-api + org.apache.logging.log4j + + + log4j-core + org.apache.logging.log4j + + + log4j-slf4j2-impl + org.apache.logging.log4j + + + lz4-java + org.lz4 + + + commons-lang + commons-lang + + + json-simple + com.googlecode.json-simple + + + sqlite-jdbc + org.xerial + + + mysql-connector-j + com.mysql + + + maven-resolver-provider + org.apache.maven + + + maven-resolver-connector-basic + org.apache.maven.resolver + + + maven-resolver-transport-http + org.apache.maven.resolver + + + + + + diff --git a/plugin/pom.xml b/plugin/pom.xml new file mode 100644 index 0000000..7444bfd --- /dev/null +++ b/plugin/pom.xml @@ -0,0 +1,78 @@ + + 4.0.0 + + com.aaaaahhhhhhh.bananapuncher714 + mc-mesh-master + 1.0.0 + + mc-mesh-plugin + 0.0.1-SNAPSHOT + + + + org.spigotmc + spigot + 1.21.10-R0.1-SNAPSHOT + provided + + + com.github.stephengold + Minie + 9.0.1 + compile + + + org.scijava + native-lib-loader + 2.4.0 + compile + + + com.aaaaahhhhhhh.bananapuncher714 + mc-mesh-core + 0.0.1 + compile + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.1.0 + + + package + + shade + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.1 + + 21 + + + + org.apache.maven.plugins + maven-jar-plugin + 3.5.0 + + + + true + com.aaaaahhhhhhh.bananapuncher714.minietest.MeshingTest6 + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/ChunkMeshCache.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/ChunkMeshCache.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/ChunkMeshCache.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/ChunkMeshCache.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshTest.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshTest.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshTest.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshTest.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest2.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest2.java similarity index 97% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest2.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest2.java index 91101e9..36f49e5 100644 --- a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest2.java +++ b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest2.java @@ -53,6 +53,9 @@ import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Facet; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.MeshBuilder; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Plane; +/** + * Chunk data meshing visualizer + */ public class MeshingTest2 extends JPanel { private static final File BASE = new File( System.getProperty( "user.dir" ) ); private static final File CHUNK_DIR = new File( BASE, "chunks" ); diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest3.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest3.java similarity index 99% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest3.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest3.java index 3293a92..429a080 100644 --- a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest3.java +++ b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest3.java @@ -24,6 +24,9 @@ import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Facet; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.MeshBuilder; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Plane; +/** + * Mesh speed test + */ public class MeshingTest3 { private static final File BASE = new File( System.getProperty( "user.dir" ) ); private static final File CHUNK_DIR = new File( BASE, "chunks" ); diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest4.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest4.java similarity index 99% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest4.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest4.java index 222e8fd..46bfcff 100644 --- a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest4.java +++ b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest4.java @@ -32,6 +32,9 @@ import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Facet; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.MeshBuilder; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Plane; +/** + * Mesh chunk data to ply2 format + */ public class MeshingTest4 { private static final File BASE = new File( System.getProperty( "user.dir" ) ); private static final File CHUNK_DIR = new File( BASE, "chunks" ); diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest5.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest5.java similarity index 99% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest5.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest5.java index 46701e7..6817642 100644 --- a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest5.java +++ b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest5.java @@ -27,6 +27,9 @@ import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Facet; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.MeshBuilder; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Plane; +/** + * Mesh speed test for facets + */ public class MeshingTest5 { private static final File BASE = new File( System.getProperty( "user.dir" ) ); private static final File FACET_DIR = new File( BASE, "facets" ); diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest6.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest6.java similarity index 97% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest6.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest6.java index efad81e..5ffa52d 100644 --- a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest6.java +++ b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest6.java @@ -52,6 +52,9 @@ import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Facet; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.MeshBuilder; import com.aaaaahhhhhhh.bananapuncher714.minietest.objects.mesh.Plane; +/** + * Facet meshing visualizer + */ public class MeshingTest6 extends JPanel { private static final File BASE = new File( System.getProperty( "user.dir" ) ); private static final File FACET_DIR = new File( BASE, "facets" ); diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest7.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest7.java similarity index 99% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest7.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest7.java index a749b33..050f7ca 100644 --- a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest7.java +++ b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MeshingTest7.java @@ -18,6 +18,9 @@ import com.aaaaahhhhhhh.bananapuncher714.mesh.region.simple.RegionRuleWinding; import com.aaaaahhhhhhh.bananapuncher714.mesh.region.simple.RegionSimple; import com.aaaaahhhhhhh.bananapuncher714.mesh.region.simple.RegionSimple.GluWindingRule; +/** + * Mesh speed test for polygons + */ public class MeshingTest7 { private static final File BASE = new File( System.getProperty( "user.dir" ) ); private static final File POLYGON_DIR = new File( BASE, "polygons" ); diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MiniePlugin.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MiniePlugin.java similarity index 97% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MiniePlugin.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MiniePlugin.java index ece9f17..d48f375 100644 --- a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MiniePlugin.java +++ b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MiniePlugin.java @@ -37,8 +37,8 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.block.data.BlockData; import org.bukkit.command.CommandSender; -import org.bukkit.craftbukkit.v1_21_R4.CraftWorld; -import org.bukkit.craftbukkit.v1_21_R4.block.data.CraftBlockData; +import org.bukkit.craftbukkit.v1_21_R6.CraftWorld; +import org.bukkit.craftbukkit.v1_21_R6.block.data.CraftBlockData; import org.bukkit.entity.BlockDisplay; import org.bukkit.entity.Display; import org.bukkit.entity.Player; diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MinieTest.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MinieTest.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MinieTest.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/MinieTest.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandBase.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandBase.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandBase.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandBase.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandOption.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandOption.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandOption.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandOption.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandParameters.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandParameters.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandParameters.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandParameters.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandResult.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandResult.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandResult.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/CommandResult.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SplitCommand.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SplitCommand.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SplitCommand.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SplitCommand.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SubCommand.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SubCommand.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SubCommand.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/SubCommand.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutable.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutable.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutable.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutable.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutableMessage.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutableMessage.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutableMessage.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/CommandExecutableMessage.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/package-info.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/package-info.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/package-info.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/executor/package-info.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/package-info.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/package-info.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/package-info.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/package-info.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidator.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidator.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidator.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidator.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorArguments.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorArguments.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorArguments.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorArguments.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorBoolean.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorBoolean.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorBoolean.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorBoolean.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorChain.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorChain.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorChain.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorChain.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorDouble.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorDouble.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorDouble.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorDouble.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorInt.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorInt.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorInt.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorInt.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPattern.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPattern.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPattern.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPattern.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPlayer.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPlayer.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPlayer.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorPlayer.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorString.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorString.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorString.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/InputValidatorString.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/package-info.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/package-info.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/package-info.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/package-info.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidator.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidator.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidator.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidator.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorNotPlayer.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorNotPlayer.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorNotPlayer.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorNotPlayer.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPermission.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPermission.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPermission.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPermission.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPlayer.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPlayer.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPlayer.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/SenderValidatorPlayer.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/package-info.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/package-info.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/package-info.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/command/validator/sender/package-info.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/Aabb.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/Aabb.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/Aabb.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/Aabb.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataType.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataType.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataType.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataType.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataTypeSet.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataTypeSet.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataTypeSet.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/BlockDataTypeSet.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkLocation.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkLocation.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkLocation.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkLocation.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkMesh.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkMesh.java similarity index 95% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkMesh.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkMesh.java index 9c52e91..1301a65 100644 --- a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkMesh.java +++ b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/ChunkMesh.java @@ -24,11 +24,19 @@ import com.jme3.math.Vector3f; public class ChunkMesh { // TODO Public for now while I figure out how to organize the stuff properly + + // Hashcode of the current block's blockdata so we can check if it changed private int[] data; + // The bounding boxes for each complex block, null if air or a cube private BoundingBox[][] boxes; + // Stores which blocks are complex/simple/empty private BlockDataTypeSet blockTypes; + // References to every point used by at least one planemesh public TreeSet< VectorReference > pointReferences = new TreeSet< VectorReference >(); + // Map of meshes to each plane + // TODO Allow for non axis-aligned planes public Map< MinecraftPlane, PlaneMesh > planes = new TreeMap< MinecraftPlane, PlaneMesh >(); + // Bounding box of this mesh private Aabb box; public ChunkMesh( BoundingBox box ) { @@ -117,6 +125,10 @@ public class ChunkMesh { } public void writeTo( final BinaryWriter writer ) { + // Gather all vectors and map them to indices + + + // Write the bounding box writer.write( box.minX ); writer.write( box.minY ); diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/IndexedPolygon.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/IndexedPolygon.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/IndexedPolygon.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/IndexedPolygon.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/MinecraftPlane.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/MinecraftPlane.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/MinecraftPlane.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/MinecraftPlane.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/PlaneMesh.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/PlaneMesh.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/PlaneMesh.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/PlaneMesh.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/VectorReference.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/VectorReference.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/VectorReference.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/VectorReference.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Facet.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Facet.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Facet.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Facet.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/LineSegment.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/LineSegment.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/LineSegment.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/LineSegment.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/MeshBuilder.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/MeshBuilder.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/MeshBuilder.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/MeshBuilder.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Plane.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Plane.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Plane.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/objects/mesh/Plane.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BinaryWriter.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BinaryWriter.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BinaryWriter.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BinaryWriter.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BukkitUtil.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BukkitUtil.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BukkitUtil.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/BukkitUtil.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/ChunkMeshUtil.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/ChunkMeshUtil.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/ChunkMeshUtil.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/ChunkMeshUtil.java diff --git a/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/FileUtil.java b/plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/FileUtil.java similarity index 100% rename from src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/FileUtil.java rename to plugin/src/main/java/com/aaaaahhhhhhh/bananapuncher714/minietest/util/FileUtil.java diff --git a/src/main/resources/README.md b/plugin/src/main/resources/README.md similarity index 100% rename from src/main/resources/README.md rename to plugin/src/main/resources/README.md diff --git a/src/main/resources/plugin.yml b/plugin/src/main/resources/plugin.yml similarity index 100% rename from src/main/resources/plugin.yml rename to plugin/src/main/resources/plugin.yml diff --git a/pom.xml b/pom.xml index a84d398..18786ed 100644 --- a/pom.xml +++ b/pom.xml @@ -1,73 +1,33 @@ - - 4.0.0 - com.aaaaahhhhhhh.bananapuncher714 - MinieTest - 0.0.1-SNAPSHOT - - - - org.spigotmc - spigot - 1.21.5-R0.1-SNAPSHOT - provided - - - com.github.stephengold - Minie - 9.0.1 - compile - - - org.scijava - native-lib-loader - 2.4.0 - compile - - - io.github.earcut4j - earcut4j - 2.2.2 - compile - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - 1.8 - 1.8 - - - - org.apache.maven.plugins - maven-assembly-plugin - - - package - - single - - - - - - com.aaaaahhhhhhh.bananapuncher714.minietest.MinieTest - - - - - jar-with-dependencies - - - - - - - + + + 4.0.0 + com.aaaaahhhhhhh.bananapuncher714 + mc-mesh-master + 1.0.0 + pom + + + plugin + core + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.1 + + 1.8 + 1.8 + + + + + + + UTF-8 + \ No newline at end of file