Round and pubsub lib.

This commit is contained in:
jussi
2024-03-17 10:38:30 +02:00
parent ca238975dc
commit ae1d0b65f1
18 changed files with 123 additions and 28 deletions

View File

@@ -40,8 +40,6 @@ function RL.init()
camera:setTarget( { 0, 0, 0 } )
camera:setUp( { 0, 1, 0 } )
camera.mode = camera.MODES.ORBITAL
-- camera.mode = camera.MODES.FREE
-- camera.mode = camera.MODES.FIRST_PERSON
heigthImage = RL.LoadImage( RL.GetBasePath().."../resources/images/heightmap.png" )
@@ -78,7 +76,7 @@ function RL.init()
material = RL.LoadMaterialDefault()
RL.SetMaterialTexture( material, RL.MATERIAL_MAP_ALBEDO, groundTexture )
matrix = RL.MatrixMultiply( RL.MatrixIdentity(), RL.MatrixTranslate( { -4, 0, -4 } ) )
matrix = RL.MatrixTranslate( { -4, 0, -4 } )
end
function RL.update( delta )

View File

@@ -31,15 +31,12 @@ function RL.init()
camera:setTarget( { 0, 0, 0 } )
camera:setUp( { 0, 1, 0 } )
camera.mode = camera.MODES.ORBITAL
-- camera.mode = camera.MODES.FREE
-- camera.mode = camera.MODES.FIRST_PERSON
local ts = PLANE_SIZE
local meshData = {
vertices = { { 0, 0, 0 }, { 0, 0, PLANE_SIZE }, { PLANE_SIZE, 0, PLANE_SIZE },
{ 0, 0, 0 }, { PLANE_SIZE, 0, PLANE_SIZE }, { PLANE_SIZE, 0, 0 } },
texcoords = { { 0, 0 }, { 0, ts }, { ts, ts },
{ 0, 0 }, { ts, ts }, { ts, 0 } },
texcoords = { { 0, 0 }, { 0, PLANE_SIZE }, { PLANE_SIZE, PLANE_SIZE },
{ 0, 0 }, { PLANE_SIZE, PLANE_SIZE }, { PLANE_SIZE, 0 } },
texcoords2 = { { 0, 0 }, { 0, 1 }, { 1, 1 },
{ 0, 0 }, { 1, 1 }, { 1, 0 } },
colors = { RL.WHITE, RL.WHITE, RL.WHITE,
@@ -80,7 +77,7 @@ function RL.init()
},
}
material = RL.CreateMaterial( materialData )
matrix = RL.MatrixMultiply( RL.MatrixIdentity(), RL.MatrixTranslate( { -4, 0, -4 } ) )
matrix = RL.MatrixTranslate( { -PLANE_SIZE / 2, 0, -PLANE_SIZE / 2 } )
end
function RL.update( delta )

View File

@@ -79,7 +79,9 @@ local function addPropertyList()
nil,
{
properties = {
{ RL.SCROLLBAR, RL.ARROWS_VISIBLE, RL.ARROWS_VISIBLE },
-- { RL.SCROLLBAR, RL.ARROWS_VISIBLE, RL.ARROWS_VISIBLE },
{ RL.LISTVIEW, RL.BORDER_COLOR_FOCUSED, RL.GuiGetStyle( RL.LISTVIEW, RL.BORDER_COLOR_NORMAL ) },
{ RL.LISTVIEW, RL.BORDER_COLOR_PRESSED, RL.GuiGetStyle( RL.LISTVIEW, RL.BORDER_COLOR_NORMAL ) },
}
}
)

View File

@@ -144,4 +144,13 @@ function Color:alphaBlend( dst, src, tint )
return Color:new( RL.ColorAlphaBlend( dst, src, tint ) )
end
function Color:lerp( color, amount )
return Color:new(
RL.Lerp( self.r, color.r, amount ),
RL.Lerp( self.g, color.g, amount ),
RL.Lerp( self.b, color.b, amount ),
RL.Lerp( self.a, color.a, amount )
)
end
return Color

View File

@@ -0,0 +1,34 @@
local PubSub = {}
PubSub.__index = PubSub
function PubSub:new()
local object = setmetatable( {}, self )
object.signals = {}
return object
end
function PubSub:add( name )
self.signals[ name ] = {}
end
function PubSub:subscribe( name, func )
table.insert( self.signals[ name ], func )
end
function PubSub:unSubscribe( name, uFunc )
for i, func in ipairs( self.signals[ name ] ) do
if func == uFunc then
table.remove( self.signals[ name ], i )
end
end
end
function PubSub:publish( name, ... )
for _, func in ipairs( self.signals[ name ] ) do
func( ... )
end
end
return PubSub

View File

@@ -1,5 +1,10 @@
-- Define useful global functions.
-- For luaJit compatibility.
if table.unpack == nil then
table.unpack = unpack
end
local utillib = {}
function utillib.tableClone( org )

View File

@@ -248,4 +248,6 @@ function RL.draw()
0.0,
RL.WHITE
)
RL.DrawFPS( { 20, 20 } )
end

View File

@@ -11,10 +11,10 @@ end
function RL.update( delta )
if RL.IsKeyPressed( RL.KEY_ENTER ) then
local winSize = RL.GetScreenSize()
local measuredSize = RL.MeasureTextEx( RL.GetFontDefault(), text, textSize, 2 )
textSize = RL.MeasureText( text, textSize )
textColor = RL.BLUE
textPos = { winSize[1] / 2 - textSize[1] / 2, winSize[2] / 2 - textSize[2] / 2 }
textPos = { winSize[1] / 2 - measuredSize[1] / 2, winSize[2] / 2 - measuredSize[2] / 2 }
end
if RL.IsKeyPressed( RL.KEY_SPACE ) then
@@ -25,5 +25,5 @@ end
function RL.draw()
RL.ClearBackground( RL.RAYWHITE )
RL.DrawText( text, textPos, textSize, textColor )
RL.DrawText( text, textPos, textSize, textColor )
end