diff --git a/luprex/core/lua/teppygame.lua b/luprex/core/lua/teppygame.lua new file mode 100644 index 00000000..278775dc --- /dev/null +++ b/luprex/core/lua/teppygame.lua @@ -0,0 +1,41 @@ +maketangible('grass') + +if global.once("build grass") then + for y=0,4 do for x=0,y%2==1 and 3 or 4 do + tangible.build{class="grass",x=y%2==1 and 2*x+1 or 2*x+1,y=2*y+1,z=0,plane="main",graphic="grass"} + end end + end + +if global.once("walkable") then global.walkable={} end +if global.once("walkable main") then global.walkable["main"]={} end + + +function walkable(pl,x,y) + if not global.walkable then return false end + if not global.walkable[pl] then return false end + if not global.walkable[pl][y] then return false end + return global.walkable[pl][y][x] or false + end + +function setwalkable(pl,x,y,val) + if not global.walkable[pl][y] then global.walkable[pl][y]={} end + global.walkable[pl][y][x]=val + end + +if global.once("walkablexy") then for y=0,4 do for x=0,4 do setwalkable("main",x,y,true) end end end + +function player.move(actor,place,dx,dy) + local _,pl,x,y,_,_=tangible.animstate(actor) + print("Checking walkable "..pl.." "..x.." "..y.." is "..(walkable(pl,x+dx,y+dy) and "true" or "false")) + if not walkable(pl,x+dx,y+dy) then print("Not walkable") else + tangible.animate(place, {action="walk", dx=dx,dy=dy}) + local lis=tangible.near(actor,1,false,true) + if #lis==0 then print("The area is empty") + else for _,t in pairs(lis) do + print("There is a "..tangible.getclass(t).." here") + end end + end + _,pl,x,y,_,_=tangible.animstate(actor) + print("Your location is "..x.." "..y) +end +