WIP minetest <-> laby import/export
- currently possible to export a laby into minetest - start of a lua content parser to import .we into lab
This commit is contained in:
@@ -2,15 +2,17 @@ package org.artisanlogiciel.games.maze.persist;
|
||||
|
||||
import org.artisanlogiciel.games.maze.Brick;
|
||||
import org.artisanlogiciel.games.maze.LabyModel;
|
||||
import org.artisanlogiciel.games.minetest.Material;
|
||||
import org.artisanlogiciel.games.minetest.Node;
|
||||
import org.artisanlogiciel.games.minetest.WorlEditGenerator;
|
||||
import java.io.*;
|
||||
|
||||
import static org.artisanlogiciel.games.minetest.Material.GRASS_MATERIAL;
|
||||
|
||||
public class MazePersistWorldEdit {
|
||||
|
||||
private LabyModel model;
|
||||
private WorlEditGenerator generator;
|
||||
private static final String GRASS_MATERIAL = "default:dirt_with_grass";
|
||||
|
||||
public MazePersistWorldEdit(LabyModel model) {
|
||||
this.model = model;
|
||||
@@ -24,6 +26,12 @@ public class MazePersistWorldEdit {
|
||||
}
|
||||
}
|
||||
|
||||
private Node newNode(int x, int y, String material)
|
||||
{
|
||||
// x,y,z => x,z,y in minetest
|
||||
return new Node(x,0, y, Material.getMaterialByName(material));
|
||||
}
|
||||
|
||||
void addWalls(int pX, int pY) {
|
||||
short walls = model.getWalls(pX, pY);
|
||||
short wdrawn = 0;
|
||||
@@ -36,14 +44,14 @@ public class MazePersistWorldEdit {
|
||||
|
||||
String material = GRASS_MATERIAL;
|
||||
|
||||
int x = ox + (int) (pX * w);
|
||||
int y = oy + (int) (pY * h);
|
||||
int x = ox + (pX * w);
|
||||
int y = oy + (pY * h);
|
||||
|
||||
// copied from drawing, where order did matter, might not be the case here...
|
||||
//if ((pY == 0) && LabyModel.isFlagSet(walls, Brick.UP)) {
|
||||
if (LabyModel.isFlagSet(walls, Brick.UP)) {
|
||||
for ( int dx = 0; dx < w; dx++) {
|
||||
addNode(new Node(x + dx, y, z, material));
|
||||
addNode(newNode(x + dx, y,material));
|
||||
}
|
||||
wdrawn |= Brick.UP;
|
||||
}
|
||||
@@ -66,7 +74,7 @@ public class MazePersistWorldEdit {
|
||||
//if ((pX == 0) && LabyModel.isFlagSet(walls, Brick.LEFT)) {
|
||||
if (LabyModel.isFlagSet(walls, Brick.LEFT)) {
|
||||
for (int dy = 0; dy < h; dy ++) {
|
||||
addNode(new Node(x, y + dy, z, material));
|
||||
addNode(newNode(x, y + dy, material));
|
||||
}
|
||||
wdrawn |= Brick.LEFT;
|
||||
}
|
||||
@@ -77,7 +85,7 @@ public class MazePersistWorldEdit {
|
||||
// WIP using WorldEditGenerator
|
||||
if ((pFormat == null) || (pFormat.equals("we"))) {
|
||||
|
||||
Node refNode = new Node(0,0,0,"default:dirt_with_grass");
|
||||
Node refNode = new Node(0,0,0);
|
||||
StringBuilder builder = new StringBuilder();
|
||||
generator = new WorlEditGenerator(builder,refNode);
|
||||
generator.writeStart();
|
||||
|
||||
Reference in New Issue
Block a user