auts: commit work
This commit is contained in:
parent
7ff3a55cd1
commit
a5769cc640
|
@ -0,0 +1,22 @@
|
||||||
|
module main
|
||||||
|
|
||||||
|
// World bit source (emits bits)
|
||||||
|
struct BitSource {
|
||||||
|
mut:
|
||||||
|
pos WorldPos
|
||||||
|
elem_type ElemType
|
||||||
|
rate f32
|
||||||
|
active bool
|
||||||
|
}
|
||||||
|
|
||||||
|
fn new_bit_source() &BitSource {
|
||||||
|
bs := &BitSource{
|
||||||
|
active: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
return bs
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (bs &BitSource) update(dt f32) {
|
||||||
|
|
||||||
|
}
|
33
elems.v
33
elems.v
|
@ -4,16 +4,40 @@ enum ElemType {
|
||||||
none_, // None/Empty
|
none_, // None/Empty
|
||||||
|
|
||||||
//// Primary form
|
//// Primary form
|
||||||
wood, sand, stone, coal, clay,
|
wood, sand, stone, coal, clay, iron,
|
||||||
|
// rock -> stone (?)
|
||||||
// Liquid
|
// Liquid
|
||||||
water, oil,
|
water, oil, lava,
|
||||||
// Gas(?)
|
// Gas(?)
|
||||||
vapour, methane,
|
vapour, methane,
|
||||||
// Extra(?)
|
// Extra(?)
|
||||||
biomass,
|
soil, biomass, silt,
|
||||||
|
|
||||||
//// Secondary form
|
//// Secondary form
|
||||||
glass, concrete, brick
|
glass, concrete, brick, steel, plastic, cement,
|
||||||
|
// Liquid
|
||||||
|
// XXX simplify: no need for special-state concrete,
|
||||||
|
// use basic type
|
||||||
|
//liquid_concrete,
|
||||||
|
|
||||||
|
//// Compounds(?)
|
||||||
|
// Ores
|
||||||
|
iron_ore,
|
||||||
|
aluminium_ore, // Bauxite
|
||||||
|
gold_ore,
|
||||||
|
silver_ore,
|
||||||
|
platinum_ore, // (?)
|
||||||
|
copper_ore,
|
||||||
|
nickel_ore, // Garnierite
|
||||||
|
zinc_ore,
|
||||||
|
lead_ore,
|
||||||
|
uranium_ore,
|
||||||
|
//alumina, // Aluminium oxide
|
||||||
|
// Construction
|
||||||
|
// XXX add only as a subtype of concrete? only useful for recycling information...
|
||||||
|
// XXX change to subtype
|
||||||
|
//reinforced_concrete, // Approx 90% concrete, 10% steel (on average)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Elem {
|
struct Elem {
|
||||||
|
@ -22,6 +46,7 @@ mut:
|
||||||
elem_type ElemType
|
elem_type ElemType
|
||||||
density int // XXX per bit?
|
density int // XXX per bit?
|
||||||
flameable bool
|
flameable bool
|
||||||
|
liquid bool
|
||||||
|
|
||||||
// when
|
// when
|
||||||
//when_crushed_fn fn()
|
//when_crushed_fn fn()
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
notes:
|
||||||
|
- the world is a fixed-grid voxel-space
|
||||||
|
- mostly it is soil/ground
|
||||||
|
- the objects are aligned/transformed (local, object) voxel-space (3d)
|
||||||
|
- the objects have transforms, and not different from 3d objects
|
||||||
|
- trees are objects
|
||||||
|
- stones are objects
|
||||||
|
- most things detachable from land are objects (or what isn't land)
|
||||||
|
- sand particles are not objects (and they can contribute to the world-space data)
|
||||||
|
- the world does not interact with the objects by itself (?)
|
||||||
|
- the objects can interact with the world but not by the world's means (?)
|
||||||
|
- resource simulation rather than resource-interaction/physics simulation
|
||||||
|
- resource based economy
|
||||||
|
- information mostly needed for processing and extraction,
|
||||||
|
and resource/technology flow
|
||||||
|
- object representation may look different than underlying voxel model
|
||||||
|
- TODO: add/test model voxelization based on 3d model material properties?
|
||||||
|
for instance a 3d pipe with concrete material will create a voxel model with
|
||||||
|
bits/voxels of concrete element.
|
||||||
|
- TODO: use models directly created by voxel materials/elements?
|
||||||
|
|
||||||
|
things not needed:
|
||||||
|
- water evaporation
|
||||||
|
- temperature transfer
|
||||||
|
- weathering
|
||||||
|
- non-practical material life times
|
||||||
|
- non-practical material interaction
|
||||||
|
- non-practical physics/objects interaction
|
||||||
|
- flameability (?)
|
||||||
|
- effects are small
|
||||||
|
- irrigation (?)
|
||||||
|
- effects are small, mostly visual
|
||||||
|
- applying effects outside of [resource] processing
|
21
main.v
21
main.v
|
@ -29,6 +29,17 @@ fn main() {
|
||||||
e4.elem_type = .stone
|
e4.elem_type = .stone
|
||||||
e4.density = 8000
|
e4.density = 8000
|
||||||
|
|
||||||
|
mut e_water := new_elem()
|
||||||
|
e_water.name = "water"
|
||||||
|
e_water.elem_type = .water
|
||||||
|
e_water.density = 10000
|
||||||
|
e_water.liquid = true
|
||||||
|
|
||||||
|
mut e_concrete := new_elem()
|
||||||
|
e_concrete.name = "concrete"
|
||||||
|
e_concrete.elem_type = .concrete
|
||||||
|
e_concrete.density = 20000
|
||||||
|
|
||||||
//
|
//
|
||||||
// Effects
|
// Effects
|
||||||
//
|
//
|
||||||
|
@ -109,6 +120,16 @@ fn main() {
|
||||||
|
|
||||||
println("w b1: ${w.bits[0][0]}")
|
println("w b1: ${w.bits[0][0]}")
|
||||||
println("w 1 0: ${w.bits[1][0]}")
|
println("w 1 0: ${w.bits[1][0]}")
|
||||||
|
//println("w: ${w}")
|
||||||
|
//println("w: ${w.bits}")
|
||||||
|
|
||||||
|
//
|
||||||
|
// Complex object
|
||||||
|
//
|
||||||
|
|
||||||
|
ob2 := new_object()
|
||||||
|
ob2.name = "pipe" // Reinforced-concrete pipe, a 3d object
|
||||||
|
ob2.elem = e_concrete
|
||||||
|
|
||||||
println("done")
|
println("done")
|
||||||
}
|
}
|
||||||
|
|
11
object.v
11
object.v
|
@ -1,5 +1,13 @@
|
||||||
module main
|
module main
|
||||||
|
|
||||||
|
// Object bit
|
||||||
|
// size: 10x10x10 (?)
|
||||||
|
//
|
||||||
|
// XXX cannot be compound?
|
||||||
|
struct ObjectBit {
|
||||||
|
elem_type ElemType
|
||||||
|
}
|
||||||
|
|
||||||
struct Object {
|
struct Object {
|
||||||
mut:
|
mut:
|
||||||
name string
|
name string
|
||||||
|
@ -15,6 +23,9 @@ mut:
|
||||||
|
|
||||||
// Flixible position in the world
|
// Flixible position in the world
|
||||||
transform &Transform
|
transform &Transform
|
||||||
|
|
||||||
|
// Bits of object's voxel model
|
||||||
|
//bits [10][10]ObjectBit
|
||||||
}
|
}
|
||||||
|
|
||||||
fn new_object() &Object {
|
fn new_object() &Object {
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
||||||
|
module main
|
||||||
|
|
||||||
|
struct WorldPos {
|
||||||
|
mut:
|
||||||
|
x int
|
||||||
|
y int
|
||||||
|
z int
|
||||||
|
}
|
Loading…
Reference in New Issue