1
0
Fork 0
auts/main.v

139 lines
2.1 KiB
Coq
Raw Normal View History

2020-04-30 00:20:08 +02:00
module main
fn main() {
println("main()")
mut e := new_elem()
e.name = "wood"
2020-04-30 11:32:03 +02:00
e.elem_type = .wood
2020-04-30 00:20:08 +02:00
e.density = 100
e.flameable = true
_ = e
println("e: ${e}")
mut e2 := new_elem()
e2.name = "sand"
2020-04-30 11:32:03 +02:00
e2.elem_type = .sand
2020-04-30 00:20:08 +02:00
e2.density = 2000
println("e2: ${e2}")
mut e3 := new_elem()
e3.name = "glass"
2020-04-30 11:32:03 +02:00
e3.elem_type = .glass
2020-04-30 00:20:08 +02:00
e3.density = 2200
mut e4 := new_elem()
e4.name = "stone"
2020-04-30 11:32:03 +02:00
e4.elem_type = .stone
2020-04-30 00:20:08 +02:00
e4.density = 8000
2020-04-30 14:02:14 +02:00
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
2020-04-30 00:20:08 +02:00
//
// Effects
//
2020-09-05 13:06:27 +02:00
mut ef := new_effect()
2020-04-30 00:20:08 +02:00
ef.name = "melt"
ef.in_elem = e2
ef.out_elem = e3
ef.cond_temp = 5000
2020-09-05 13:06:27 +02:00
// XXX bug: can't print recursive elems?
//println("ef: ${ef}")
2020-04-30 00:20:08 +02:00
//
// Objects
//
2020-09-05 13:06:27 +02:00
mut ob := new_object()
2020-04-30 00:20:08 +02:00
ob.name = "stone1"
ob.dim_x = 2
ob.dim_y = 2
ob.dim_z = 2
ob.elem = e4
// Position
ob.transform.pos_x = 10.0
ob.transform.pos_y = 10.0
ob.transform.rot_z = 45.0
2020-09-05 13:06:27 +02:00
// XXX
//println("ob: ${ob}")
2020-04-30 00:20:08 +02:00
2020-04-30 00:34:02 +02:00
//
// Processors
//
2020-09-05 13:06:27 +02:00
mut prc := new_processor()
2020-04-30 00:34:02 +02:00
prc.name = "crushed_stone"
prc.in_elem = e4
prc.out_elem = e4
prc.output_factor = 0.6
prc.req_electricity = true
prc.req_power = 1000
2020-09-05 13:06:27 +02:00
// XXX
//println("prc: ${prc}")
2020-04-30 00:34:02 +02:00
//
// Universal Processors?
//
2020-04-30 01:02:30 +02:00
/*
prc2 := new_generic_processor()
prc2.name = "generic_crusher"
prc2.req_solid = true
//prc2.in_elem =
prc2.process(ob)
*/
2020-09-05 13:06:27 +02:00
mut gcp := new_generic_crusher_processor()
2020-04-30 01:02:30 +02:00
gcp.process(ob)
2020-04-30 02:16:58 +02:00
//e4.generic_processor0 = gcp
// Try to process itself
//ob.elem.generic_processor0.process(ob)
//e4.generic_processor0.process(ob)
2020-04-30 11:32:03 +02:00
//
// World
//
2020-09-05 13:06:27 +02:00
mut w := new_world()
2020-04-30 11:32:03 +02:00
b1 := Bit{
elem_type: .wood,
}
w.bits[0][0] = b1
println("w b1: ${w.bits[0][0]}")
println("w 1 0: ${w.bits[1][0]}")
2020-04-30 14:02:14 +02:00
//println("w: ${w}")
//println("w: ${w.bits}")
//
// Complex object
//
2020-09-05 13:06:27 +02:00
mut ob2 := new_object()
2020-04-30 14:02:14 +02:00
ob2.name = "pipe" // Reinforced-concrete pipe, a 3d object
ob2.elem = e_concrete
2020-04-30 11:32:03 +02:00
2020-04-30 00:20:08 +02:00
println("done")
}