1
0
Fork 0

add bits_object generation to wall

This commit is contained in:
coaljoe 2020-09-23 22:22:16 +03:00
parent cf2b86899d
commit fd0a9546f6
4 changed files with 38 additions and 20 deletions

View File

@ -23,7 +23,7 @@ mut:
//struct ObjectPart {
struct MaterialPart {
mut:
pub mut:
name string
elem &Elem
bits_size int
@ -34,28 +34,28 @@ mut:
// PartsInfo
//struct PartsInfo {
struct MaterialInfo {
mut:
pub mut:
//elems map[string]&Elem
//elems map[string]&MaterialElem
elems map[string]&MaterialPart
}
fn new_material_info() &MaterialInfo {
pub fn new_material_info() &MaterialInfo {
mi := &MaterialInfo{}
return mi
}
fn (mi &MaterialInfo) has_elem(elem &Elem) bool {
pub fn (mi &MaterialInfo) has_elem(elem &Elem) bool {
return !isnil(mi.elems[elem.name])
}
fn (mi &MaterialInfo) has_elem_name(elem_name string) bool {
pub fn (mi &MaterialInfo) has_elem_name(elem_name string) bool {
return !isnil(mi.elems[elem_name])
}
// Add elem record
fn (mut mi MaterialInfo) add_elem(bits_size int, elem &Elem) {
pub fn (mut mi MaterialInfo) add_elem(bits_size int, elem &Elem) {
pt := &MaterialPart{
elem: elem,
@ -65,7 +65,7 @@ fn (mut mi MaterialInfo) add_elem(bits_size int, elem &Elem) {
}
// Get part by elem name
fn (mi &MaterialInfo) get_elem_name(elem_name string) &MaterialPart {
pub fn (mi &MaterialInfo) get_elem_name(elem_name string) &MaterialPart {
pt := mi.elems[elem_name]
@ -79,7 +79,7 @@ fn (mi &MaterialInfo) get_elem_name(elem_name string) &MaterialPart {
//fn (mut mi MaterialInfo) add_elem_from_size(size [3]f32, elem &Elem) {
//fn (mut pi PartsInfo) add_elem_from_size(size []f32, elem &Elem) {
// println("PartsInfo add_elem_from_size: $size, elem.name: $elem.name")
fn (mut mi MaterialInfo) add_elem_from_size(mx, my, mz f32, elem &Elem) {
pub fn (mut mi MaterialInfo) add_elem_from_size(mx, my, mz f32, elem &Elem) {
println("MaterialInfo add_elem_from_size: mx: $mx, my: $my, mz: $mz, elem.name: $elem.name")
/*
@ -97,7 +97,7 @@ fn (mut mi MaterialInfo) add_elem_from_size(mx, my, mz f32, elem &Elem) {
}
fn (mi &MaterialInfo) elems_list() []&MaterialPart {
pub fn (mi &MaterialInfo) elems_list() []&MaterialPart {
mut ret := []&MaterialPart{}
for k in mi.elems.keys() {
v := mi.elems[k]

View File

@ -9,7 +9,7 @@ struct ObjectBit {
}
struct Object {
mut:
pub mut:
name string
// Dimentions in bits
@ -42,8 +42,8 @@ mut:
//bits [10][10]ObjectBit
}
fn new_object() &Object {
println("new_object()")
pub fn new_object() &Object {
println("bits: new_object()")
o := &Object{
//elem: &Elem(0),
@ -58,7 +58,7 @@ fn new_object() &Object {
}
// Calc total volume in bits
fn (o &Object) bits_volume() int {
pub fn (o &Object) bits_volume() int {
//return o.dim_x * o.dim_y * o.dim_z
//return o.bits_size
@ -71,12 +71,12 @@ fn (o &Object) bits_volume() int {
}
// Calc total volume in m3
fn (o &Object) volume() f32 {
pub fn (o &Object) volume() f32 {
return bits_to_m3(o.bits_volume())
}
// Calc total mass in kg
fn (o &Object) mass() f32 {
pub fn (o &Object) mass() f32 {
mut total_mass := 0
@ -123,7 +123,7 @@ fn (mut o Object) set_size(mx, my, mz f32) {
*/
// Get size in m3
fn (o &Object) size() f32 {
pub fn (o &Object) size() f32 {
return o.volume()
}

View File

@ -11,7 +11,7 @@ fn main() {
println("main()")
bits.bits_main()
pp(2)
//pp(2)
// XXX init context
//mut ctx := new_context()

View File

@ -1,14 +1,20 @@
module main
import bits
struct Wall {
mut:
obj &Obj // Embed
bits_obj &bits.Object
// Map obj
//cx int
//cy int
h int
// Size
sx int
sy int
sz int
view &WallView
}
@ -16,14 +22,26 @@ mut:
fn new_wall() &Wall {
println("new_wall()")
w := &Wall{
mut w := &Wall{
obj: new_obj(),
bits_obj: &bits.Object(0),
h: 6, // units/tiles/steps?
sx: 1,
sy: 1,
sz: 6, // units/tiles/steps?
view: &WallView(0),
}
// Bits Object
{
mut bo := bits.new_object()
bo.name = "wall"
bo.mat_info.add_elem_from_size(w.sx, w.sy, w.sz, bits_ctx.elem_lib["stone"])
w.bits_obj = bo
}
return w
}