79 lines
1.2 KiB
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)
|
|
}
|
|
}
|
|
} |