auts: commit work

This commit is contained in:
coaljoe 2020-04-30 03:16:58 +03:00
parent 47990ee8e3
commit 3351829cac
4 changed files with 43 additions and 1 deletions

17
elems.v
View file

@ -5,9 +5,24 @@ mut:
name string
density int // XXX per bit?
flameable bool
// when
//when_crushed_fn fn()
//when_crushed_effects []Effect
//when_crushed_out_elems []Elem
// list of processors
//generic_processors []GenericProcessorI // XXX no interface arrays
//generic_processors map[string]GenericProcessorI
//generic_processor0 &GenericProcessorI
//generic_processor0 &GenericCrusherProcessor
}
fn new_elem() &Elem {
e := &Elem{}
e := &Elem{
//when_crushed_effects: []Effect{},
//when_crushed_out_elems: []Elem{},
//generic_processor0: none,
}
return e
}

View file

@ -1,5 +1,9 @@
module main
interface GenericProcessorI {
process(ob &Object)
}
struct GenericProcessor {
name string
}
@ -18,4 +22,13 @@ fn new_generic_crusher_processor() &GenericCrusherProcessor {
fn (gpc &GenericCrusherProcessor) process(ob &Object) {
println("processing object: ${ob.name}")
if ob.elem.name == "stone" {
println("> create smaller stones")
println("> create sand")
println("> (visual) create dust")
println("> (audio) emit sound")
} else {
println("nothing happens")
}
}

7
main.v
View file

@ -79,5 +79,12 @@ fn main() {
gcp := new_generic_crusher_processor()
gcp.process(ob)
//e4.generic_processor0 = gcp
// Try to process itself
//ob.elem.generic_processor0.process(ob)
//e4.generic_processor0.process(ob)
println("done")
}

7
todo.txt Normal file
View file

@ -0,0 +1,7 @@
- add producers
- mix input elements
- create new output elements or compounds
- use resources to operate
? - add embodied elements information for compounds
- use it in case of decomposition or effects