Added common file to store useful functions
This commit is contained in:
parent
03f68e85e5
commit
2f8c949776
26
koptilnya/common.txt
Normal file
26
koptilnya/common.txt
Normal file
@ -0,0 +1,26 @@
|
||||
NULL_ENTITY = entity(0)
|
||||
|
||||
function deepcopy(orig)
|
||||
local orig_type = type(orig)
|
||||
local copy
|
||||
if orig_type == 'table' then
|
||||
copy = {}
|
||||
for orig_key, orig_value in next, orig, nil do
|
||||
copy[deepcopy(orig_key)] = deepcopy(orig_value)
|
||||
end
|
||||
setmetatable(copy, deepcopy(getmetatable(orig)))
|
||||
else -- number, string, boolean, etc
|
||||
copy = orig
|
||||
end
|
||||
return copy
|
||||
end
|
||||
|
||||
function table:merge(table1, table2)
|
||||
local newTable = deepcopy(table1)
|
||||
|
||||
for k, v in pairs(table2) do
|
||||
newTable[k] = v
|
||||
end
|
||||
|
||||
return newTable
|
||||
end
|
||||
@ -44,16 +44,26 @@ function render.drawArc(x, y, ang, p, rad, seg)
|
||||
end
|
||||
|
||||
function render.drawFilledCircle(x, y, radius, seg)
|
||||
local cir = {}
|
||||
local cir = {}
|
||||
|
||||
table.insert(cir, { x = x, y = y, u = 0.5, v = 0.5 })
|
||||
for i = 0, seg do
|
||||
local a = math.rad(( i / seg ) * -360)
|
||||
table.insert(cir, { x = x + math.sin( a ) * radius, y = y + math.cos( a ) * radius, u = math.sin( a ) / 2 + 0.5, v = math.cos( a ) / 2 + 0.5 })
|
||||
end
|
||||
table.insert(cir, { x = x, y = y, u = 0.5, v = 0.5 })
|
||||
for i = 0, seg do
|
||||
local a = math.rad(( i / seg ) * -360)
|
||||
table.insert(cir, { x = x + math.sin( a ) * radius, y = y + math.cos( a ) * radius, u = math.sin( a ) / 2 + 0.5, v = math.cos( a ) / 2 + 0.5 })
|
||||
end
|
||||
|
||||
local a = math.rad(0)
|
||||
table.insert(cir, { x = x + math.sin( a ) * radius, y = y + math.cos( a ) * radius, u = math.sin( a ) / 2 + 0.5, v = math.cos( a ) / 2 + 0.5 })
|
||||
local a = math.rad(0)
|
||||
table.insert(cir, { x = x + math.sin( a ) * radius, y = y + math.cos( a ) * radius, u = math.sin( a ) / 2 + 0.5, v = math.cos( a ) / 2 + 0.5 })
|
||||
|
||||
render.drawPoly(cir)
|
||||
render.drawPoly(cir)
|
||||
end
|
||||
|
||||
function render.drawRotatedSimpleText(x, y, text, ang)
|
||||
local m = Matrix()
|
||||
m:translate(Vector(x, y, 0 ))
|
||||
m:rotate(Angle(0, ang, 0))
|
||||
|
||||
render.pushMatrix(m)
|
||||
render.drawSimpleText(0, 0, text)
|
||||
render.popMatrix()
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user