diff options
Diffstat (limited to 'src/lua/modules/embed')
| -rw-r--r-- | src/lua/modules/embed/boot.lua.h | 178 | ||||
| -rw-r--r-- | src/lua/modules/embed/embed.h | 49 | ||||
| -rw-r--r-- | src/lua/modules/embed/graphics.lua.h | 4 | ||||
| -rw-r--r-- | src/lua/modules/embed/keyboard.lua.h | 15 | ||||
| -rw-r--r-- | src/lua/modules/embed/mouse.lua.h | 14 | ||||
| -rw-r--r-- | src/lua/modules/embed/net.lua.h | 4 | ||||
| -rw-r--r-- | src/lua/modules/embed/path.lua.h | 14 | 
7 files changed, 0 insertions, 278 deletions
| diff --git a/src/lua/modules/embed/boot.lua.h b/src/lua/modules/embed/boot.lua.h deleted file mode 100644 index d84ca21..0000000 --- a/src/lua/modules/embed/boot.lua.h +++ /dev/null @@ -1,178 +0,0 @@ -/* boot.lua */ -static const char* boot_lua = R"( -jin._argv[2] = jin._argv[2] or '.' -jin.filesystem.init() -jin.filesystem.mount(jin._argv[2]) - -------------------------------------------------------------------------- --- Config game -------------------------------------------------------------------------- - -jin.config  = {}  -if jin.filesystem.exist("config.lua") then  -    jin.config = require "config"     -end -jin.config.width      = jin.config.width      or 576  -jin.config.height     = jin.config.height     or 448  -jin.config.vsync      = jin.config.vsync      or false -jin.config.title      = jin.config.title      or ("jin v" .. jin.version()) -jin.config.resizable  = jin.config.resizable  or false  -jin.config.fullscreen = jin.config.fullscreen or false - -------------------------------------------------------------------------- --- Initialize sub systems -------------------------------------------------------------------------- - -jin.graphics.init(jin.config) -jin.audio.init() - -------------------------------------------------------------------------- --- Default game loop -------------------------------------------------------------------------- - -local function call(func, ...) -    if func then  -        return func(...) -    end -end - -jin.core.setHandler = function(handler) -	if handler == nil then  -		return  -	end  -	jin.core.onLoad = handler.onLoad -	jin.core.onEvent = handler.onEvent -	jin.core.onUpdate = handler.onUpdate -	jin.core.onDraw = handler.onDraw -end  - -function jin.core.run() -    call(jin.core.onLoad) -    local dt = 0 -    local previous = jin.time.second() -	local current = previous -    while jin.core.running() do -        for _, e in pairs(jin.event.poll()) do  -            if e.type == "keydown" then  -                jin.keyboard.set(e.key, true)  -            elseif e.type == "keyup" then  -                jin.keyboard.set(e.key, false) -            end -            call(jin.core.onEvent, e) -        end - -		previous = current -        current = jin.time.second()  -        dt = current - previous - -        call(jin.core.onUpdate, dt) - -		if jin.graphics then  -			jin.graphics.unbindCanvas()  -			jin.graphics.clear()  -			jin.graphics.setColor() -			jin.graphics.setFont() -			call(jin.core.onDraw) -			jin.graphics.present() -		end		 -		 -		if jin.time then  -			jin.time.sleep(0.001) -		end		 -    end -end - -------------------------------------------------------------------------- --- No game handler -------------------------------------------------------------------------- - -jin.nogame = { -    cs = 64,  -    sw = jin.graphics.getWidth(),  -    sh = jin.graphics.getHeight(),  -    cw = 0, -    ch = 0, -    ww = 6, -    ww2 = 6*2,  -    speed = 4,  -    t = 0, -    onLoad = function() -        local nogame = jin.nogame -        nogame.cw = nogame.sw / nogame.cs  -        nogame.ch = nogame.sh / nogame.cs  -        nogame.t = nogame.ww - 1 -    end,  -    onEvent = function(e) -        if e.type == 'quit' then  -            jin.core.stop() -        end -    end, -    onUpdate = function(dt) -        local nogame = jin.nogame -        nogame.t = nogame.t + dt * nogame.speed  -        if nogame.t > nogame.ww2 then  -            nogame.t = nogame.t - nogame.ww2  -        end  -    end,  -    circle = function(x, y, r) -        local nogame = jin.nogame -        if r % nogame.ww2 > nogame.ww then  -            return  -        end  -        r = math.sin((r/nogame.ww)*math.pi)*nogame.cs/2 -        local fact = (x + y) / nogame.ch * nogame.cw -        jin.graphics.setColor( -			155 + 100 * math.sin(fact),  -			155 + 100 * math.cos(fact),  -			155 + 100 * math.sin(fact * fact),  -			255 -		) -        jin.graphics.circle("fill", x*nogame.cs + nogame.cs/2, y*nogame.cs + nogame.cs/2, r) -    end, -    onDraw = function()  -        local nogame = jin.nogame -        for y = 0, nogame.ch - 1 do  -            for x = 0, nogame.cw - 1 do  -                nogame.circle(x, y, nogame.t+x+y) -            end  -        end -    end -} - -------------------------------------------------------------------------- --- Boot jin -------------------------------------------------------------------------- - -local function onError(msg)  -    local tab = '    ' -    print("Error:\n" .. msg) -    function jin.core.onEvent(e)  -        if e.type == 'quit' then  -            jin.core.stop() -        end -    end -    local ww, wh = jin.graphics.getSize()  -    function jin.core.onDraw()  -        jin.graphics.write("Error: ", 10, 10, 30, 3, 30) -        jin.graphics.write(msg, 10, 50)  -    end -end - -local function boot()  -    if jin.filesystem.exist("main.lua") then  -        -- require main game script -        xpcall(function() require"main" end, onError) -        jin.core.run() -    else -        -- no game  -		jin.core.setHandler(jin.nogame) -        jin.core.run() -    end -    jin.graphics.destroy() -    jin.audio.destroy() -    jin.core.quit() -end  - -xpcall(boot, onError) - -)"; diff --git a/src/lua/modules/embed/embed.h b/src/lua/modules/embed/embed.h deleted file mode 100644 index 18ed1d8..0000000 --- a/src/lua/modules/embed/embed.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef __JIN_LUA_EMBED_H -#define __JIN_LUA_EMBED_H -#include <cstring> - -namespace jin -{ -namespace embed -{ -     -    /** -    * embed lua script to context. -    */ -#define embed(L, script, name)\ -    if(luax_loadbuffer(L, script, strlen(script), name) == 0)\ -        lua_call(L, 0, 0); - -    /** -    * embed structure.  -    */ -    struct jin_Embed -    { -        const char* file, *source; -    }; - -    static void boot(lua_State* L) -    { -        // embed scripts  -        #include "graphics.lua.h" // graphics  -        #include "keyboard.lua.h" // keyboard -        #include "mouse.lua.h"    // mouse -        #include "boot.lua.h"     // boot - -        // embed scripts  -        const jin_Embed scripts[] = { -        { "graphics.lua", graphics_lua }, -        { "keyboard.lua", keyboard_lua }, -        { "mouse.lua",    mouse_lua }, -        { "boot.lua",     boot_lua }, -        { 0, 0 } -        }; - -        // load all emebd lua scripts -        for (int i = 0; scripts[i].file; ++i) -            embed(L, scripts[i].source, scripts[i].file); -    } -} -} - -#endif
\ No newline at end of file diff --git a/src/lua/modules/embed/graphics.lua.h b/src/lua/modules/embed/graphics.lua.h deleted file mode 100644 index 1414efc..0000000 --- a/src/lua/modules/embed/graphics.lua.h +++ /dev/null @@ -1,4 +0,0 @@ -/* graphics.lua */ -static const char* graphics_lua = R"( -jin.graphics = jin.graphics or {}  -)"; diff --git a/src/lua/modules/embed/keyboard.lua.h b/src/lua/modules/embed/keyboard.lua.h deleted file mode 100644 index 77bf3a9..0000000 --- a/src/lua/modules/embed/keyboard.lua.h +++ /dev/null @@ -1,15 +0,0 @@ - -static const char* keyboard_lua = R"( -jin.keyboard = jin.keyboard or {}  - -local keys = {}  - -function jin.keyboard.isDown(k)  -    return keys[k] -end   - -function jin.keyboard.set(k, status)  -    keys[k] = status  -end  - -)"; diff --git a/src/lua/modules/embed/mouse.lua.h b/src/lua/modules/embed/mouse.lua.h deleted file mode 100644 index 3c222f3..0000000 --- a/src/lua/modules/embed/mouse.lua.h +++ /dev/null @@ -1,14 +0,0 @@ -static const char* mouse_lua = R"( -jin.mouse = jin.mouse or {}  - -local button = {}  - -function jin.mouse.isDown(btn)  -    return button[btn] -end  - -function jin.mouse.set(btn, status)  -    button[btn] = status -end  - -)";
\ No newline at end of file diff --git a/src/lua/modules/embed/net.lua.h b/src/lua/modules/embed/net.lua.h deleted file mode 100644 index 4d89dc7..0000000 --- a/src/lua/modules/embed/net.lua.h +++ /dev/null @@ -1,4 +0,0 @@ -/* net.lua */ -static const char* net_lua = R"( -jin.net = jin.net or {}  -)";
\ No newline at end of file diff --git a/src/lua/modules/embed/path.lua.h b/src/lua/modules/embed/path.lua.h deleted file mode 100644 index 648adf8..0000000 --- a/src/lua/modules/embed/path.lua.h +++ /dev/null @@ -1,14 +0,0 @@ -/* path.lua */ -static const char* path_lua = R"( -jin.path = jin.path or {}  - --- game root directory  -jin._root = nil  - --- return full path of a given path  -function jin.path.full(path) -    local root = jin._dir .. '/' .. jin._argv[2] -    return root .. '/' .. path  -end - -)";
\ No newline at end of file | 
