diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..b89b601 Binary files /dev/null and b/.DS_Store differ diff --git a/.info.pod b/.info.pod index 496ee17..5dc0d88 100644 Binary files a/.info.pod and b/.info.pod differ diff --git a/appdata/system/code.pod b/appdata/system/code.pod new file mode 100644 index 0000000..db8cfa2 Binary files /dev/null and b/appdata/system/code.pod differ diff --git a/appdata/system/settings.pod b/appdata/system/settings.pod index 8d377d4..d8bf6a1 100644 Binary files a/appdata/system/settings.pod and b/appdata/system/settings.pod differ diff --git a/appdata/system/startup.lua b/appdata/system/startup.lua new file mode 100644 index 0000000..64206a4 --- /dev/null +++ b/appdata/system/startup.lua @@ -0,0 +1,7 @@ +--[[pod_format="raw",created="2024-08-07 14:22:44",modified="2024-08-07 14:25:39",revision=3]] +create_process( + "/listcolors.p64", + {window_attribs = + {workspace = "tooltray", x=2, y=2, width=64*4, height=16*8} + } +) \ No newline at end of file diff --git a/atelier2.p64 b/atelier2.p64 index 67c5b77..fd94c5e 100644 --- a/atelier2.p64 +++ b/atelier2.p64 @@ -5,7 +5,7 @@ version 2 :: map/ :: sfx/ :: art.lua ---[[pod_format="raw",created="2024-03-31 01:52:08",modified="2024-04-23 02:42:09",revision=695]] +--[[pod_format="raw",created="2024-03-31 01:52:08",modified="2024-04-29 15:31:52",revision=710]] function bob(s, x, y, w, h, t) sspr(s, 0, 0, w, h, x+t/2, y-t/2, w-t, h+t) end @@ -70,10 +70,11 @@ function wrap(str, line_length) end function collides(position, object) - if DEBUG then - rect(object.left, object.top, object.right, object.bottom, 8) - end - return position.x < object.right and position.x > object.left and position.y > object.top and position.y < object.bottom + add(collider_renders, object) + return position.x < object.right and + position.x > object.left and + position.y > object.top and + position.y < object.bottom end :: cabinet.lua --[[pod_format="raw",created="2024-04-03 19:46:51",modified="2024-04-23 02:36:18",revision=694]] @@ -337,7 +338,7 @@ function Glow:update() end :: gfx/0.gfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixtb2RpZmllZD0iMjAyNC0w -NC0yMyAwMzoxOTo0NSIscmV2aXNpb249MTI2NF1dbHo0ANMdAAAZZwAA8Rp7WzBdPXtibXA9cHh1 +NC0yOSAxNzo1MDoyMSIscmV2aXNpb249MTI4Nl1dbHo0AGAeAAAZZwAA8Rp7WzBdPXtibXA9cHh1 AEMgEBAE8PAsZmxhZ3M9MCxwYW5feD0wLjM3NQwA_wJ5PS0wLjEyNSx6b29tPTV9LDoAkCR6cAoP HU8eCgcAcD8ODx4KYBoJAP8CDRpQCh8dPw4dClAKDx1fDg0IAAT-Aw8eClAKDl8ODgpQCn4KUJrw A4sAJqUGOrAKHxMKsAoeBADwAKAaHhqQCgMOEQqQCgMPEgcAPQ4dAQYArw4KkAo_CpBa8AV9ACYQ @@ -417,66 +418,69 @@ F25gBuBeoBWgLQINsDKALgeeIELAjjA_wELAQnAeB66CLgIOIl4H2gDggi0A-gPiHgeeAg0yPhLY APAdws5SPRJtAt4CbTINYvABEi1yrm0SLWItAp5STaLwAXIdMn4CbVJdIj1ego3ZAP4BPQ7yAd2y DUKd8BdyTfIETToFDzIHGA86AP------------8kAY4d-wAeFzbwCgcwBvALBhAG8AwFAA-wFwsG MAbwCBZQFvAFBx8ccAbwAwcvGi8cED4G8AEHbxoeTQbwAAfdBQBzHQutBvAABgcA-wgtC50G8AEG -vQbwAwadBvAFFl0W8AhWwBIVJQK8Id-2MPAPBv8aMAbwDgb_BgD-LlEwnxjwAAkAUw0GUAYNDAAS -nQgAEGD8ARkDCgASthAAE5AYAE_gBvACCAAII2ZAEAA-UAYwCgAdUFbwA-Yw8gEfYy8CFB8yXQMn -DzoA-----------------9nwI2CABPD-JL8U8ED_AvA8-gbwOT8V-gTwNz3_BfA1Tf4H8DNN-gjw -Mk3_CvAwTf4L8C9dBQD4AE3_DPAuXf4N8C1N-g3wLgUAMwzwLwUAMQsPDwcAEDwmAPAMCTzwLBxN --gg88C4cPf4HLA8X8DFN-gULHAsMCQDwrAQMCwwLDPAzTb4tLg8ZHAsc8DNdjj0uGjzwNV1ObR4q -PPA2-QFKPPA3zXos8DkKTdoc8Dv6AwzwO5oMivA7amx68DpafHrwOVofHAxpavA4WqlaOfA0WslK -OfA0SgDpKknwMyogmS8QKQpZ8DQKSEn4BPAw_BHwLmgPCvgM8CtoFygn_AfwKfgDNzgXqPAoJ-gM -B7jwIgf4EieI8CH4FgeI8CD4GAd48CD4GSc48B-4IfAf_CLwHfggBxgGAPEHFxjwHPghByjwG-gl -8Bv4JvAaKAn4IgYA8CMOCfgE8BoYCfgOGSgJ_ADwGRgJ_A8ZGAmYB1jwGAgZ_BAJKAmIB1jwGQn4 -ERkoCRgJWBkAVAn4Eik4CwDxAhQZGBlYF1jwFwn4FRkIGWgHCwCBGBno8BYJ_Bk_AGQUGfgVGRgL -AFAUCTgZ6AkAEBpyAIITGfgaGYgXOAkARvgA8BIIABEbiACBEQn4HAmoB0gJACQZmAkAsPgB8BAZ -_BspqAc4CQCmHBm4BzjwDwn4HQkAocgHGPAQCfgcKdhOACApyGUAMBOpuH0A8AEPSXgZqPAVGfgO -GbgZiPAXQgDyAQggGPAaKfgbGQjwHyn4HAkHABAZBgDwJBo5DwzwHin4GFkG8B8Z_BdpLfAdGfgU -aQYJTfAcGfgReQZt8B4J_A6ZbRXwHhn4CpmNJQgAUAapFm1VCQDyQgK5Fn2F8B4ZyMkGjcXwHgmY -uc3V8B8JWKnd9QLwH8kGzfUFAAXwHpkVjfUN8B5prfUPAAXwHQ0ZvfUV8Bvd9RjwGY0FDfUc8Bkt -9STwGT0FDQIAovUc8Bgt9SbwFy0QAEMFDfUdEgAGJACkHvAVPfUo8BQtFRIAhiDwFC31KvASJACF -IvASLfUs8BASAAEUAIUQLfUsAAXwD14AABYAmQ8G8A899SoAFRgAA1gAiw8t9S0ABfAM7wNuLTI5 -LjEwHTlIMzguNzQ5D5ZDAAEEBPEt---DbxTwRe7wPD8Vfile8Dhdjile8Dc9DkluCW7wNj0OWe7w -NT0OaW4KbvA0HT5p7vA0DU5Z-gDwNG5JBgDwhClurxnwNN7c8DQZjvwB8DQZbvwDEB8P8DAZXvwD -EBvwMRle-AILACvwMW6c2-Axbozb8DJejJsfHyvwMl58iyg78DJebEsIGygnG-AzXlwrOEsfDgcL -8DReLB8XGyhLCBsfDivwMx57HxcYCxcPDisYW-AzDpsPFwsnHw47GEvwMx5LHxdLFx8OSwhL8DM_ -Ky8XuxYA8CcNTgwLFrsIW-AzPR4s6xgr8DM9DhwALKsoO-AzLQ5siyhLHxzwNYxrGFsGDxAfHPA0 -jADLBi8KAPJJMqyrFgU-EBXwMQwAfKsGG0Ql8DCc20QVFPAvrMtEJZTwJ4xFixUkRaTwJIwFNBV7 -JQQF9AHwInwVRCV7JfQBFfAgfAWEBWsl9AMF8CBsBZQFaxr0BfAgXAoA8UEG8B9cBZQVawoF9Abw -HkwABZQVWw8MCgX0B-AeLAAldAUEFTsTGvQH8CEVBBVkBRQFSgUapAW08B8VChQlRAUUGlQKpAXE -8BwVAwpEJSQFpA4A8AYaFQQKdCUEBbQKlAXU8BgVxCXECoQKAFAFAwrEFQwA8Ark8BYFAwr0FwX0 -APAVBQr0GBX0APATFfQaCABgEgX0EgqECgDzABEF9BMKdAAF9ALwDwX0FAsAcA4F9BUKZBALABAN -CwARdAsAQQwF9BYhADQD8AsLAKEE8AoF9B8AFfQDCQAQEB0AMgr0IAgAUNQV9BAQGwDyAQgF5AX0 -CApkIBX0AvAI9AANADIl9AENAIUJCkQQFRQl5A4AQQAVRAUOAGAV9AgKRAA6ATAI9AEbAB80DQAC -wRX0DQAF9AXwCPQDBQsAMwTwCQsAUAQq1PALDACADCAaBBq08AwMAMAICiQQCjQalPAN9AJjAKAk -AApUCoTwDvQCVwAADgBAGmTwDw4AkgoKJBVUClTwEA0AYTQFVBo0BQ4A8QQEdfQBCjQFZAokBfAR -5FVkBfQADwCBFAXwEvQNBeQNAHAEBfATBfQMHACzJAVkCgXwFAX0CxUOAMHwFQX0DBrkCiQFClQN -AHALOvQCevAXaQBgFFpE6-AYCgBSZBoU6xYLAIB0CgTbBivwGaUAVIQK6xYbFwBBywYrBg0AUQkK -dArbDQASFyUAAA0AMQvwGAwAhGs-BTsGGwYLKQAxS2IrDwABUABEVBorgg8AUdS1WuIbDABiGgVk -dfIOGADyEhtlbfIOOwYLAhvwGo0CDfISKwYLQvAZLfIcC2LwGT0CDQIAEPJIBVLyJfAYLRAAgAIN -8h7wFy3ySAUCEAABEgAwFT3ySAUUEhIAAEgFEPJIBQIQADACDfJIBRDySAUnAg0UAGUQLfIu8A9c -AJ8CDfIk8A498i4oBSwPoAknD4gK-yAg-xTEGvEBfPQ--gEE-xU9BP4BBP08DgcAIDseBwBBLfQ3 -LggATwT_NQQKAP80BFIBIfQ4YgExHfQ6cQFyDfQ9-gH0P70wMf--6JQBH-2TAf92H1z2GyID5gny -KxjfFvBALr8PHvA9Lu0e8Dse-QIO8Doe-QMe8DkO-QMfEQ4N8DUcHs18DhzwMRwAHA7dDA0cDVzw -MUwKAPYGHA0MDgzwMQwgHv0BDD0MDvA2Dv0IBgBgLU4dTm0uDwCwBR4NDvA3Dl0O-QAIAEBNHv0B -IQBRPR49Ds0qAFAeTQ69HgkAUA5dDp0KLQDwDR4dPi0OjQou8DgOTU6dCg7wOR79BA7wOg5NPq0H -APGALQ5tDm0e8DsOHR5NHl0_8DoeHX5NHh0u8Dk_QH5NHvBBHs0ODQLwPx7NDxhi8DourQtyG-A5 -Dp0bYjvwNAs_nQtiGw0r8DICCw0enRtSGz0CC-AwEgu9G1IbXQIL8CwNCyIbrQtSG30CC-AqHQsy -G30rQhudAgsC8CgdC1IrPRtiC70bAvAnHQtyW2IbzQsLAPIA8gQb3RvwJi0L8gMb7QILCgCwC-0A -G-AlPQvyAhsKAPAEAggX8BA9C-IBG-0CC-ACCDfwDg4A8QAL-QML8AMIN-ANPQvyABsOAEAYR-AL -DgBQC-0CDg0eAGAHGDfwCU0SADFNDr0TAEwYBxgnEwBIAFfwCBIAYQQIEFfwBxIAIz0eEgByIEcA -LxXwAxUAIg7NFQA5MEcpEwCwAvADCDA3KQ3wAl2UABUtFQBwQAdJHfABXbcAUB0ezQ4bPABBWa0g -vREAIQ7dEQBJIEn9DBAAMCn9DhAA0hIO3Q4CC-AK-Q8L8gQMADoL-Q4MABEFCwBUDI0g-QENAPQK -DW3wBBvyBc0eAgvwDk3wBQvyBs0OEgvwKAkAcB0OvfIFvR4KAPACXhBObcLNDiIL8CANAG69ct0L -APEMGmVuC-0RHiIL8BYVDkVOEC4L-REOMgvwFYWeCgDwTfAWhU4AHhAL-RAeIvAXhW4tC-0PHjIA -C-AV1R0Q-REOQivwFLVgC-0NLjJL8BNlECVgCxL9CS6SK-AShYALMv0EPtIb8BFVsAti3T7yAhvw -EFWwC-ICPvIGK-AOCwAiHRsIAEAeG-ANCAAgHwsIAKbyIBvwDFWg8iILBwBgsPIhG-ALJABnIBvw -C2WgCAA-C-AMCAABAEwAAAgAYR4L8A9VoGwAAQgAEByHAPAAoAvyGxvwEUXAC-IZG-ASCABAGBvw -EwgAQBcb8BQIAEEVK-AVCAA-C-AXCAANITXQCABvFkXgC-IUCAAUIxMbCABPCxLwFQkADR8bRAAA -YvAA8hTwFwcAHwPyBBUPyAgnDzoA---------------3UG09NX19 +vQbwAwadBvAFFl0W8AhWwBIVJQAuEfF6--r2BvA6Bv8aBAbwORb_BAbwOBb_BQbwNxb_BhbwNRb_ +CAbwNBb_CQbwMxb_CwbwMRb_DBbwLib_DhbwLBb_EhbwKCb_FBbwJhb_FxbwJBb_GRbwISb_Gxbw +Hxb_HxbwHBb_ISbwGRb_JBbwFxb_JhbwFRb_KQbwFAb_KhbwEhb_KxbwEQb_LQYGAHYW8A8G-i8G +BgBPMAbwDgYAmVEwnxjwAAkAUw0GUAYNDAASnQgAEGD8ARkDCgASthAAE5AYAE_gBvACCAAII2ZA +EAA-UAYwCgAdUFbwA-Yw8gEfYy8CFB8yXQMnDzoA-----------------9nwI2CABPD-JL8U8ED_ +AvA8-gbwOT8V-gTwNz3_BfA1Tf4H8DNN-gjwMk3_CvAwTf4L8C9dBQD4AE3_DPAuXf4N8C1N-g3w +LgUAMwzwLwUAMQsPDwcAEDwmAPAMCTzwLBxN-gg88C4cPf4HLA8X8DFN-gULHAsMCQDwrAQMCwwL +DPAzTb4tLg8ZHAsc8DNdjj0uGjzwNV1ObR4qPPA2-QFKPPA3zXos8DkKTdoc8Dv6AwzwO5oMivA7 +amx68DpafHrwOVofHAxpavA4WqlaOfA0WslKOfA0SgDpKknwMyogmS8QKQpZ8DQKSEn4BPAw_BHw +LmgPCvgM8CtoFygn_AfwKfgDNzgXqPAoJ-gMB7jwIgf4EieI8CH4FgeI8CD4GAd48CD4GSc48B-4 +IfAf_CLwHfggBxgGAPEHFxjwHPghByjwG-gl8Bv4JvAaKAn4IgYA8CMOCfgE8BoYCfgOGSgJ_ADw +GRgJ_A8ZGAmYB1jwGAgZ_BAJKAmIB1jwGQn4ERkoCRgJWBkAVAn4Eik4CwDxAhQZGBlYF1jwFwn4 +FRkIGWgHCwCBGBno8BYJ_Bk_AGQUGfgVGRgLAFAUCTgZ6AkAEBpyAIITGfgaGYgXOAkARvgA8BII +ABEbiACBEQn4HAmoB0gJACQZmAkAsPgB8BAZ_BspqAc4CQCmHBm4BzjwDwn4HQkAocgHGPAQCfgc +KdhOACApyGUAMBOpuH0A8AEPSXgZqPAVGfgOGbgZiPAXQgDyAQggGPAaKfgbGQjwHyn4HAkHABAZ +BgDwJBo5DwzwHin4GFkG8B8Z_BdpLfAdGfgUaQYJTfAcGfgReQZt8B4J_A6ZbRXwHhn4CpmNJQgA +UAapFm1VCQDyQgK5Fn2F8B4ZyMkGjcXwHgmYuc3V8B8JWKnd9QLwH8kGzfUFAAXwHpkVjfUN8B5p +rfUPAAXwHQ0ZvfUV8Bvd9RjwGY0FDfUc8Bkt9STwGT0FDQIAovUc8Bgt9SbwFy0QAEMFDfUdEgAG +JACkHvAVPfUo8BQtFRIAhiDwFC31KvASJACFIvASLfUs8BASAAEUAIUQLfUsAAXwD14AABYAmQ8G +8A899SoAFRgAA1gAiw8t9S0ABfAM7wNuLTI5LjEwHTlIMzguNzQ5D5ZDAAEEBPEt---DbxTwRe7w +PD8Vfile8Dhdjile8Dc9DkluCW7wNj0OWe7wNT0OaW4KbvA0HT5p7vA0DU5Z-gDwNG5JBgDwhClu +rxnwNN7c8DQZjvwB8DQZbvwDEB8P8DAZXvwDEBvwMRle-AILACvwMW6c2-Axbozb8DJejJsfHyvw +Ml58iyg78DJebEsIGygnG-AzXlwrOEsfDgcL8DReLB8XGyhLCBsfDivwMx57HxcYCxcPDisYW-Az +DpsPFwsnHw47GEvwMx5LHxdLFx8OSwhL8DM_Ky8XuxYA8CcNTgwLFrsIW-AzPR4s6xgr8DM9DhwA +LKsoO-AzLQ5siyhLHxzwNYxrGFsGDxAfHPA0jADLBi8KAPJJMqyrFgU-EBXwMQwAfKsGG0Ql8DCc +20QVFPAvrMtEJZTwJ4xFixUkRaTwJIwFNBV7JQQF9AHwInwVRCV7JfQBFfAgfAWEBWsl9AMF8CBs +BZQFaxr0BfAgXAoA8UEG8B9cBZQVawoF9AbwHkwABZQVWw8MCgX0B-AeLAAldAUEFTsTGvQH8CEV +BBVkBRQFSgUapAW08B8VChQlRAUUGlQKpAXE8BwVAwpEJSQFpA4A8AYaFQQKdCUEBbQKlAXU8BgV +xCXECoQKAFAFAwrEFQwA8Ark8BYFAwr0FwX0APAVBQr0GBX0APATFfQaCABgEgX0EgqECgDzABEF +9BMKdAAF9ALwDwX0FAsAcA4F9BUKZBALABANCwARdAsAQQwF9BYhADQD8AsLAKEE8AoF9B8AFfQD +CQAQEB0AMgr0IAgAUNQV9BAQGwDyAQgF5AX0CApkIBX0AvAI9AANADIl9AENAIUJCkQQFRQl5A4A +QQAVRAUOAGAV9AgKRAA6ATAI9AEbAB80DQACwRX0DQAF9AXwCPQDBQsAMwTwCQsAUAQq1PALDACA +DCAaBBq08AwMAMAICiQQCjQalPAN9AJjAKAkAApUCoTwDvQCVwAADgBAGmTwDw4AkgoKJBVUClTw +EA0AYTQFVBo0BQ4A8QQEdfQBCjQFZAokBfAR5FVkBfQADwCBFAXwEvQNBeQNAHAEBfATBfQMHACz +JAVkCgXwFAX0CxUOAMHwFQX0DBrkCiQFClQNAHALOvQCevAXaQBgFFpE6-AYCgBSZBoU6xYLAIB0 +CgTbBivwGaUAVIQK6xYbFwBBywYrBg0AUQkKdArbDQASFyUAAA0AMQvwGAwAhGs-BTsGGwYLKQAx +S2IrDwABUABEVBorgg8AUdS1WuIbDABiGgVkdfIOGADyEhtlbfIOOwYLAhvwGo0CDfISKwYLQvAZ +LfIcC2LwGT0CDQIAEPJIBVLyJfAYLRAAgAIN8h7wFy3ySAUCEAABEgAwFT3ySAUUEhIAAEgFEPJI +BQIQADACDfJIBRDySAUnAg0UAGUQLfIu8A9cAJ8CDfIk8A498i4oBSwPoAknD4gK-yAg-xTEGvEB +fPQ--gEE-xU9BP4BBP08DgcAIDseBwBBLfQ3LggATwT_NQQKAP80BFIBIfQ4YgExHfQ6cQFyDfQ9 +-gH0P70wMf--6JQBH-2TAf92H1z2GyID5gnyKxjfFvBALr8PHvA9Lu0e8Dse-QIO8Doe-QMe8DkO +-QMfEQ4N8DUcHs18DhzwMRwAHA7dDA0cDVzwMUwKAPYGHA0MDgzwMQwgHv0BDD0MDvA2Dv0IBgBg +LU4dTm0uDwCwBR4NDvA3Dl0O-QAIAEBNHv0BIQBRPR49Ds0qAFAeTQ69HgkAUA5dDp0KLQDwDR4d +Pi0OjQou8DgOTU6dCg7wOR79BA7wOg5NPq0HAPGALQ5tDm0e8DsOHR5NHl0_8DoeHX5NHh0u8Dk_ +QH5NHvBBHs0ODQLwPx7NDxhi8DourQtyG-A5Dp0bYjvwNAs_nQtiGw0r8DICCw0enRtSGz0CC-Aw +Egu9G1IbXQIL8CwNCyIbrQtSG30CC-AqHQsyG30rQhudAgsC8CgdC1IrPRtiC70bAvAnHQtyW2Ib +zQsLAPIA8gQb3RvwJi0L8gMb7QILCgCwC-0AG-AlPQvyAhsKAPAEAggX8BA9C-IBG-0CC-ACCDfw +Dg4A8QAL-QML8AMIN-ANPQvyABsOAEAYR-ALDgBQC-0CDg0eAGAHGDfwCU0SADFNDr0TAEwYBxgn +EwBIAFfwCBIAYQQIEFfwBxIAIz0eEgByIEcALxXwAxUAIg7NFQA5MEcpEwCwAvADCDA3KQ3wAl2U +ABUtFQBwQAdJHfABXbcAUB0ezQ4bPABBWa0gvREAIQ7dEQBJIEn9DBAAMCn9DhAA0hIO3Q4CC-AK +-Q8L8gQMADoL-Q4MABEFCwBUDI0g-QENAPQKDW3wBBvyBc0eAgvwDk3wBQvyBs0OEgvwKAkAcB0O +vfIFvR4KAPACXhBObcLNDiIL8CANAG69ct0LAPEMGmVuC-0RHiIL8BYVDkVOEC4L-REOMgvwFYWe +CgDwTfAWhU4AHhAL-RAeIvAXhW4tC-0PHjIAC-AV1R0Q-REOQivwFLVgC-0NLjJL8BNlECVgCxL9 +CS6SK-AShYALMv0EPtIb8BFVsAti3T7yAhvwEFWwC-ICPvIGK-AOCwAiHRsIAEAeG-ANCAAgHwsI +AKbyIBvwDFWg8iILBwBgsPIhG-ALJABnIBvwC2WgCAA-C-AMCAABAEwAAAgAYR4L8A9VoGwAAQgA +EByHAPAAoAvyGxvwEUXAC-IZG-ASCABAGBvwEwgAQBcb8BQIAEEVK-AVCAA-C-AXCAANITXQCABv +FkXgC-IUCAAUIxMbCABPCxLwFQkADR8bRAAAYvAA8hTwFwcAHwPyBBUPyAgnDzoA------------ +---3UG09NX19 :: gfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTAzLTI5IDAxOjE0OjUxIixzdG9yZWQ9IjIwMjQtMDMt MjkgMDE6MTQ6NTEiXV1sejQABAAAAAMAAAAwbmls :: library.lua ---[[pod_format="raw",created="2024-04-10 00:24:20",modified="2024-04-23 03:19:45",revision=180]] +--[[pod_format="raw",created="2024-04-10 00:24:20",modified="2024-04-29 16:05:11",revision=200]] plant_descriptions = { [-1]={{"i don't know what that is. where did you find this?"}}, [13]={{"these are chives. are we sure this is for alchemy?"}}, @@ -502,7 +506,7 @@ book_pages = { } :: main.lua ---[[pod_format="raw",created="2024-04-02 02:59:37",modified="2024-04-23 03:19:45",revision=1131]] +--[[pod_format="raw",created="2024-04-02 02:59:37",modified="2024-04-29 15:34:08",revision=1153]] -- this is atelier hester! -- except for the one line in _init that does change_screen(shop_screen) @@ -532,6 +536,8 @@ animations = {} script = {} +collider_renders = {} + function _init() vid(3) change_scene(shop_screen) @@ -549,6 +555,13 @@ function _draw() print("animations: "..#animations, 0,0,0) rectfill(0,10,90,20,7) print("script nodes: "..#script, 0,10, 0) + + for r in all(collider_renders) do + rect(r.left, r.top, r.right, r.bottom, 9) + end + while #collider_renders > 0 do + deli(collider_renders) + end end end @@ -691,7 +704,7 @@ function Conversation:after() change_scene(self.behind) end :: s_drawer.lua ---[[pod_format="raw",created="2024-04-05 00:59:36",modified="2024-04-23 03:19:45",revision=358]] +--[[pod_format="raw",created="2024-04-05 00:59:36",modified="2024-04-29 15:59:50",revision=379]] DrawerScene = { extension = 0, behind = nil, @@ -738,7 +751,6 @@ end function DrawerScene:update() self.interior_collider.bottom = self.extension - if (btnp(5) or btnp(4)) and not collides(self.fairy, self.interior_collider) then play_script({ @@ -790,7 +802,7 @@ function draw_drawer(distance, inset) spr(11, 120-16, distance+10+1) end :: s_shop.lua ---[[pod_format="raw",created="2024-04-05 14:55:27",modified="2024-04-23 03:19:45",revision=394]] +--[[pod_format="raw",created="2024-04-05 14:55:27",modified="2024-04-29 17:50:21",revision=430]] -- this manages the main shop interface, where you look at the cupboard and plantss -- and sstuff. include("art.lua") @@ -799,7 +811,7 @@ include("cabinet.lua") include("library.lua") cabinet = Cabinet:new(40, 10, 2) -fairy = Fairy:new() +--fairy = Fairy:new() alchemist_sprite = 192 alchemist_bob = 0 customer_sprite = 0 @@ -825,7 +837,7 @@ for i=1,3 do } end -function shop_screen:draw(hide_fairy) +function shop_screen:draw() cls() cabinet:draw() @@ -860,13 +872,9 @@ function shop_screen:draw(hide_fairy) bob(customer_sprite, 240-96, 7, 96, 128, customer_bob) end - if not hides_fairy then self.fairy:draw() end + self.fairy:draw() draw_door(door_open) - - for idx, box in ipairs(self.tray_slots) do - if collides(self.fairy, box) then end - end end function draw_counter(height) @@ -898,7 +906,7 @@ function shop_screen:update() if cabinet.hover_plant ~= nil then change_scene(Conversation:new(get_conversation(cabinet.hover_plant))) end - + for idx, box in ipairs(self.tray_slots) do if collides(self.fairy, box) then deli(self.tray, idx) @@ -1317,9 +1325,7 @@ connect with people?" definitely overly preachy but i like that :: .info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTIzIDAxOjEzOjI4IixydW50aW1lPTUsc3RvcmVk -PSIyMDI0LTA0LTIzIDAzOjE5OjQ1Iix3b3Jrc3BhY2VzPXt7bG9jYXRpb249Im1haW4ubHVhIzUy -Iix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0aW9uPSJsaWJyYXJ5Lmx1YSM2Iix3b3Jrc3BhY2Vf -aW5kZXg9MX0se2xvY2F0aW9uPSJzX3Nob3AubHVhIzMwIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xv -Y2F0aW9uPSJzX2RyYXdlci5sdWEjNjQiLHdvcmtzcGFjZV9pbmRleD0xfSx7bG9jYXRpb249Imdm -eC8wLmdmeCIsd29ya3NwYWNlX2luZGV4PTJ9fV1dbHo0AAQAAAADAAAAMG5pbA== +PSIyMDI0LTA0LTI5IDE3OjUwOjIxIix3b3Jrc3BhY2VzPXt7bG9jYXRpb249InNfc2hvcC5sdWEj +MSIsd29ya3NwYWNlX2luZGV4PTF9LHtsb2NhdGlvbj0iZ2Z4LzAuZ2Z4Iix3b3Jrc3BhY2VfaW5k +ZXg9Mn19XV1sejQABAAAAAMAAAAwbmls :: [eoc] diff --git a/demo01.p64 b/demo01.p64 new file mode 100644 index 0000000..2baf61f --- /dev/null +++ b/demo01.p64 @@ -0,0 +1,269 @@ +picotron cartridge // www.picotron.net +version 2 + +:: gfx/ +:: map/ +:: sfx/ +:: drawing_stuff.lua +--[[pod_format="raw",created="2024-07-30 00:32:19",modified="2024-07-30 20:17:30",revision=366]] +include "matrix_math.lua" + +palette_greens = {5, 3, 27, 11, 26} +palette_greens_flip = {5, 3, 27, 11, 26, 11, 27, 3} + +function spr_point(sprite, x) + local p = uncamera(x) + draw_scaled_sprite(sprite, p[1], p[2], p[3]) + if debug then + print("z is " .. x[3],p[1], p[2]+8, 8) + print("s is " .. p[3],p[1], p[2], 8) + end +end + +function spr_skewed(s, x, y, z, sx, sy) + local result = skew(x,y,z, sx, sy) + spr3d(s, result[1], result[2], result[3]) +end + + +function draw_scaled_sprite(sprite, x, y, scale) + sspr(sprite, 0,0, 16,16, x-8*scale, y-8*scale, 16*scale, 16*scale) +end + +function draw_percent_of_a_line(x1, y1, x2, y2, percent) + local start_x = (x2-x1)*percent + x1 + local start_y = (y2-y1)*percent + y1 + local end_x = (x1-x2)*percent + x2 + local end_y = (y1-y2)*percent + y2 + line(start_x, start_y, end_x, end_y) +end + +function draw_shorter_line(x1, y1, x2, y2, beginning_cut, end_cut) + local length = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) + if beginning_cut + end_cut > length then + return + end + local start_x = x1 + (x2-x1)*beginning_cut/length + local start_y = y1 + (y2-y1)*beginning_cut/length + local end_x = x2 + (x1-x2)*end_cut/length + local end_y = y2 + (y1-y2)*end_cut/length + line(start_x, start_y, end_x, end_y) +end +:: gfx/0.gfx +b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA3LTMwIDAwOjI4OjU2Iixtb2RpZmllZD0iMjAyNC0w +Ny0zMCAyMDoxNzozMCIscmV2aXNpb249Mjk0XV1sejQAQwEAABsyAADzFHtbMF09e2JtcD1weHUA +QyAQEATw8CxmbGFncz0wLHBhbl94CADLeT0wLHpvb209OH0sMQD5BBo3wCdgNwA3UHcAB0AXMBdg +F1ACAK9gFzAXgFegN-AXWgAcECA-AI8nMCdgd4BXgFkACJ_Qd3B3oBfQF2C6AB2RBBfAR6BHsBfQ +AgDxAgAnkGeAJxAXgBcQJ4AXEBeQCACPIBeAFyAn8ARcAB1-AhcgFyAXMAYAC5Q3ABcAN0CXcFeE +AE-QF-AHagAdawOXUJdQFwIAz5dQl5AX0BewV5BXsFYAIkAFV4B3cQFyQBdwFyAXkBABRRcwFzAG +AAIUAFAgF3AXQI0BX3eAV-AFZgAdH-AxAP------------------------------------------ +--------------------sFBtPTh9fQ== +:: gfx/.info.pod +b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA3LTMwIDAwOjI4OjU1IixzdG9yZWQ9IjIwMjQtMDct +MzAgMDA6Mjg6NTUiXV1sejQABAAAAAMAAAAwbmls +:: main.lua +--[[pod_format="raw",created="2024-07-30 00:28:56",modified="2024-07-30 20:17:30",revision=528]] +include "drawing_stuff.lua" +include "matrix_math.lua" +debug = false +symbols = {} +for i=0,8 do + add(symbols, {1+(i % 5), {rnd(400)-200, rnd(200)-100, rnd(50)-25}, {0,0,0}}) +end +for a=-1,1,2 do + for b=-1,1,2 do + for c=-1,1,2 do + add(symbols, {1, {a*20, b*20, c*20}, {0,0,0}}) + end + end +end +links = {} +for i=0,8 do + add(links, {flr(rnd(#symbols))+1, flr(rnd(#symbols-1))+1}) +end + +circles = {} + +function _draw() + cls() + + for c in all(circles) do + circfill(c[2], c[3], c[1], c[4]) + end + color() + + local skew_orientation = -0.1*t() + local skew_amount = 0.05+0.025*(sin(0.3*t())+1) + + for thing in all(symbols) do + local sprite = thing[1] + local rotated = thing[2] + rotated = transform(rot_z(-skew_orientation), rotated) + rotated = transform(rot_y(skew_amount), rotated) + rotated = transform(rot_z(skew_orientation), rotated) + + local ssc = uncamera(rotated) + thing[3] = ssc + spr_point(sprite, rotated) + circ(ssc[1], ssc[2], ssc[3]*12, 12) + end + + for link in all(links) do + local startpoint = symbols[link[1]][3] + local endpoint = symbols[link[2]][3] + + draw_shorter_line( + startpoint[1], startpoint[2], + endpoint[1], endpoint[2], + startpoint[3]*12, endpoint[3]*12) + end + + --print("time is " .. time_since_last_symbol, 40, 40, 7) +end + +last_t = t() + +time_since_last_symbol = 0 +delta = 0 +function _update() + local new_circles = {} + for c in all(circles) do + if c[1] > 0 then + add(new_circles, c) + end + end + circles = new_circles + + local x = cos(0.1*t())*200 + rnd(100)-50 + 240 + local y = sin(0.1*t())*100 + rnd(100)-50 + 135 + + add(circles, { + 10+rnd(2), -- size + x,y, + palette_greens_flip[flr((t()%3/3)*#palette_greens_flip)+1]--color + }) + + for c in all(circles) do + c[1] = c[1] - 0.05 + end + + delta = t() - last_t + last_t = t() + + time_since_last_symbol += delta + if time_since_last_symbol > 3 then + time_since_last_symbol = 0 + deli(symbols, 1) + local new_links = {} + for link in all(links) do + if link[1] != 1 and link[2] != 1 then + add(new_links, {link[1]-1, link[2]-1}) + end + end + links = new_links + + add(symbols, {flr(rnd(5))+1, {rnd(440)-220, rnd(200)-100, rnd(50)-25}, {0,0,0}}) + + --links = {} + for i=0,8 do + --add(links, {flr(rnd(#symbols))+1, flr(rnd(#symbols-1))+1}) + end + add(links, {flr(rnd(#symbols))+1, #symbols}) + add(links, {flr(rnd(#symbols))+1, #symbols}) + end +end +:: map/0.map +b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA3LTMwIDAwOjI4OjU2Iixtb2RpZmllZD0iMjAyNC0w +Ny0zMCAyMDoxNzozMCIscmV2aXNpb249MjgwXV1sejQAaAAAAFgQAADwCHt7Ym1wPXVzZXJkYXRh +KCJpMTYiLDMyAwAvIjABAP--------------------vxCCIpLGhpZGRlbj1mYWxzZSxwYW5feD0w +CADSeT0wLHRpbGVfaD0xNgoAEHcKAIB6b29tPTF9fQ== +:: map/.info.pod +b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA3LTMwIDAwOjI4OjU1IixzdG9yZWQ9IjIwMjQtMDct +MzAgMDA6Mjg6NTUiXV1sejQABAAAAAMAAAAwbmls +:: matrix_math.lua +--[[pod_format="raw",created="2024-07-30 00:58:28",modified="2024-07-30 20:17:30",revision=350]] +function skew(x, y, z, strength_x, strength_y) + local dot = x*strength_x + y*strength_y + return {x + strength_x*(z+10), y+strength_y*(z+10), z-(dot/600)} +end + +function p(x,y,z) + return {x, y, z} +end + +-- this camera trransform will put our camera looking ttowards -z, i think +-- looking from 200 unitsts away on the z axis +function uncamera(x) + if x[3]+25 == 0 then + return {30, 30, 1} + end + x = translate(x, p(0,0,200)) + return { + (150*x[1]/x[3]) + 240, + (150*x[2]/x[3]) + 135, + 150/x[3]} +end + +function transform(m, x) + return { + x[1]*m[1][1] + x[2]*m[2][1] + x[3]*m[3][1], + x[1]*m[1][2] + x[2]*m[2][2] + x[3]*m[3][2], + x[1]*m[1][3] + x[2]*m[2][3] + x[3]*m[3][3] + } +end + +function translate(a, b) + return {a[1]+b[1], a[2]+b[2], a[3]+b[3]} +end + +function transpose(m) + return { + {m[1][1], m[2][1], m[3][1]}, + {m[1][2], m[2][2], m[3][2]}, + {m[1][3], m[2][3], m[3][3]} + } +end + +function rot_x(angle) + return { + {1, 0, 0}, + {0, cos(angle), -sin(angle)}, + {0, sin(angle), cos(angle)} + } +end + +function rot_y(angle) + return { + {cos(angle), 0, sin(angle)}, + {0, 1, 0}, + {-sin(angle), 0, cos(angle)} + } +end + +function rot_z(angle) + return { + {cos(angle), -sin(angle), 0}, + {sin(angle), cos(angle), 0}, + {0, 0, 1} + } +end +:: sfx/0.sfx +b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA3LTMwIDAwOjI4OjU2Iixtb2RpZmllZD0iMjAyNC0w +Ny0zMCAyMDoxNzozMCIscmV2aXNpb249Mjc3XV1sejQAEQEAAMEIAADwJ3B4dQADKAAAAwAED0AQ +Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W +DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P +Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-8nWgEQBg8g +EAEgASAB8AACEAIMEAEgDyEgATAPQPDDDygP--DGD-gKD-8PgA-3Dw0B8AkBEAYMMAD--7of-wEA +zL-oD0AADUD--7DwcAoA--9kH-8BAJdQ-----x8= +:: sfx/.info.pod +b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA3LTMwIDAwOjI4OjU1IixzdG9yZWQ9IjIwMjQtMDct +MzAgMDA6Mjg6NTUiXV1sejQABAAAAAMAAAAwbmls +:: .info.pod +b64$LS1bW3BvZCxydW50aW1lPTUsc3RvcmVkPSIyMDI0LTA3LTMwIDIwOjE3OjMwIix3b3Jrc3Bh +Y2VzPXt7bG9jYXRpb249Im1haW4ubHVhIzMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0aW9u +PSJkcmF3aW5nX3N0dWZmLmx1YSM0Iix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0aW9uPSJtYXRy +aXhfbWF0aC5sdWEjMTEiLHdvcmtzcGFjZV9pbmRleD0xfSx7bG9jYXRpb249ImdmeC8wLmdmeCIs +d29ya3NwYWNlX2luZGV4PTJ9LHtsb2NhdGlvbj0ibWFwLzAubWFwIix3b3Jrc3BhY2VfaW5kZXg9 +M30se2xvY2F0aW9uPSJzZngvMC5zZngiLHdvcmtzcGFjZV9pbmRleD00fX1dXWx6NAAEAAAAAwAA +ADBuaWw= +:: [eoc] diff --git a/listcolors.p64 b/listcolors.p64 index aa5776e..08cdd3f 100644 --- a/listcolors.p64 +++ b/listcolors.p64 @@ -199,7 +199,7 @@ OlRORm3faVWNwb31bCRBCsEY6-WMMR77jDFhKBfOEOSFF5IvHfD0fqt9C3INtnsmutCgXEknJO_2 dzjkB6yPryo7f14YbTLyOn2151lDrmHTrWQv1eTI-D_o_YTEtLDizgAAABB0RVh0TG9kZVBORwAy MDExMDIyMeNZtsEAAAAASUVORK5CYII= :: main.lua ---[[pod_format="raw",created="2024-03-31 02:16:28",modified="2024-03-31 14:46:07",revision=34]] +--[[pod_format="raw",created="2024-03-31 02:16:28",modified="2024-08-07 14:25:43",revision=35]] function _init() window(64*4,16*8)