mirror of
https://git.kittycat.homes/zoe/codename-routes.git
synced 2024-08-15 03:18:26 +00:00
something that looks halfway ok
This commit is contained in:
parent
e0c020bbd3
commit
c2c9d9b3e3
3 changed files with 32 additions and 5 deletions
Binary file not shown.
|
@ -1,7 +1,7 @@
|
|||
extends Node
|
||||
|
||||
export var xsize = 16
|
||||
export var ysize = 16
|
||||
export var xsize = 256
|
||||
export var ysize = 256
|
||||
export var zsize = 3
|
||||
export var cityname = "night city"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use gdnative::prelude::*;
|
||||
use rand::prelude::StdRng;
|
||||
use rand::prelude::*;
|
||||
use rand::seq::SliceRandom;
|
||||
use rand_seeder::Seeder;
|
||||
|
||||
mod tiles;
|
||||
|
@ -37,14 +37,30 @@ impl World {
|
|||
|
||||
// fill edges with water
|
||||
for x in 0..self.ysize {
|
||||
self.tiles[x][0][0] = tiles::Tiletypes::WaterSlab;
|
||||
self.tiles[x][self.ysize - 1][0] = tiles::Tiletypes::WaterSlab;
|
||||
self.tiles[x][0][0] = tiles::Tiletypes::WaterSlab;
|
||||
self.tiles[x][self.ysize - 1][0] = tiles::Tiletypes::WaterSlab;
|
||||
}
|
||||
for y in 0..self.xsize {
|
||||
self.tiles[0][y][0] = tiles::Tiletypes::WaterSlab;
|
||||
self.tiles[self.xsize - 1][y][0] = tiles::Tiletypes::WaterSlab;
|
||||
}
|
||||
|
||||
for x in 1..self.xsize - 1 {
|
||||
for y in 1..self.ysize - 1 {
|
||||
if self.tile_is_next_to(x, y, 0, tiles::Tiletypes::WaterSlab){
|
||||
let available = vec![tiles::Tiletypes::WaterSlab, tiles::Tiletypes::Sand];
|
||||
self.tiles[x][y][0] = available.choose(&mut rng).unwrap().to_owned();
|
||||
}
|
||||
else if self.tile_is_next_to(x, y, 0, tiles::Tiletypes::Sand) {
|
||||
let available = vec![tiles::Tiletypes::Grass, tiles::Tiletypes::Sand];
|
||||
self.tiles[x][y][0] = available.choose(&mut rng).unwrap().to_owned();
|
||||
}
|
||||
else {
|
||||
self.tiles[x][y][0] = tiles::Tiletypes::Air;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let mut ret: Vector3Array = Vector3Array::new();
|
||||
for x in 0..self.xsize {
|
||||
for y in 0..self.ysize {
|
||||
|
@ -56,6 +72,17 @@ impl World {
|
|||
ret
|
||||
}
|
||||
|
||||
fn tile_is_next_to(&self, x: usize, y: usize, z: usize, neighbor: tiles::Tiletypes) -> bool {
|
||||
if self.tiles[x - 1][y - 1][z] == neighbor
|
||||
|| self.tiles[x - 1][y][z] == neighbor
|
||||
|| self.tiles[x][y + 1][z] == neighbor
|
||||
|| self.tiles[x + 1][y + 1][z] == neighbor
|
||||
{
|
||||
return true;
|
||||
}
|
||||
false
|
||||
}
|
||||
|
||||
pub fn new(xsize: usize, ysize: usize, zsize: usize, seed: String) -> World {
|
||||
World {
|
||||
xsize,
|
||||
|
|
Loading…
Reference in a new issue