From fd0a9546f686636fc7294fd4504e16ea4cef53e0 Mon Sep 17 00:00:00 2001 From: coaljoe Date: Wed, 23 Sep 2020 22:22:16 +0300 Subject: [PATCH] add bits_object generation to wall --- isotest/bits/material.v | 18 +++++++++--------- isotest/bits/object.v | 14 +++++++------- isotest/main.v | 2 +- isotest/wall.v | 24 +++++++++++++++++++++--- 4 files changed, 38 insertions(+), 20 deletions(-) diff --git a/isotest/bits/material.v b/isotest/bits/material.v index f8b4303..0ffbf8f 100644 --- a/isotest/bits/material.v +++ b/isotest/bits/material.v @@ -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] diff --git a/isotest/bits/object.v b/isotest/bits/object.v index fae1228..1154f14 100644 --- a/isotest/bits/object.v +++ b/isotest/bits/object.v @@ -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() } diff --git a/isotest/main.v b/isotest/main.v index b59a4ea..5e8d0eb 100644 --- a/isotest/main.v +++ b/isotest/main.v @@ -11,7 +11,7 @@ fn main() { println("main()") bits.bits_main() - pp(2) + //pp(2) // XXX init context //mut ctx := new_context() diff --git a/isotest/wall.v b/isotest/wall.v index d587a65..ec55e40 100644 --- a/isotest/wall.v +++ b/isotest/wall.v @@ -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 }