Merge branch 'main' of https://github.com/jyelon/luprex into main
This commit is contained in:
7
luprex/core/lua/basics.lua
Normal file
7
luprex/core/lua/basics.lua
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
NilIsZero={
|
||||||
|
__index=function(t,k)
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
__newindex=function(t,k,v)
|
||||||
|
if v~=nil and v~=0 then rawset(t,k,v) end
|
||||||
|
end }
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
makeclass('player')
|
|
||||||
makeclass('buff')
|
|
||||||
|
|
||||||
function player.interface(actor,place)
|
|
||||||
gui.menu_item("cb_north","Go North")
|
|
||||||
gui.menu_item("cb_south","Go South")
|
|
||||||
gui.menu_item("cb_west" ,"Go West")
|
|
||||||
gui.menu_item("cb_east" ,"Go East")
|
|
||||||
gui.menu_item("cb_emit" ,"Emit Buff")
|
|
||||||
gui.menu_item("cb_map" ,"Where Am I?")
|
|
||||||
end
|
|
||||||
|
|
||||||
function player.cb_where(actor,place)
|
|
||||||
pprint(tangible.xyz(actor))
|
|
||||||
end
|
|
||||||
|
|
||||||
function player.cb_north(actor,place) tangible.animate(actor,{action="walk",dy= 1}) end
|
|
||||||
function player.cb_south(actor,place) tangible.animate(actor,{action="walk",dy=-1}) end
|
|
||||||
function player.cb_west (actor,place) tangible.animate(actor,{action="walk",dx=-1}) end
|
|
||||||
function player.cb_east (actor,place) tangible.animate(actor,{action="walk",dx= 1}) end
|
|
||||||
|
|
||||||
function player.cb_emit(actor,place)
|
|
||||||
tangible.build{class='buff',x=0,y=0,z=0,plane='main',graphic='Ring'}
|
|
||||||
end
|
|
||||||
|
|
||||||
function seq(a,b,c) return a<=b and b<=c or false end
|
|
||||||
|
|
||||||
function player.cb_map(actor,place)
|
|
||||||
local rad=2
|
|
||||||
local map={}
|
|
||||||
local lis=tangible.near(actor,rad,true,false)
|
|
||||||
local ax,ay=tangible.xyz(actor)
|
|
||||||
for _,t in ipairs(lis) do
|
|
||||||
local x,y=tangible.xyz(t)
|
|
||||||
local dx=ax-x
|
|
||||||
local dy=ay-y
|
|
||||||
local class=tangible.getclass(t)
|
|
||||||
if seq(-rad,dx,rad) and seq(-rad,dy,rad) then
|
|
||||||
local offset=(dy+rad)*(rad*2+1)+dx+rad
|
|
||||||
if not map[offset] then map[offset]={} end
|
|
||||||
if class=='buff' then map[offset].buff=true
|
|
||||||
elseif class=='player' then map[offset].player=true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for dy=-rad,rad do for line=1,3 do
|
|
||||||
local str=""
|
|
||||||
for dx=-rad,rad do
|
|
||||||
local offset=(dy+rad)*(rad*2+1)+dx+rad
|
|
||||||
str=str.."---"
|
|
||||||
end
|
|
||||||
print(str)
|
|
||||||
end end
|
|
||||||
end
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user