Skip to content

Commit ed6ed2b

Browse files
committed
simple terrain generator test
1 parent a8b22cf commit ed6ed2b

File tree

8 files changed

+7257
-37
lines changed

8 files changed

+7257
-37
lines changed

nbproject/project.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ obfuscator.srcjar=${build.dir}/before-obfuscation.jar
8383
platform.active=Oracle_Java_TM__Platform_Micro_Edition_SDK_3_4
8484
platform.active.description=Oracle Java(TM) Platform Micro Edition SDK 3.4
8585
platform.apis=JSR234-1.0,JSR257-1.0,JSR211-1.0,JSR75-1.0,J2ME-WS-1.0,JSR82-1.1,JSR239-1.0,JSR179-1.0,JSR184-1.1,MMAPI-1.2,JSR256-1.2,JSR226-1.0,SATSA-1.0,WMA-2.0,JSR280-1.0
86-
platform.bootclasspath=${platform.home}/lib/jsr205_2.0.jar:${platform.home}/lib/jsr177_1.0.jar:${platform.home}/lib/jsr082_1.1.jar:${platform.home}/lib/jsr234_1.0.jar:${platform.home}/lib/jsr257_1.0.jar:${platform.home}/lib/jsr135_1.2.jar:${platform.home}/lib/jsr226_1.0.jar:${platform.home}/lib/jsr256_1.2.jar:${platform.home}/lib/jsr75_1.0.jar:${platform.home}/lib/jsr211_1.0.jar:${platform.home}/lib/jsr239_1.0.jar:${platform.home}/lib/jsr172_1.0.jar:${platform.home}/lib/jsr280_1.0.jar:${platform.home}/lib/jsr184_1.1.jar:${platform.home}/lib/jsr179_1.0.jar:${platform.home}/lib/cldc_1.1.jar:${platform.home}/lib/midp_2.1.jar
86+
platform.bootclasspath=${platform.home}/lib/jsr205_2.0.jar:${platform.home}/lib/jsr177_1.0.jar:${platform.home}/lib/jsr082_1.1.jar:${platform.home}/lib/jsr234_1.0.jar:${platform.home}/lib/jsr257_1.0.jar:${platform.home}/lib/jsr135_1.2.jar:${platform.home}/lib/jsr226_1.0.jar:${platform.home}/lib/jsr256_1.2.jar:${platform.home}/lib/jsr75_1.0.jar:${platform.home}/lib/jsr211_1.0.jar:${platform.home}/lib/jsr239_1.0.jar:${platform.home}/lib/jsr172_1.0.jar:${platform.home}/lib/jsr280_1.0.jar:${platform.home}/lib/jsr184_1.1.jar:${platform.home}/lib/jsr179_1.0.jar:${platform.home}/lib/cldc_1.1.jar:${platform.home}/lib/midp_2.0.jar
8787
platform.configuration=CLDC-1.1
8888
platform.device=CLDCCustomDevice
8989
platform.fat.jar=true
90-
platform.profile=MIDP-2.1
90+
platform.profile=MIDP-2.0
9191
platform.trigger=CLDC
9292
platform.type=UEI-1.0.1
9393
preprocessed.dir=${build.dir}/preprocessed

src/comcrafthd/BlockSeedList.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public final class BlockSeedList {
2323
.setTexture(Block.SIDE_TOP, 0, 0)
2424
// .setColor(Block.SIDE_TOP, 0x79C05A)
2525
// .setColor(Block.SIDE_TOP, 0x90814D)
26-
.setAllColor(0x90814D)
26+
.setAllColor(0x79C05A)
27+
// .setAllColor(0x90814D)
2728
.build();
2829
}

src/comcrafthd/ChunkGenerator.java

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
*/
66
package comcrafthd;
77

8+
import make.some.noise.Noise;
9+
810
/**
911
*
1012
* @author quead
@@ -16,28 +18,56 @@ public final class ChunkGenerator {
1618
public Chunk generateChunk(int chunkX, int chunkZ) {
1719
chunk = new Chunk((short) chunkX, (short) chunkZ);
1820

21+
Log.debug(this, "before generateImpl()");
22+
1923
generateImpl();
2024

25+
Log.debug(this, "after generateImpl()");
26+
2127
Chunk res = chunk;
2228
chunk = null;
2329
return res;
2430
}
2531

32+
private final Noise noise = Noise.instance;
33+
2634
private void generateImpl() {
27-
BlockSeedList blocks = ComcraftGame.instance.blockSeedList;
35+
final Chunk chunk = this.chunk;
36+
final BlockSeedList blocks = ComcraftGame.instance.blockSeedList;
37+
38+
final int offsetX = chunk.chunkX * Chunk.CHUNK_SIZE;
39+
final int offsetZ = chunk.chunkZ * Chunk.CHUNK_SIZE;
40+
41+
// final int offsetX = 0;
42+
// final int offsetZ = 0;
43+
for (int x = 0; x < Chunk.CHUNK_SIZE; ++x) {
44+
for (int z = 0; z < Chunk.CHUNK_SIZE; ++z) {
45+
final int globalX = offsetX + x;
46+
final int globalZ = offsetZ + z;
47+
48+
final float noiseVal = noise.getPerlin(globalX, globalZ);
49+
final float height = 28 + noiseVal * 15;
50+
51+
fillRect(x, 0, z, 1, (int) height, 1, blocks.grass.fullId);
52+
}
53+
}
54+
}
55+
56+
private void generateImplTest() {
57+
final BlockSeedList blocks = ComcraftGame.instance.blockSeedList;
2858

2959
fillRect(0, 0, 0, Chunk.CHUNK_SIZE, 3, Chunk.CHUNK_SIZE, blocks.stone.fullId);
30-
60+
3161
fillRect(0, 3, 0, Chunk.CHUNK_SIZE, 5, Chunk.CHUNK_SIZE, blocks.grass.fullId);
3262
}
3363

3464
private void fillRect(final int localBlockX, final int localBlockY, final int localBlockZ, final int width, final int height, final int depth, final short value) {
3565
final Chunk chunk = this.chunk;
36-
37-
for (int y = localBlockY; y < height; ++y) {
38-
for (int x = localBlockX; x < width; ++x) {
39-
for (int z = localBlockZ; z < depth; ++z) {
40-
chunk.set(x, y, z, value);
66+
67+
for (int y = 0; y < height; ++y) {
68+
for (int x = 0; x < width; ++x) {
69+
for (int z = 0; z < depth; ++z) {
70+
chunk.set(localBlockX + x, localBlockY + y, localBlockZ + z, value);
4171
}
4272
}
4373
}

src/comcrafthd/client/ComcraftRenderer.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public final class ComcraftRenderer {
3737
private final Graphics graphics;
3838
private final Graphics3D g3d;
3939

40-
public final World world = new World();
40+
private final World world = new World();
4141

4242
public Camera camera;
4343

@@ -74,11 +74,9 @@ public synchronized void render() {
7474
public synchronized void threadCallbackAddChunk(final Chunk chunk) {
7575
world.addChild(chunk.renderCache.node);
7676
}
77-
77+
7878
public synchronized void threadCallbackRemoveChunk(final Chunk chunk) {
79-
if (chunk.renderCache.node != null) {
80-
world.removeChild(chunk.renderCache.node);
81-
}
79+
world.removeChild(chunk.renderCache.node);
8280
}
8381

8482
public static final int SKY_COLOR = 0x87ceeb;

src/comcrafthd/client/ComcraftRendererThread.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,20 @@ private void tick() {
5757
chunkList.dropAround(centerBlockX, centerBlockZ, ComcraftPrefs.instance.chunkRenderDistance, this);
5858
chunkList.loadAround(centerBlockX, centerBlockZ, ComcraftPrefs.instance.chunkRenderDistance);
5959

60-
final Chunk toRender = chunkList.getClosestNotRenderedChunk(centerBlockX, centerBlockZ);
61-
if (toRender != null) {
62-
chunkRenderer.renderChunkCache(toRender);
63-
64-
renderer.threadCallbackAddChunk(toRender);
60+
final Chunk chunkToRender = chunkList.getClosestNotRenderedChunk(centerBlockX, centerBlockZ);
61+
if (chunkToRender != null) {
62+
chunkRenderer.renderChunkCache(chunkToRender);
63+
64+
if (chunkToRender.renderCache.node != null) {
65+
renderer.threadCallbackAddChunk(chunkToRender);
66+
}
6567
}
6668
}
6769

6870
public void dropChunkCallback(final Chunk chunk) {
69-
renderer.threadCallbackRemoveChunk(chunk);
71+
if (chunk.renderCache.node != null) {
72+
renderer.threadCallbackRemoveChunk(chunk);
73+
}
7074

7175
chunk.renderCache.done = false;
7276
chunk.renderCache.node = null;

src/comcrafthd/client/GreedyMeshing.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/comcrafthd/client/blocks/StandardBlockRenderer.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,15 @@ public void render(final ChunkRenderer chunkRenderer, final BlockRenderParam par
111111
}
112112

113113
private boolean isSideOccluded(final ChunkWorld chunkWorld, final BlockList blockList, final BlockRenderParam param, final int[] side) {
114-
final short value = chunkWorld.get(param.blockX + side[0], param.blockY + side[1], param.blockZ + side[2]);
114+
final int x = param.blockX + side[0];
115+
final int y = param.blockY + side[1];
116+
final int z = param.blockZ + side[2];
117+
118+
if (y < 0) {
119+
return true;
120+
}
121+
122+
final short value = chunkWorld.get(x, y, z);
115123
final Block block = blockList.get(value);
116124
return block == null ? false : block.occludesNeighbourFace;
117125
}

0 commit comments

Comments
 (0)