summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorjussi2024-01-30 13:36:23 +0200
committerjussi2024-01-30 13:36:23 +0200
commitd21512d88c2e24cf8cb230d29fb253fb5efd1661 (patch)
tree87b62953f4996344d68b93bd8228fc67f07be77d /examples
parent143453af9ea9be82b2d58d665bed62abb716e21f (diff)
downloadreilua-enhanced-d21512d88c2e24cf8cb230d29fb253fb5efd1661.tar.gz
reilua-enhanced-d21512d88c2e24cf8cb230d29fb253fb5efd1661.tar.bz2
reilua-enhanced-d21512d88c2e24cf8cb230d29fb253fb5efd1661.zip
Rune lib and __concat for variable libs.
Diffstat (limited to 'examples')
-rw-r--r--examples/2D_lights/main.lua24
-rw-r--r--examples/resources/lib/color.lua3
-rw-r--r--examples/resources/lib/matrix.lua5
-rw-r--r--examples/resources/lib/quaternion.lua3
-rw-r--r--examples/resources/lib/rectangle.lua3
-rw-r--r--examples/resources/lib/rune.lua97
-rw-r--r--examples/resources/lib/utillib.lua4
-rw-r--r--examples/resources/lib/vector2.lua3
-rw-r--r--examples/resources/lib/vector3.lua3
9 files changed, 130 insertions, 15 deletions
diff --git a/examples/2D_lights/main.lua b/examples/2D_lights/main.lua
index d3aa4e9..9c033eb 100644
--- a/examples/2D_lights/main.lua
+++ b/examples/2D_lights/main.lua
@@ -103,21 +103,21 @@ function RL.init()
createShadowMesh()
- -- addLight( Vector2:new( 230, 480 ), Color:new( RL.ORANGE ), 512 )
- -- addLight( Vector2:new( 600, 200 ), Color:new( RL.RED ), 512 )
- -- addLight( Vector2:new( 384, 520 ), Color:new( RL.GREEN ), 400 )
- -- addLight( Vector2:new( 880, 750 ), Color:new( RL.BLUE ), 300 )
- -- addLight( Vector2:new( 800, 500 ), Color:new( RL.PURPLE ), 512 )
- -- addLight( Vector2:new( 200, 760 ), Color:new( RL.WHITE ), 400 )
+ addLight( Vector2:new( 230, 480 ), Color:new( RL.ORANGE ), 512 )
+ addLight( Vector2:new( 600, 200 ), Color:new( RL.RED ), 512 )
+ addLight( Vector2:new( 384, 520 ), Color:new( RL.GREEN ), 400 )
+ addLight( Vector2:new( 880, 750 ), Color:new( RL.BLUE ), 300 )
+ addLight( Vector2:new( 800, 500 ), Color:new( RL.PURPLE ), 512 )
+ addLight( Vector2:new( 200, 760 ), Color:new( RL.WHITE ), 400 )
-- Stress test
- for i = 1, 300 do
- addLight( Vector2:new( math.random( 20, RESOLUTION.x - 20 ), math.random( 20, RESOLUTION.y - 20 ) ),
- Color:new( { math.random( 40, 255 ), math.random( 40, 255 ), math.random( 40, 255 ), 255 } ),
- 128
- )
- end
+ -- for i = 1, 300 do
+ -- addLight( Vector2:new( math.random( 20, RESOLUTION.x - 20 ), math.random( 20, RESOLUTION.y - 20 ) ),
+ -- Color:new( { math.random( 40, 255 ), math.random( 40, 255 ), math.random( 40, 255 ), 255 } ),
+ -- 128
+ -- )
+ -- end
-- Camera for shadow rendering.
camera = RL.CreateCamera3D()
diff --git a/examples/resources/lib/color.lua b/examples/resources/lib/color.lua
index 1fb06a1..1344dba 100644
--- a/examples/resources/lib/color.lua
+++ b/examples/resources/lib/color.lua
@@ -41,6 +41,9 @@ Color.meta = {
and math.floor( c1.b ) == math.floor( c2.b )
and math.floor( c1.a ) == math.floor( c2.a )
end,
+ __concat = function( a, b )
+ return tostring( a )..tostring( b )
+ end,
}
function Color:new( r, g, b, a )
diff --git a/examples/resources/lib/matrix.lua b/examples/resources/lib/matrix.lua
index 3b68118..3128610 100644
--- a/examples/resources/lib/matrix.lua
+++ b/examples/resources/lib/matrix.lua
@@ -41,7 +41,10 @@ Matrix.meta = {
end,
__mul = function( m1, m2 )
return Matrix:new( RL.MatrixMultiply( m1, m2 ) )
- end
+ end,
+ __concat = function( a, b )
+ return tostring( a )..tostring( b )
+ end,
}
function Matrix:new( m )
diff --git a/examples/resources/lib/quaternion.lua b/examples/resources/lib/quaternion.lua
index a545838..e85415c 100644
--- a/examples/resources/lib/quaternion.lua
+++ b/examples/resources/lib/quaternion.lua
@@ -33,6 +33,9 @@ Quaternion.meta = {
__eq = function( q1, q2 )
return RL.QuaternionEquals( q1, q2 ) == 1
end,
+ __concat = function( a, b )
+ return tostring( a )..tostring( b )
+ end,
}
function Quaternion:new( x, y, z, w )
diff --git a/examples/resources/lib/rectangle.lua b/examples/resources/lib/rectangle.lua
index ba1f9c6..a37c1c1 100644
--- a/examples/resources/lib/rectangle.lua
+++ b/examples/resources/lib/rectangle.lua
@@ -38,6 +38,9 @@ Rectangle.meta = {
__eq = function( r1, r2 )
return RL.Vector2Equals( { r1.x, r1.y }, { r2.x, r2.y } ) and RL.Vector2Equals( { r1.width, r1.height }, { r2.width, r2.height } )
end,
+ __concat = function( a, b )
+ return tostring( a )..tostring( b )
+ end,
}
function Rectangle:new( x, y, width, height )
diff --git a/examples/resources/lib/rune.lua b/examples/resources/lib/rune.lua
new file mode 100644
index 0000000..5809da3
--- /dev/null
+++ b/examples/resources/lib/rune.lua
@@ -0,0 +1,97 @@
+-- For luaJit compatibility.
+if table.unpack == nil then
+ table.unpack = unpack
+end
+
+local Rune = {}
+Rune.meta = {
+ __index = Rune,
+ __tostring = function( r )
+ return r.string
+ end,
+ __len = function( r )
+ return RL.GetCodepointCount( r.string )
+ end,
+ __eq = function( r1, r2 )
+ return r1.string == r2.string
+ end,
+ __concat = function( a, b )
+ return tostring( a )..tostring( b )
+ end,
+}
+
+function Rune:new( string )
+ if type( string ) == "table" then
+ string = RL.LoadUTF8( string )
+ elseif type( string ) == "nil" then
+ string = ""
+ end
+
+ local object = setmetatable( {}, Rune.meta )
+
+ object.string = string
+
+ return object
+end
+
+function Rune:set( string )
+ if type( string ) == "table" then
+ string = RL.LoadUTF8( string )
+ elseif type( string ) == "nil" then
+ string = ""
+ end
+
+ self.string = string
+end
+
+function Rune:clone()
+ return Rune:new( self.string )
+end
+
+function Rune:len()
+ return RL.GetCodepointCount( self.string )
+end
+
+function Rune:getCodepoints()
+ return RL.LoadCodepoints( self.string )
+end
+
+function Rune:getCodepoint( index )
+ local codepoint = RL.GetCodepoint( self:sub( index, index ) )
+ return codepoint
+end
+
+function Rune:getCodepointSize( index )
+ local _, codepointSize = RL.GetCodepoint( self:sub( index, index ) )
+ return codepointSize
+end
+
+function Rune:insert( pos, string )
+ local codepoints = self:getCodepoints()
+
+ for i, codepoint in ipairs( RL.LoadCodepoints( string ) ) do
+ table.insert( codepoints, pos + i - 1, codepoint )
+ end
+ self.string = RL.LoadUTF8( codepoints )
+end
+
+function Rune:sub( i, j )
+ local codepoints = self:getCodepoints()
+ return RL.LoadUTF8( { table.unpack( codepoints, i, j ) } )
+end
+
+function Rune:gsub( pattern, repl )
+ return string.gsub( self.string, pattern, repl )
+end
+
+function Rune:split( delimiter )
+ local splits = {}
+
+ for str in string.gmatch( self.string, "([^"..delimiter.."]+)" ) do
+ table.insert( splits, str )
+ end
+
+ return splits
+end
+
+return Rune
diff --git a/examples/resources/lib/utillib.lua b/examples/resources/lib/utillib.lua
index 95184b0..0b54e12 100644
--- a/examples/resources/lib/utillib.lua
+++ b/examples/resources/lib/utillib.lua
@@ -83,14 +83,14 @@ function utillib.tableLen( t )
return count
end
-function utillib.split( str, sep )
+function utillib.split( string, sep )
if sep == nil then
sep = "%s"
end
local t = {}
- for str in string.gmatch( str, "([^"..sep.."]+)" ) do
+ for str in string.gmatch( string, "([^"..sep.."]+)" ) do
table.insert( t, str )
end
diff --git a/examples/resources/lib/vector2.lua b/examples/resources/lib/vector2.lua
index 15934fb..065e556 100644
--- a/examples/resources/lib/vector2.lua
+++ b/examples/resources/lib/vector2.lua
@@ -36,6 +36,9 @@ Vector2.meta = {
__eq = function( v1, v2 )
return RL.Vector2Equals( v1, v2 ) == 1
end,
+ __concat = function( a, b )
+ return tostring( a )..tostring( b )
+ end,
}
function Vector2:new( x, y )
diff --git a/examples/resources/lib/vector3.lua b/examples/resources/lib/vector3.lua
index ca294e9..9b77881 100644
--- a/examples/resources/lib/vector3.lua
+++ b/examples/resources/lib/vector3.lua
@@ -38,6 +38,9 @@ Vector3.meta = {
__eq = function( v1, v2 )
return RL.Vector3Equals( v1, v2 ) == 1
end,
+ __concat = function( a, b )
+ return tostring( a )..tostring( b )
+ end,
}
function Vector3:new( x, y, z )