From 86722ea10eb398275d425411207d6b77ae114893 Mon Sep 17 00:00:00 2001 From: MaddoScientisto Date: Mon, 22 Apr 2024 21:54:00 +0200 Subject: [PATCH] Added module system --- cirnofarm.p64 | 106 ++++++++++++++++++++++++++++++--------------- src/cirno.lua | 29 ++++++++++--- src/strawberry.lua | 8 ++++ 3 files changed, 104 insertions(+), 39 deletions(-) create mode 100644 src/strawberry.lua diff --git a/cirnofarm.p64 b/cirnofarm.p64 index e40ef30..53ffcf1 100644 --- a/cirnofarm.p64 +++ b/cirnofarm.p64 @@ -6,7 +6,7 @@ version 2 :: sfx/ :: gfx/0.gfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yMSAyMTozMTo0MCIscmV2aXNpb249NDkwXV1sejQAbgYAAOA6AADzFHtbMF09e2JtcD1weHUA +NC0yMiAxOTo1Mzo0MyIscmV2aXNpb249NTM1XV1sejQAbgYAAOA6AADzFHtbMF09e2JtcD1weHUA QyAQEATw8CxmbGFncz0wLHBhbl94CADaeT0wLHpvb209MTF9LDIA8QivGyPeA34D3iPeA-4JE24D ThNuI04DfhMA-wOOAz4DTgMuI34jLgOeA-4UAy5eAB3wCfBFTYAtJi1QHWYdBSAdhg0VAB2WHRUN pgQAww0VAA2WHQUQvQXwE1gAHzFYABXwKlBEgBRPHxRQDxSPHwRALxRPHyRADxQfH0QODxkEQA8U @@ -38,11 +38,11 @@ EAfwBAcQByAHMAeAQgAdkAgAOAAIAAgwCAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA-------- ------------------------------------w1A9MTF9fQ== :: gfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yMSAyMTozMTo0MCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yMiAxOTo1Mzo0MyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: map/0.map b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yMSAyMTozMTo0MCIscmV2aXNpb249NTAxXV1sejQAagIAALFBAADwCHt7Ym1wPXVzZXJkYXRh +NC0yMiAxOTo1Mzo0MyIscmV2aXNpb249NTQ2XV1sejQAagIAALFBAADwCHt7Ym1wPXVzZXJkYXRh KCJpMTYiLDMyAwAvIjABAP--jD80ODABAF4vNDABAAs-MTMw9AL--1wOBAMOIAAPAQBGEzMEAAgB AC8zMAEATi80OBgADw4kAA8BADkOaAAPAQD----------8vxGSIpLGhpZGRlbj1mYWxzZSxuYW1l PSJvYmplY3RzIixwYW5feD0tOTAKAPIBeT0tMTEwLHRpbGVfaD0xNgoAEHcKAI96b29tPTF9LGsQ @@ -56,11 +56,11 @@ ACIPAQA3HzgEACIPgAE3HzgEACMPAQA1LzE4BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4 BAAjD9cg-----------FTGJhY2vXIA9uEBFQbT0xfX0= :: map/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yMSAyMTozMTo0MCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yMiAxOTo1Mzo0MyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: sfx/0.sfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yMSAyMTozMTo0MCIscmV2aXNpb249NDAwXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ +NC0yMiAxOTo1Mzo0MyIscmV2aXNpb249NDQ1XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g @@ -69,43 +69,81 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J 8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw== :: sfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yMSAyMTozMTo0MCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yMiAxOTo1Mzo0MyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: main.lua ---[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-21 21:31:40",revision=522]] +--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-22 19:53:43",revision=587]] --cd("/cirnofarm/src") -include("/cirnofarm/src/cirno.lua") ---function _init() --- x = 128 --- y = 128 --- hflip = false --- playerSpr = 64 ---end +--include("/cirnofarm/src/cirno.lua") ---function _init() +function make_path(name) + local base_path = "/cirnofarm/src/" -- Change this when releasing + return base_path .. name +end ---end +local _modules = {} ---function _draw() --- camera(x - 240, y - 135) --- cls(0) - --drawMap() - --- spr(playerSpr,x,y, hflip) +function loadfile (filename) + local src = fetch(filename) ---end + if (type(src) ~= "string") then + notify("could not include "..filename) + stop() + return + end ---function _update() --- if (btn(0)) x -= 2 hflip = true --- if (btn(1)) x += 2 hflip = false --- if (btn(2)) y -= 2 --- if (btn(3)) y += 2 ---end + -- https://www.lua.org/manual/5.4/manual.html#pdf-load + -- chunk name (for error reporting), mode ("t" for text only -- no binary chunk loading), _ENV upvalue + -- @ is a special character that tells debugger the string is a filename + local func,err = load(src, "@"..filename, "t", _ENV) + -- syntax error while loading + if (not func) then + send_message(3, {event="report_error", content = "*syntax error"}) + send_message(3, {event="report_error", content = tostr(err)}) + + stop() + return + end + return func +end + +function require(name) + local already_imported = _modules[name] + if already_imported ~= nil then + return already_imported + end + + local filename = fullpath(name:gsub ('%.', '/') ..'.lua') + + local func = loadfile (filename) + + local module = func(name) + _modules[name]=module + + return module +end + +local strawberry = require(make_path("strawberry")) +strawberry.func() + +local cirno = require(make_path("cirno")) + +function _init() + cirno.init() +end + +function _update() + cirno.update() +end + +function _draw() + cirno.draw() +end :: .info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w -NC0yMSAyMTozMTo0MCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y -a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0 -aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs -d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9 -NH19XV1sejQABAAAAAMAAAAwbmls +NC0yMiAxOTo1Mzo0MyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y +a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSM2NiIsd29ya3NwYWNlX2luZGV4PTF9LHtsb2Nh +dGlvbj0iZ2Z4LzAuZ2Z4Iix3b3Jrc3BhY2VfaW5kZXg9Mn0se2xvY2F0aW9uPSJtYXAvMC5tYXAi +LHdvcmtzcGFjZV9pbmRleD0zfSx7bG9jYXRpb249InNmeC8wLnNmeCIsd29ya3NwYWNlX2luZGV4 +PTR9fV1dbHo0AAQAAAADAAAAMG5pbA== :: [eoc] diff --git a/src/cirno.lua b/src/cirno.lua index c5ee36d..b349560 100644 --- a/src/cirno.lua +++ b/src/cirno.lua @@ -1,5 +1,7 @@ ---[[pod_format="raw",created="2024-04-14 14:05:11",modified="2024-04-21 21:31:12",revision=319]] +--[[pod_format="raw",created="2024-04-14 14:05:11",modified="2024-04-22 19:53:44",revision=324]] --include("/cirnofarm/src/actor.lua") + + last_coll=0 mouse_debug = true w=480 @@ -48,7 +50,7 @@ function create_bullet(new_x,new_y) }) end -function _init() +function cirno_init() bullets={} player={} @@ -114,7 +116,7 @@ function _init() end -function _draw() +function cirno_draw() cls(0) --camera(x - 240, y - 135) @@ -150,7 +152,7 @@ function drawMap() end end -function _update() +function cirno_update() for p in all(player) do p:update() end @@ -256,4 +258,21 @@ function cmap(o) end return ct or cb -end \ No newline at end of file +end + + +M = {} + +function M.init() + return cirno_init() +end + +function M.update() + return cirno_update() +end + +function M.draw() + return cirno_draw() +end + +return M \ No newline at end of file diff --git a/src/strawberry.lua b/src/strawberry.lua new file mode 100644 index 0000000..8963446 --- /dev/null +++ b/src/strawberry.lua @@ -0,0 +1,8 @@ +--[[pod_format="raw",created="2024-04-22 19:32:54",modified="2024-04-22 19:53:44",revision=3]] +M = {} + +function M.func() + print("inside module.func()") +end + +return M \ No newline at end of file