1
0
Fork 0
auts/isotest/fieldview.v

79 lines
1.2 KiB
V

module main
import os
struct FieldView {
mut:
m &Field
tiles map[string]voidptr
}
fn new_fieldview(m &Field) &FieldView {
v := &FieldView{
m: m,
}
return v
}
fn (mut v FieldView) load() {
println("fieldview load()")
path := "res/images/tiles/test1"
for f in os.walk_ext(path, ".png") {
println("f: $f")
//mut name := os.file_name(f).trim_right(".png")
mut name := os.file_name(f).all_before_last(".png")
//println("z: $name")
if name.count("_") != 1 {
//idx := name.index_after(5)
name = name.all_before_last("_")
}
println("name: $name")
tex := v.m.ctx.drawer.load_image_tex(f)
v.tiles[name] = tex
//pp(2)
}
//pp(2)
}
fn (mut v FieldView) spawn() {
println("fiedview spawn()")
v.load()
}
fn (mut v FieldView) draw() {
println("fieldview draw()")
c_tile_w := 32
c_tile_h := 16
for y in 0 .. v.m.h {
for x in 0 .. v.m.w {
c := v.m.cells[x][y]
name := "tile_${c.tile_id}"
println("name: $name")
tex := v.tiles[name]
if isnil(tex) {
println("tex is nil")
pp(2)
}
px := c_tile_w * x
py := c_tile_h * y
//v.m.ctx.drawer.draw_tex(px, py, tex)
v.m.ctx.drawer.draw_tex(tex, px, py)
}
}
}