@David_Tschumperle
A sneak peak of what I’m doing.
foo:
rm
tile_size=32
gw=512
gh=512
nw={floor($gw/$tile_size)*$tile_size}
nh={floor($gh/$tile_size)*$tile_size}
$gw,$gh,1,4,((x%$tile_size==0)||(y%$tile_size==0))||(x==(w-1)||y==(h-1))?1
n 0,255
i $1
l.
xr={ceil(w#-1/(16*$tile_size))}
yr={ceil(h#-1/(16*$tile_size))}
split_tiles. {-16*$tile_size}
mw=${-max_w}
mh=${-max_h}
ti=$!
endl
$tile_size,$tile_size,1,4,0
w[0] {w#0},{h#0},0,"Grid"
w1[1] {w#1},{h#1},0,"Tileset"
w2[-1] {w#-1*2},{h#-1*2},0,"Tile"
ci=0
lr=0
tb=0
tbc=0
ni=1
do
x,y,b,ww,wh={*,x,y,b,w,h}
x1,y1,b1,ww1,wh1={*1,x,y,b,w,h}
if {*1,ARROWRIGHT}
lr+=1
lr={$lr%$xr}
ci={($lr+$tb)%$ti}
ni={$ci+1}
w1[$ni]
elif {*1,ARROWLEFT}
lr-=1
lr={$lr%$xr}
ci={($lr+$tb)%$ti}
ni={$ci+1}
w1[$ni]
elif {*1,ARROWDOWN}
tbc+=1
tbc={$tbc%$yr}
tb={$tbc*$xr}
ci={($lr+$tb)%$ti}
ni={$ci+1}
w1[$ni]
elif {*1,ARROWUP}
tbc-=1
tbc={$tbc%$yr}
tb={$tbc*$xr}
ci={($lr+$tb)%$ti}
ni={$ci+1}
w1[$ni]
fi
if $b1" && "$x1>=0" && "$y1>=0
f. i(#$ni,floor($x1/$tile_size)*$tile_size+x,floor($y1/$tile_size)*$tile_size+y,z,c)
w2[-1]
fi
if $b" &&"$x>=0" && "$y>=0
sh. 3
j[0] [-2],{floor($x/$tile_size)*$tile_size},{floor($y/$tile_size)*$tile_size},0,0,1,[-1],255
rm.
w[0]
fi
wait
while {*}" && "!{*,ESC}