Compare commits

...

2533 Commits

Author SHA1 Message Date
minjaesong
b547914865 long overdue JVM tuning 2026-04-27 17:57:00 +09:00
minjaesong
c3c6f70e38 wtf? 2026-04-25 15:50:16 +09:00
minjaesong
8824bad9bf Graal update 2026-04-20 17:34:07 +09:00
minjaesong
9edf3a6573 better splash 2026-04-06 11:11:36 +09:00
minjaesong
f3fb8a96f0 more interesting splash screen wip 2026-04-06 02:05:05 +09:00
minjaesong
281146dd92 title screen fade 2026-04-06 01:40:06 +09:00
minjaesong
8eff89a7cb fix: inputstrober not working 2026-04-04 22:59:30 +09:00
minjaesong
73c7c8942e title screen fade-in transition 2026-04-04 22:33:10 +09:00
minjaesong
6118f30d5f async loading (hopefully?) 2026-04-04 17:05:00 +09:00
minjaesong
981418d0c7 async loading (hopefully) 2026-04-04 01:56:40 +09:00
CuriousTorvald
3cbfb5c10f Update CodeQL workflow to exclude certain languages 2026-03-29 00:22:48 +09:00
minjaesong
1a0b754cde font update, video sprite (TAV) 2026-03-15 13:26:05 +09:00
CuriousTorvald
db3a1f9a39 Modify funding configuration in FUNDING.yml
Updated funding options to include GitHub Sponsors and a PayPal link.
2026-03-13 19:20:45 +09:00
minjaesong
247fd6195f wiki update (asset archiving, building instructions) 2026-02-28 10:53:51 +09:00
minjaesong
97d22913bf custom asset archive loading 2026-02-22 00:09:48 +09:00
minjaesong
2dea82bb9c font update 2026-02-20 11:10:38 +09:00
minjaesong
7c8baa151f asset archiving wip 2026-02-20 10:39:53 +09:00
minjaesong
04b49b8a5c asset archiving wip, font update 2026-02-19 09:57:59 +09:00
minjaesong
661d516800 buildapp update 2026-02-17 05:04:27 +09:00
minjaesong
9efb800d47 alpha blending diagnostic shaders 2026-02-13 21:03:01 +09:00
minjaesong
93c5822c7b finally fixing contradictory key press handling (left+right, up+down) 2026-02-13 19:52:14 +09:00
minjaesong
4d9252dd80 world control hint 2026-02-10 20:17:43 +09:00
minjaesong
232bc0297d copyright year update 2026-02-10 16:00:41 +09:00
minjaesong
612871eb2a fix: moving platform is dragging player into the terrain again 2026-02-09 09:46:35 +09:00
minjaesong
8bbe79acfe pushing down on moving platform will dismount 2026-02-09 03:15:11 +09:00
minjaesong
54715e41b0 fix: sinking platform taking actors with it 2026-02-09 03:06:28 +09:00
minjaesong
e91b7ceb0d player can exit from sinking platform by jumping 2026-02-09 02:54:56 +09:00
minjaesong
855e0ea12a moving platforms can 'steal' actors 2026-02-09 02:34:49 +09:00
minjaesong
5394f17686 moving platform fix: double speed gain 2026-02-09 02:25:52 +09:00
minjaesong
72aae3cffd moving platform kinda working 2026-02-08 23:54:07 +09:00
minjaesong
b5b9e22091 platform wip3 2026-02-08 20:02:39 +09:00
minjaesong
5b1d0ca049 platform surface friction 2026-02-08 03:53:10 +09:00
minjaesong
623ee14d93 platform wip2 2026-02-08 03:43:37 +09:00
minjaesong
b328b609cc watchface: 'Y' is more distinguished 2026-02-08 03:12:49 +09:00
minjaesong
ff9f02322b moving platform wip 2026-02-08 02:06:29 +09:00
minjaesong
4997353f83 wtf 2026-02-07 16:39:33 +09:00
minjaesong
068d0bf1b2 control preset to be stored into separate file 2026-02-07 16:19:42 +09:00
minjaesong
e838991826 new: #if(n)def preprocessor for Terrarum-formatted CSVs 2026-01-19 17:50:44 +09:00
minjaesong
63566a507b new: world update ahchoring 2026-01-19 17:08:31 +09:00
minjaesong
104481a7d5 fix: fixture pickup mess with quickslots and needed empty hands 2026-01-17 20:50:26 +09:00
minjaesong
a4df761359 wire sim incremental graph update (partial) 2026-01-08 23:20:24 +09:00
minjaesong
aa22fe69ff wire sim refactor 2026-01-08 19:06:20 +09:00
minjaesong
e14e689dce fix: bogoflops counter being overestimated on M4 Mac due to Math.random() reliance 2025-11-27 10:41:13 +09:00
minjaesong
767aa09a17 faster block tiling hash 2025-10-13 20:08:22 +09:00
minjaesong
99bd56317d bump AirCompressor to 2.0.2 2025-09-01 17:51:52 +09:00
minjaesong
3f6f599865 1 meter is now 25 pixels 2025-08-08 01:01:45 +09:00
minjaesong
c803ddfae8 why the hell I thought circular buffering would be better, when it makes FOUR memcpy insead of TWO 2025-07-04 06:13:04 +09:00
minjaesong
f11ea557be reverting FFT changes 2025-06-29 19:29:02 +09:00
minjaesong
3f787108b2 more small optimisation of FFT 2025-06-26 19:14:39 +09:00
minjaesong
6bdf585b49 realFFT is somehow faster while everything else stays the same? 2025-06-26 19:08:16 +09:00
minjaesong
fa56fc14bf deploying new wood textures 2025-05-18 19:33:03 +09:00
minjaesong
d922aa5d67 finished wooden texture 48 2025-05-18 15:21:14 +09:00
minjaesong
0ca5e6435c better wooden plank texture wip 2025-05-18 14:54:33 +09:00
minjaesong
3b755f52da testing new wooden plank texture 2025-05-18 13:28:56 +09:00
minjaesong
b167f20935 randomised music generator for test item 2025-05-09 20:02:20 +09:00
minjaesong
41c47a0777 minor readme update 2025-05-09 19:58:04 +09:00
minjaesong
5495e017d5 more canisters 2025-04-29 22:59:26 +09:00
minjaesong
488a214a19 TODO new fluid container system 2025-04-29 21:11:36 +09:00
minjaesong
946824f861 copyright date 2024 to 2025 2025-04-07 22:54:09 +09:00
minjaesong
dabcfe03ed clipboard wip 2025-04-06 22:21:35 +09:00
minjaesong
06a8fd38d1 more computer stuffs 2025-04-01 21:03:09 +09:00
minjaesong
a4b6ad1d5f more minor codes 2025-04-01 20:50:57 +09:00
minjaesong
1c0162ec25 wire ports for computers first draught 2025-03-31 22:21:13 +09:00
minjaesong
b6ee5ee0f7 computer wires 2025-03-30 20:00:02 +09:00
minjaesong
51da0612d2 sprites 2025-03-30 18:07:02 +09:00
minjaesong
0c35faa548 external classloader from modmgr 2025-03-30 17:00:39 +09:00
minjaesong
852c0b7dcc omfg is it actually working now? 2025-03-25 17:50:10 +09:00
minjaesong
759f8a4c4e bottom parts on conveyor now works 2025-03-25 16:58:55 +09:00
minjaesong
506ca7a7b1 curved parts on conveyor now works 2025-03-25 14:15:34 +09:00
minjaesong
42eee2bba7 small steps man :p 2025-03-24 22:02:07 +09:00
minjaesong
d77e1f38dc finally code's working as intended 2025-03-23 22:12:33 +09:00
minjaesong
e5f8e3b76d curved parts are finally appearing where they should 2025-03-23 21:11:52 +09:00
minjaesong
f5744550a4 straight part of the belt now use proper maths 2025-03-23 20:34:52 +09:00
minjaesong
bbd0bc7eb2 some mac-specific codes 2025-03-22 23:40:58 +09:00
minjaesong
7188fddc7e more conveyor aesthetics 2025-03-22 23:29:23 +09:00
minjaesong
5c2d201151 more versatile weather CLUT defs 2025-03-22 19:39:35 +09:00
minjaesong
c54cafae0f more conveyor visuals 2025-03-21 15:04:43 +09:00
minjaesong
3c8f272d4a conveyor wip 2025-03-21 14:30:32 +09:00
minjaesong
bbe28903d8 more conveyor aesthetics 2025-03-17 20:58:34 +09:00
minjaesong
b19b7c7e79 btex.xml 2025-03-17 19:40:45 +09:00
minjaesong
73bf7f8793 more belt graphics 2025-03-16 21:57:04 +09:00
minjaesong
5631b8e807 more belt graphics 2025-03-16 20:17:02 +09:00
minjaesong
dba941d4de rubber coloured belts 2025-03-16 18:16:28 +09:00
minjaesong
27b4137455 belts using their own shaperenderer 2025-03-16 16:36:26 +09:00
minjaesong
9af3f3b883 fixed rendering of belts 2025-03-15 22:08:09 +09:00
minjaesong
b577df0155 partially working conveyor 2025-03-15 21:40:14 +09:00
minjaesong
18feeb1826 wip conveyor drawfun 2025-03-14 20:51:24 +09:00
minjaesong
d598ef497d wippieeee 2025-03-13 21:30:04 +09:00
minjaesong
e652ace37b conveyer belt wip 2025-03-10 21:33:47 +09:00
minjaesong
bdd00676e6 no-auto-pickup variant of droppeditem 2025-03-09 12:56:26 +09:00
minjaesong
19bc779ae1 more token ring stuff 2025-03-08 22:17:36 +09:00
minjaesong
16cac2f1ab fixing minor bugs 2025-03-04 20:56:12 +09:00
minjaesong
a362ade9af some refactoring on FixtureRingBusCore 2025-03-03 22:01:22 +09:00
minjaesong
fea4e34733 ring bus debugger ui wip 2025-03-03 21:27:35 +09:00
minjaesong
f861a2727d now with watchdogs 2025-03-02 20:42:03 +09:00
minjaesong
2bb1c8400e more token ring stuff 2025-03-02 19:47:52 +09:00
minjaesong
ef4a5d6eb9 token ring stuff and renaming things to avoid confusion 2025-03-02 15:04:53 +09:00
minjaesong
f74b7218b0 token ring stuff wip 2025-03-01 23:03:56 +09:00
minjaesong
f154b2348b token ring stuff wip 2025-02-28 22:44:57 +09:00
minjaesong
e889b397d0 token ring stuff wip 2025-02-27 20:58:14 +09:00
minjaesong
65f771e9de replacing N'gasta with random Lorem texts to avoid possible copyright issues 2025-02-24 21:48:17 +09:00
minjaesong
8a26f328c7 more postal codes 2025-02-20 19:41:41 +09:00
minjaesong
37d6d3004b fix: targeted voucher code not working 2025-02-15 23:56:53 +09:00
minjaesong
ad68e04b83 working redeem code generator 2025-02-15 23:25:30 +09:00
minjaesong
4aae0bf733 redeem code gen wip 2025-02-15 20:05:17 +09:00
minjaesong
c2d0803ee3 redeem code gen wip 2025-02-15 16:18:30 +09:00
minjaesong
3d5672bc4d redeem code gen wip 2025-02-13 21:06:13 +09:00
minjaesong
22786f9a28 better wire branching control 2025-02-09 21:56:46 +09:00
minjaesong
34d8f1504f actorvalue blob clone wip 2025-02-09 20:55:42 +09:00
minjaesong
497782b428 integration of blob and actorvalue 2025-02-09 14:58:06 +09:00
minjaesong
fd0732cd39 actorvalue: new format 'blob' 2025-02-08 22:47:01 +09:00
minjaesong
d4e81c8c06 instance info 2025-02-01 21:04:12 +09:00
minjaesong
69ebdbc542 fix: some NaNs that can be caused by scroll bars 2025-02-01 20:51:40 +09:00
minjaesong
a2006b0354 debugging thing update 2025-02-01 19:31:07 +09:00
minjaesong
150b4e6b6b 'contrast strip' for volume control 2025-02-01 19:11:59 +09:00
minjaesong
b3b86b0965 a debug item 2025-02-01 14:53:14 +09:00
minjaesong
ff2a022394 item and sprite for 'document' type items 2025-01-31 22:44:08 +09:00
minjaesong
bb1da3b1ec working ItemFileRef instantiation and serialisation 2025-01-30 11:53:21 +09:00
minjaesong
29034e2104 mediumidentifier to loosely follow MIME format 2025-01-28 23:08:39 +09:00
minjaesong
daa6c09b52 more on itemfileref 2025-01-28 21:34:11 +09:00
minjaesong
879cc79bbf code input wip 2025-01-27 23:23:27 +09:00
minjaesong
6b4b7917d9 mysterious wip 2025-01-22 21:10:21 +09:00
minjaesong
ed9d8cffd6 more codes 2025-01-19 19:54:40 +09:00
minjaesong
3d34b9162b fix: AZERTY layout was missing < key 2025-01-17 17:40:45 +09:00
minjaesong
1b69d74291 minor fixes 2025-01-15 20:39:44 +09:00
minjaesong
15e3276f46 redeem code input wip 2025-01-15 16:07:04 +09:00
minjaesong
51dd99fd80 better post definition 2025-01-15 13:23:28 +09:00
minjaesong
c14720d649 better code font 2025-01-15 10:57:07 +09:00
minjaesong
f4fb7cccfb audio compressor option is now available 2025-01-11 23:46:54 +09:00
minjaesong
c10823ddce postal system wip 2024-12-29 19:49:27 +09:00
minjaesong
c1a5624167 locales for comp 2024-12-26 12:35:20 +09:00
minjaesong
3eee0dcd62 a working compressor this time 2024-12-26 12:28:12 +09:00
minjaesong
cc3e59796f i don't know if it's even working lol 2024-12-25 15:18:07 +09:00
minjaesong
9dc2dffef9 bandpass dsp 2024-12-22 15:56:35 +09:00
minjaesong
fe4318877a shader preloading 2024-12-16 19:36:58 +09:00
minjaesong
3322878074 both outline and a shadow for 'behind' actors 2024-12-05 21:47:02 +09:00
minjaesong
869b751488 prebuild update 2024-11-30 22:49:01 +09:00
minjaesong
450129f650 better shadow for wall-stickers 2024-11-30 20:52:52 +09:00
minjaesong
bf626e35da buttons for crafting/techtree transition 2024-11-26 22:29:48 +09:00
minjaesong
e581099aec minor numbers changes 2024-11-26 08:15:55 +09:00
minjaesong
95af4e8f53 tech tree view wip 2024-11-25 23:50:28 +09:00
minjaesong
661c4cdc4d more prominent shadow around wall-sticking tiles 2024-11-24 22:41:44 +09:00
minjaesong
a24eab209b shallow shadow improvements 2024-11-24 19:13:12 +09:00
minjaesong
6ec5ba5603 no shadows against skybox 2024-11-24 18:52:44 +09:00
minjaesong
8cf4b5d9a9 shadows around actors as well as terrain 2024-11-24 17:02:00 +09:00
minjaesong
5bf60cfa82 now terrain also lives on its own framebuffer 2024-11-24 13:19:20 +09:00
minjaesong
5cc7db8ecc putting some actors into their own framebuffer for shadowing 2024-11-24 13:10:08 +09:00
minjaesong
89b12aabb4 new debug cmd ExportFBO 2024-11-24 12:53:44 +09:00
minjaesong
f5846d9bae screen blur helper class 2024-11-23 21:17:16 +09:00
minjaesong
d460447331 for alpha 2 release 2024-11-16 11:12:47 +09:00
minjaesong
63fe28eee2 wrap-up commits for "not a true Alpha 2.0 release I was hoping for" 2024-11-15 23:41:25 +09:00
minjaesong
2d7ef6e9ff fix: edge detection of electric fixture not working 2024-10-31 23:40:49 +09:00
minjaesong
fa3a129991 worldportal ui fix 2024-10-31 10:53:11 +09:00
minjaesong
4cc74a85d1 fix: prev commit was made haphazardly 2024-10-30 18:10:30 +09:00
minjaesong
3de4018d75 renaming some files 2024-10-22 11:46:20 +09:00
minjaesong
dbb0c60976 yet another tooltip stuffs 2024-10-12 11:26:29 +09:00
minjaesong
66c2ffa598 fix: hitbox for fixtureworkbench was too tall 2024-10-11 23:23:04 +09:00
minjaesong
6a8f139ad8 fix: broken thumbnail for pressure plates 2024-10-11 23:22:22 +09:00
minjaesong
2b4ff12659 a bit of btex stuffs 2024-10-11 19:09:48 +09:00
minjaesong
60e54c2bc0 tooltipmanager 2024-10-11 15:02:11 +09:00
minjaesong
048777a845 literally one letter was missing 2024-10-11 13:22:23 +09:00
minjaesong
4545ea22ea wrench axle 2024-10-10 03:06:12 +09:00
minjaesong
75249bc44b wrench axle wip 2024-10-10 02:58:35 +09:00
minjaesong
6dd633d2bf wirecutter now ignores axles 2024-10-10 00:28:47 +09:00
minjaesong
b428273fa2 more on savegame migrator and virtualdisk bugfix 2024-10-08 20:22:40 +09:00
minjaesong
e0fcd00d82 more chunk pool and savegame migration codes 2024-10-08 12:55:30 +09:00
minjaesong
b4523b8492 more chunk pool codes 2024-10-08 00:15:17 +09:00
minjaesong
07b4f3bff1 more chunk pool codes 2024-10-07 18:06:18 +09:00
minjaesong
253ca85790 fix: bad spawn pos for fixtures with spawn offsets 2024-10-07 01:06:30 +09:00
minjaesong
02db6b8fed reorientable gearbox because input and output cannot be on the same location 2024-10-06 14:06:04 +09:00
minjaesong
9a33375286 gearbox wip 2024-10-06 01:27:45 +09:00
minjaesong
41fa1e6903 slightly more robust wire sim 2024-10-04 21:46:46 +09:00
minjaesong
ad734a7561 illegal tile monitoring in-game 2024-10-04 18:55:34 +09:00
minjaesong
af0be41a82 more flexible blockbox definition and their utilisation 2024-10-04 01:22:45 +09:00
minjaesong
0e58879216 axle test with test-motor 2024-10-03 21:35:52 +09:00
minjaesong
dd643005a4 the axle item/fixture? wip 2024-10-02 23:56:06 +09:00
minjaesong
551fbcd3c2 fix: pressure plate emsv was too bright 2024-09-28 16:13:40 +09:00
minjaesong
dbd95cd2a2 pressure plates 2024-09-27 20:35:08 +09:00
minjaesong
f103d9ae0c Windows on Arm will be filtered out specifically 2024-09-27 12:46:56 +09:00
minjaesong
70f2a23354 use _cp property to load custom application 2024-09-27 12:42:35 +09:00
minjaesong
83ad86c818 pushbutton 2024-09-27 00:53:41 +09:00
minjaesong
6e1d3c3bb7 sandstone generation follows the world's sand colour 2024-09-26 14:16:19 +09:00
minjaesong
da4a850ee9 minor improvements 2024-09-26 13:10:20 +09:00
minjaesong
740e5f7b94 reverting test codes 2024-09-26 00:49:38 +09:00
minjaesong
f89c2618fd automated avatar building & fix avatar import 2024-09-26 00:44:41 +09:00
minjaesong
b344b3b161 no quartz on igneous rocks 2024-09-25 19:43:22 +09:00
minjaesong
e4634045c2 pitchblende spawning 2024-09-25 17:39:28 +09:00
minjaesong
468949a22c strata implemented 2024-09-25 15:58:17 +09:00
minjaesong
ae587beddd porting liquid pockets to Aquagen 2024-09-25 14:48:22 +09:00
minjaesong
fbd7cd8f6a buildingmaker: hold V to erase 2024-09-25 12:13:59 +09:00
minjaesong
1c54b40898 fix: missing params that caused backwards incompatibility 2024-09-25 11:53:52 +09:00
minjaesong
b4f512ddef adding faults but better 2024-09-25 00:47:42 +09:00
minjaesong
ae57e710bc adding faults 2024-09-25 00:37:11 +09:00
minjaesong
bffc9fd860 new rocks 2024-09-24 20:38:28 +09:00
minjaesong
a2dc001909 newer terragen test wip 2024-09-23 01:41:13 +09:00
minjaesong
e14c832028 WorldCamera now holds tilewise positions 2024-09-20 14:44:53 +09:00
minjaesong
f5d4caaad5 shift func on UnsafeLong2D 2024-09-20 00:15:02 +09:00
minjaesong
180cf217f8 metals to their own sprite sheet 2024-09-15 16:01:12 +09:00
minjaesong
9520b5985f better bucket textures 2024-09-15 00:55:02 +09:00
minjaesong
94f4f1980a minor changes 2024-09-14 23:59:03 +09:00
minjaesong
c42f776f81 better lang for buckets 2024-09-14 22:50:27 +09:00
minjaesong
e8eae1e961 lang for buckets 2024-09-14 22:27:46 +09:00
minjaesong
dfac9ed9a8 thermal tags for buckets and fluids 2024-09-14 21:15:46 +09:00
minjaesong
35bec7bc26 water buckets 2024-09-14 20:02:26 +09:00
minjaesong
1924ed1fbc pause using the pause key 2024-09-13 21:55:03 +09:00
minjaesong
8f34fb41ed new keyboard layout DIN 2137 2024-09-13 21:27:12 +09:00
minjaesong
35da5927c8 better brick item texture 2024-09-13 17:22:17 +09:00
minjaesong
2743198866 brick block crafting 2024-09-13 17:09:05 +09:00
minjaesong
ec59000ae9 performance improvements by disabling tile deblocking 2024-09-13 13:18:01 +09:00
minjaesong
34a7a9285d better handling of null keysymbol 2024-09-12 23:56:40 +09:00
minjaesong
831114ef15 disabling item pickup autoequip 2024-09-12 23:41:53 +09:00
minjaesong
8d9159528f font bugfix 2024-09-12 23:41:39 +09:00
minjaesong
212afae027 better fix of 4a0f740e03 2024-09-12 21:11:53 +09:00
minjaesong
3a719bcbfa removing a debug print 2024-09-12 20:53:53 +09:00
minjaesong
7ed37cf355 new ore? 2024-09-12 20:53:26 +09:00
minjaesong
4a0f740e03 fix: crafting an item could unequip any holding item 2024-09-12 20:53:04 +09:00
minjaesong
ff16ca5b1a ISO keylayout on configs 2024-09-12 13:07:19 +09:00
minjaesong
35c330d253 chg magicnum 2024-09-10 22:30:35 +09:00
minjaesong
79d0fe3572 fps aware tilemap update rate 2024-09-10 22:24:41 +09:00
minjaesong
f50c2a385b simple tooltip system for fixtures 2024-09-10 19:41:06 +09:00
minjaesong
180d36eb10 new world and worldgen load scr update 2024-09-10 18:38:39 +09:00
minjaesong
29c1a69222 fluid worldgen 2024-09-10 02:18:05 +09:00
minjaesong
b3467d538c lava texture fix 2024-09-09 19:16:40 +09:00
minjaesong
43d65fb10b crude oil prototype 2024-09-08 23:02:43 +09:00
minjaesong
e4742a40dd aquifers prototype 2024-09-08 21:48:17 +09:00
minjaesong
56c12949f8 working lava pool prototype 2024-09-08 01:51:40 +09:00
minjaesong
11cdcbe2fc actor update control by chunkAnchoring flag 2024-09-07 19:01:03 +09:00
minjaesong
ab31986cf2 TerranVirtualDisk update 2024-09-07 16:44:44 +09:00
minjaesong
e3b663b4aa actors with chunk anchoring wip 2024-09-07 16:06:15 +09:00
minjaesong
68854d3573 chunk pool wip 2024-09-07 16:05:52 +09:00
minjaesong
a9e6aab94c new worldgen test wip 2024-09-06 23:59:46 +09:00
minjaesong
1af82e4d5c water jumping works but needs onscreen instruction to educate players 2024-09-06 21:14:54 +09:00
minjaesong
bd8f455ce6 caching ime icons 2024-09-06 16:16:00 +09:00
minjaesong
694a727a3e made a patch to GDX to enable ISO keyboard keys 2024-09-06 15:51:51 +09:00
minjaesong
849271328d fix: added a missing key on Bépo layout 2024-09-06 15:36:17 +09:00
minjaesong
56b98f3086 adaptive tilemap update rate 2024-09-05 19:48:21 +09:00
minjaesong
c17d742d68 fix: jittery cam on titlescreen 2024-09-05 15:25:39 +09:00
minjaesong
eb3822553b multithreaded initial spawn chunkgen 2024-09-04 22:57:58 +09:00
minjaesong
3fcb2f9996 minor bugfixes 2024-09-03 15:39:11 +09:00
minjaesong
f5f1f536cf grass texture fixes 2024-09-03 00:59:58 +09:00
minjaesong
1615afb81b brick texture refinement 2024-09-02 20:06:03 +09:00
minjaesong
ef0c9c8447 brick sounds 2024-09-02 01:02:52 +09:00
minjaesong
5cbe96033b bricks 2024-09-01 23:58:09 +09:00
minjaesong
aef5fd307a readjusted oregen params to preserve relative depth-to-spawn-rate scale 2024-09-01 04:47:20 +09:00
minjaesong
cdfb5c4daa fix: ore and fluid layer was not being disposed of 2024-09-01 02:50:34 +09:00
minjaesong
6f48bd9f04 new worldgen for the taller world 2024-09-01 00:27:23 +09:00
minjaesong
fa03e5d14a new worldgen wip 2024-08-31 23:55:13 +09:00
minjaesong
54d1218b4a fix: wetting tile using wrong tile 2024-08-31 22:24:31 +09:00
minjaesong
84f0353f09 multithreaded tile renumbering 2024-08-31 05:29:59 +09:00
minjaesong
85c1e3ba96 new world size and generator for Alpha 2 with backwards compatibility 2024-08-31 04:03:13 +09:00
minjaesong
da14c75278 new world size is now much taller; loadscreen bar now has fixed ratio 2024-08-30 21:56:46 +09:00
minjaesong
56a1723e4f drawing tilemap 'texture' is also done once every three frames 2024-08-30 17:50:29 +09:00
minjaesong
d405302c9d tilemap update is now done once in every 3 frame 2024-08-30 13:55:37 +09:00
minjaesong
85a4c46240 trying to optimise the tiling code (its broken now) 2024-08-30 02:37:53 +09:00
minjaesong
d8922485ad dirt textures 2024-08-29 13:22:33 +09:00
minjaesong
43e8d1a8d0 working deblocking 2024-08-29 03:00:39 +09:00
minjaesong
d02282a64d deblocking wip 2 2024-08-28 18:40:21 +09:00
minjaesong
7554459281 deblocking wip 2024-08-28 01:51:55 +09:00
minjaesong
02a549c406 new tiles: sands,sandstones 2024-08-28 01:51:22 +09:00
minjaesong
e691222741 new tiles: clay,trees,gravels 2024-08-27 02:58:02 +09:00
minjaesong
45550d0444 fix: bombs may cause segfault due to out of bound referencing in Y axis 2024-08-27 00:28:54 +09:00
minjaesong
86c7f7925b breakage overlay is back 2024-08-26 23:11:34 +09:00
minjaesong
55ae0b61af subtile grass tiling 2024-08-26 19:20:51 +09:00
minjaesong
feed1ee6c0 fix: touching the bottom of the world would crash the game because setFluid did not coerce the coords 2024-08-26 01:47:41 +09:00
minjaesong
63322321ce subtiling stone blocks 2024-08-26 01:39:05 +09:00
minjaesong
472fcfc05b wood blocks update 2024-08-25 20:20:46 +09:00
minjaesong
23cae8ed73 inventory image for subtiled blocks 2024-08-25 02:50:56 +09:00
minjaesong
ccaaac03d0 more 'correct' stone brick texture 2024-08-25 01:58:55 +09:00
minjaesong
50adfc08bb more brick tiling and bugfix 2024-08-24 22:35:27 +09:00
minjaesong
96cdefb800 brick tiling 2024-08-24 01:37:31 +09:00
minjaesong
ff66b65831 confirmed: subtiling works on any atlas size 2024-08-23 00:17:35 +09:00
minjaesong
657ab2b2be working subtiling (for atlas size 2048) 2024-08-23 00:06:14 +09:00
minjaesong
5c1c526128 fliprot on subtiles 2024-08-22 18:27:24 +09:00
minjaesong
9bd1471a64 rendertags on subtile sheet 2024-08-22 14:59:14 +09:00
minjaesong
bdb1c3e1ea better rock texture maybe 2024-08-22 03:14:17 +09:00
minjaesong
a74d4bbced working subtile rendering 2024-08-22 01:43:04 +09:00
minjaesong
7b23e34907 spectrometer slope is now 10dB/decade, which makes pink noise to appear flat 2024-08-21 23:47:01 +09:00
minjaesong
b0480e6225 fliprot revived 2024-08-21 14:34:42 +09:00
minjaesong
ebcc2ef4bf old tiling is adapted to subtiling (no fliprot/breakage yet) 2024-08-20 22:01:59 +09:00
minjaesong
186733e4f8 fix: fluid not renaming on load 2024-08-20 15:37:34 +09:00
minjaesong
e12a049e70 texcoord is wrong but silhouette is correct 2024-08-20 03:58:35 +09:00
minjaesong
02f9303767 better atlas code 2024-08-19 23:00:39 +09:00
minjaesong
1867bf8de0 working subtile-to-atlantes 2024-08-19 20:10:16 +09:00
minjaesong
88680fb0fc making room for larger tile ID to accomodate subtiling 2024-08-19 02:52:32 +09:00
minjaesong
e18f6512bc subtiling wip 2024-08-18 03:33:02 +09:00
minjaesong
fc92fe6f55 random sound audio bank 2024-08-16 22:38:47 +09:00
minjaesong
1c27966322 fluid sim now marks modified chunks 2024-08-13 01:02:22 +09:00
minjaesong
81c75a762b save/load fluid layer 2024-08-12 23:18:04 +09:00
minjaesong
fdbfad9633 player sprite to turn around even when airbourne 2024-08-12 16:17:46 +09:00
minjaesong
9c9806f622 genver for World now stores the version the world has generated 2024-08-12 00:19:59 +09:00
minjaesong
ff4bf42922 fix: water stripes below raised corners 2024-08-10 12:18:32 +09:00
minjaesong
c2b624546b comment fix 2024-07-28 19:26:37 +09:00
minjaesong
036347082f slightly more concise credits 2024-07-28 01:28:33 +09:00
minjaesong
97286e7d99 even better fluid tiling 2024-07-24 19:14:24 +09:00
minjaesong
af81bb0e0f even better fluid tiling 2024-07-22 15:04:22 +09:00
minjaesong
1fddb5f0da fix: water stripes on blocksdrawer 2024-07-22 14:23:58 +09:00
minjaesong
91e25da54f better fluid render wip 2024-07-22 03:40:48 +09:00
minjaesong
3386cfbd46 swiming control 2024-07-21 20:22:54 +09:00
minjaesong
42b3b9e02f finally working buoyancy sim 2024-07-21 16:26:49 +09:00
minjaesong
082e1b7ec0 another wip 2024-07-21 11:46:59 +09:00
minjaesong
85c6b87cea more physics madness 2024-07-21 04:45:10 +09:00
minjaesong
ca4c0d0d03 option to toggle the timepiece 2024-07-20 16:12:58 +09:00
minjaesong
3cf636629e lib update 2024-07-20 03:34:58 +09:00
minjaesong
4316072bc1 typo 2024-07-19 15:19:29 +09:00
minjaesong
37b8bacd36 lib update 2024-07-19 15:15:20 +09:00
minjaesong
dcd75eb642 current session playtime measurement now uses the app's startup time 2024-07-19 03:14:28 +09:00
minjaesong
14538dd10b playtime counter on top left corner 2024-07-19 03:07:52 +09:00
minjaesong
49fb419d35 forgot to remove debug codes 2024-07-19 02:24:42 +09:00
minjaesong
3d1d38dc60 shadow backing on the fullscr bat and clocks 2024-07-19 02:21:45 +09:00
minjaesong
57b3d355ae battery complication not using shaperenderer 2024-07-19 01:30:38 +09:00
minjaesong
d7f6e253d4 getbatterystatus update (2) 2024-07-19 00:27:45 +09:00
minjaesong
22d70e0a0a getbatterystatus update 2024-07-19 00:13:34 +09:00
minjaesong
b0827ae8c8 battery complication test 2024-07-18 23:36:51 +09:00
minjaesong
b26462b248 fullscreen GUI complications wip 2024-07-18 21:30:30 +09:00
minjaesong
0757764654 macbook notch area on the overlay 2024-07-18 20:55:01 +09:00
minjaesong
d9c1cfb3b2 reviving fullscreen toggle for macos 2024-07-18 17:49:26 +09:00
minjaesong
d4ac5b887c better fullscreen handling 2024-07-18 17:41:50 +09:00
minjaesong
9f0094c371 prebuild: added macos game mode detection 2024-07-18 14:55:29 +09:00
minjaesong
d72bbb0355 better buoyancy but still wip 2024-07-17 01:41:32 +09:00
minjaesong
e77aa0c33f fluid viscosity on phys sim 2024-07-16 17:32:56 +09:00
minjaesong
6399f609a9 rudimentary fluid rendering so that I can work on it 2024-07-15 03:33:31 +09:00
minjaesong
5f1b860555 Fluid.NULL is identical to Block.AIR 2024-07-15 00:48:52 +09:00
minjaesong
bddd871c9d fluid view on F3 2024-07-14 18:19:59 +09:00
minjaesong
01ce5fb3e2 fluid wip and hopefully fixed F3 dangling ptr 2024-07-14 16:13:59 +09:00
minjaesong
23d99c0c86 varying amplitude for throwing sound 2024-07-14 02:06:58 +09:00
minjaesong
96f858fa51 item throwing sounds and better linter 2024-07-13 19:15:04 +09:00
minjaesong
4f6b66b049 mining sounds wont overlap 2024-07-13 02:18:09 +09:00
minjaesong
92f28887ec glow orbs 2024-07-12 04:21:09 +09:00
minjaesong
5a4c300612 player now equips the item picked up, if said item did not exist in their inventory 2024-07-12 03:00:42 +09:00
minjaesong
c1ca06c8e0 convolver to ignore FFT interruptedexception 2024-07-12 01:31:23 +09:00
minjaesong
836d287fa9 intellij config update 2024-07-11 20:39:11 +09:00
minjaesong
4db090aba0 worldgen estimation update 2024-07-11 18:10:12 +09:00
minjaesong
7f5f11780c partial worldgen with full worldgen near spawn point 2024-07-11 17:29:54 +09:00
minjaesong
24e43edafb not-generated marker works as intended, reducing number of chunks for initial worldgen 2024-07-11 16:17:38 +09:00
minjaesong
7b6d7f2b93 ungenerated chunks are now filled with 0xFFFF 2024-07-11 16:02:57 +09:00
minjaesong
d8e6a01735 better music player behaviour 2024-07-09 14:28:51 +09:00
minjaesong
a236f49641 is the new musicplayer working? 2024-07-09 01:27:12 +09:00
minjaesong
86c6f008f9 working arbitrary track queueing 2024-07-08 18:06:44 +09:00
minjaesong
657c8051f8 working prev/next music queueing 2024-07-08 17:30:39 +09:00
minjaesong
63070a19d5 fix: continuous album now plays again 2024-07-07 02:53:57 +09:00
minjaesong
c211f67e38 progress ring instead of play/pause 2024-07-07 01:14:01 +09:00
minjaesong
e75575228a somewhat working? 2024-07-07 00:18:13 +09:00
minjaesong
90f7e82325 more transaction-based music disk jockeying wip 2024-07-06 20:58:23 +09:00
minjaesong
ff433703f4 y u no call back :( 2024-07-06 02:04:27 +09:00
minjaesong
68ed16aa5a Kotlin 2.0 migration 2024-07-05 01:25:36 +09:00
minjaesong
69571b6a3f transaction-based music playback managing wip 2024-07-04 21:34:27 +09:00
minjaesong
7582eae1ee better makefile 2024-06-28 12:58:15 +09:00
minjaesong
86fbe65e01 build inst update 2024-06-22 00:55:41 +09:00
minjaesong
417f00117e just disabling fullscreen on macos for now 2024-06-19 12:37:27 +09:00
minjaesong
a4629c3ea8 new fullscreen method 2024-06-19 12:26:34 +09:00
minjaesong
83b539e872 build inst update 2024-06-17 23:41:19 +09:00
minjaesong
fd124062cf particle fading shader 2024-06-16 17:47:28 +09:00
minjaesong
9948566ce4 btex: better multithreaded rendering 2024-06-02 22:02:22 +09:00
minjaesong
408e976dd8 btex: font update 2024-06-02 21:22:45 +09:00
minjaesong
8c6050528d btex: deserialisation of hyperlinks 2024-06-02 16:55:31 +09:00
minjaesong
33acbcea4d font update 2024-06-01 17:23:50 +09:00
minjaesong
3137297745 font update 2024-06-01 01:28:43 +09:00
minjaesong
de38561eb2 does this fix the segfault? 2024-05-26 14:40:55 +09:00
minjaesong
4607abbbd0 btextest rendering fix 2024-05-23 23:33:32 +09:00
minjaesong
32991b7ba8 btex: serialise now saves original xml 2024-05-23 19:06:32 +09:00
minjaesong
87ff1abe96 font: better interchar handling 2024-05-23 14:27:26 +09:00
minjaesong
3896da3db9 kotlin update 2.0 2024-05-22 23:14:02 +09:00
minjaesong
17e25c9cf7 GameItem item image Pixmap 2024-05-22 17:10:50 +09:00
minjaesong
fc509de98f BTeXTest is now available thru ingame 2024-05-22 16:26:43 +09:00
minjaesong
08d18af500 const renaming 2024-05-22 14:19:10 +09:00
minjaesong
493a15c6db font update with better spacing 2024-05-22 14:05:40 +09:00
minjaesong
19095140c6 font update should enable SHYs 2024-05-22 13:21:56 +09:00
minjaesong
20922e3c4f font update never ends 2024-05-22 00:40:27 +09:00
minjaesong
5e9087f961 font update 2024-05-21 23:21:35 +09:00
minjaesong
10f3721407 wider list box 2024-05-21 17:36:49 +09:00
minjaesong
bcf13d5ec6 font fixes 2024-05-21 17:10:12 +09:00
minjaesong
d0251ffa54 update btex_ko.xml 2024-05-20 22:09:44 +09:00
minjaesong
48b6c842be font update 2024-05-20 03:37:59 +09:00
minjaesong
0682862821 btex: new macro 'resetchapterafterpart' 2024-05-20 01:24:06 +09:00
minjaesong
9979153caf font update 2024-05-20 00:56:13 +09:00
minjaesong
4401b7377f new macro parindent 2024-05-19 00:45:45 +09:00
minjaesong
49e9b6bcdc progress indicator for the tester 2024-05-18 22:22:00 +09:00
minjaesong
7d58c9f1ae btex: <a> tag underlines 2024-05-18 20:12:22 +09:00
minjaesong
48703a7c38 btex: <a> tag target if off by one on the index page 2024-05-18 19:49:39 +09:00
minjaesong
9e9ab5bfe0 btex: finally working <a> tag 2024-05-18 18:15:27 +09:00
minjaesong
1cb70c4620 btex: hyperlinks on toc and index page 2024-05-18 17:34:29 +09:00
minjaesong
82627a8ab4 btex: <a> boxing better detection of hyphenation 2024-05-18 15:21:44 +09:00
minjaesong
6857ab266b btex: test--rectangle around hyperlinks 2024-05-18 02:57:52 +09:00
minjaesong
02d1a4f5f7 still working on the <a> tag to work 2024-05-17 23:59:11 +09:00
minjaesong
297846f9ef trying to make <a> tag to work 2024-05-17 23:36:36 +09:00
minjaesong
163216707e btex: new macro 'chapteronnewpage' 2024-05-17 01:20:56 +09:00
minjaesong
c7ca5a61c8 btex: img tag with fromgame attrib 2024-05-16 22:16:46 +09:00
minjaesong
efbdc806ea btex: img tag with src attrib 2024-05-16 17:07:36 +09:00
minjaesong
e308e9a356 fix: btex toc overflow 2024-05-16 13:35:36 +09:00
minjaesong
b963e0d3f2 btex: multithreaded finalising 2024-05-16 02:01:47 +09:00
minjaesong
7320a14a4d print book without GPU 2024-05-16 01:35:58 +09:00
minjaesong
1aecfc781f fix: typo on btex doc 2024-05-14 18:04:40 +09:00
minjaesong
fc69c6f5b7 part/chapter type macros 2024-05-14 17:10:43 +09:00
minjaesong
1c86162ff8 more xml stuff 2024-05-14 16:33:26 +09:00
minjaesong
f08857530a more btex documentation; fix: pagenum for btex indices are off by one 2024-05-14 16:23:50 +09:00
minjaesong
23f4557bf2 btexbin -> btxbook; baked shadow for TinyAlphNum 2024-05-14 03:16:06 +09:00
minjaesong
ba09633b45 font update 2024-05-14 00:35:12 +09:00
minjaesong
c230f96ac2 btex: fix: hyphenation behaviour 2024-05-10 02:06:26 +09:00
minjaesong
56fa7783e0 btex: right/centre par alignment 2024-05-09 16:51:43 +09:00
minjaesong
ef7138939d btex: font upgrade and more horz margin 2024-05-09 03:57:58 +09:00
minjaesong
162b7862bc btex: ul/ol impl 2024-05-08 19:10:31 +09:00
minjaesong
35768e6c72 btex: v-series korean specific tags 2024-05-08 18:17:49 +09:00
minjaesong
68f5d5c5da btex: part page fixed 2024-05-08 17:49:46 +09:00
minjaesong
f595e44edd stateless span and such 2024-05-08 16:22:11 +09:00
minjaesong
28d303e1f2 read from ingame lang 2024-05-08 15:57:39 +09:00
minjaesong
15de0c8352 btex: macrodef 2024-05-08 03:28:21 +09:00
minjaesong
27d4466f63 more XML 2024-05-08 01:10:03 +09:00
minjaesong
c4ff23361a more XML 2024-05-07 23:23:18 +09:00
minjaesong
464fc5c404 xml changes for palata no 6 2024-05-07 23:17:03 +09:00
minjaesong
f09ac75932 pbox wip 2024-05-07 23:02:12 +09:00
minjaesong
d758c79289 more XML 2024-05-07 05:46:16 +09:00
minjaesong
4d14eeea3a parser now validates XML 2024-05-06 21:59:26 +09:00
minjaesong
b2664e309a paragraph indent is now U+FFFDF because it's not considered as a glue 2024-05-06 15:02:32 +09:00
minjaesong
f45a2ce1d9 more btex; sheet metal item 2024-05-05 02:18:00 +09:00
minjaesong
92a4084e95 DTD for btexdoc 2024-05-04 05:10:44 +09:00
minjaesong
56b7b47039 codestyle wip 2024-05-03 16:13:47 +09:00
minjaesong
6494d7c29b code tag wip 2024-05-03 14:19:56 +09:00
minjaesong
e51504f881 btex: fix: part typesetting with OBJ would not get centred correctly 2024-05-03 03:59:04 +09:00
minjaesong
f2ef4df762 btex: centered part title 2024-05-03 00:48:25 +09:00
minjaesong
51861c9a09 btex: fully working <btex /> 2024-05-02 23:40:36 +09:00
minjaesong
de7aeee351 btex: partially working <btex /> 2024-05-02 20:18:23 +09:00
minjaesong
8fe653d82f btex: part number is now roman 2024-05-02 03:52:56 +09:00
minjaesong
48dc26781d btex: wider standard size 2024-05-01 05:52:24 +09:00
minjaesong
739734732e the real btex doc 2024-05-01 04:49:44 +09:00
minjaesong
62d321b150 btex: span now works again 2024-05-01 02:22:42 +09:00
minjaesong
a68a1d29bb FPS disp on window title 2024-04-30 22:19:33 +09:00
minjaesong
1f633f5ca2 typesetting line at a time and I broke <span> again 2024-04-30 19:15:55 +09:00
minjaesong
3244ad4a8a loading and rendering btexbin 2024-04-29 23:13:26 +09:00
minjaesong
bf07a16842 font update 2024-04-29 16:49:11 +09:00
minjaesong
5dbc0e6f41 typesetter update 2024-04-29 01:40:37 +09:00
minjaesong
73f5a67c8a gitattributes update 2024-04-29 01:14:37 +09:00
minjaesong
cd51276c16 btex serialisation 2024-04-29 01:11:48 +09:00
minjaesong
fa8054adac btex: finalising option for the btexdoc 2024-04-28 22:54:45 +09:00
minjaesong
e1b577b781 btex: page numbers and toc/index pagenum fixes 2024-04-28 19:51:31 +09:00
minjaesong
45b1a344f2 btex: fixed the paragraph overflows 2024-04-28 18:23:50 +09:00
minjaesong
54663657bd more btex styling 2024-04-28 15:32:28 +09:00
minjaesong
8a1ff32fa7 more btex styling 2024-04-28 15:17:08 +09:00
minjaesong
30e9f3e2ef btex: bugfixes 2024-04-28 02:56:47 +09:00
minjaesong
6889ce34a7 btex: text colouring via emph/itemname/targetname/span 2024-04-28 01:21:29 +09:00
minjaesong
a7ea83af16 btex: toc and chapter opening position 2024-04-27 17:33:08 +09:00
minjaesong
900ce1248c btex: cover typesetting 2024-04-27 16:02:03 +09:00
minjaesong
1137afebac btex: better toc and chapter/section alt texts 2024-04-26 23:16:20 +09:00
minjaesong
6264e0d963 btex: typesetting toc 2024-04-26 19:53:23 +09:00
minjaesong
f16944d000 btex: working index page 2024-04-26 19:12:03 +09:00
minjaesong
2534ca4ff7 btex: default colour change 2024-04-26 03:51:29 +09:00
minjaesong
bb10c55739 more btex styling 2024-04-26 03:30:59 +09:00
minjaesong
6de340bde6 btex chapter and section styling 2024-04-26 02:58:59 +09:00
minjaesong
40be60865b more btex tests 2024-04-25 17:04:15 +09:00
minjaesong
f154756439 more btex tests 2024-04-25 01:29:32 +09:00
minjaesong
76dd9a98e4 btex stuffs 2024-04-24 01:13:46 +09:00
minjaesong
e2a87d0e14 OKHsv util 2024-04-18 00:51:34 +09:00
minjaesong
1ddc696e78 temporal bayer dithering for particles 2024-04-17 16:10:43 +09:00
minjaesong
5e85d560b0 bayer alpha for particles 2024-04-17 03:05:24 +09:00
minjaesong
f0f358a15c note particles 2024-04-16 23:03:37 +09:00
minjaesong
875efc883e improved test score 2024-04-16 04:05:44 +09:00
minjaesong
24b5204560 working musicbox 2024-04-15 22:18:08 +09:00
minjaesong
c19184a55f musicbox wip 2024-04-15 20:57:27 +09:00
minjaesong
96954983f0 musicbox wip 2024-04-15 04:27:16 +09:00
minjaesong
9762f38868 more audio codes 2024-04-14 23:45:34 +09:00
minjaesong
4fba0f70c9 weather in weathercodex 2024-04-14 00:18:30 +09:00
minjaesong
670a308c78 audiobank now returns samples in floats 2024-04-11 20:57:47 +09:00
minjaesong
3e12966e84 audio file reading minor improvement 2024-04-06 22:56:12 +09:00
minjaesong
cb4462b1ff music looping is now processed by the MusicContainer 2024-04-06 02:28:30 +09:00
minjaesong
3ef3f3f653 fix: RAM music should loop as they should now 2024-04-06 00:22:52 +09:00
minjaesong
7416f15def more haptic for sliders 2024-04-04 00:08:19 +09:00
minjaesong
54e38b114d fix: spinner making same sound twice 2024-04-03 21:26:41 +09:00
minjaesong
728d609268 more haptic sounds 2024-04-03 02:38:56 +09:00
minjaesong
3e396c63ed bop sound change 2024-04-03 02:04:55 +09:00
minjaesong
4094457ab9 caching for non-ram music 2024-04-03 00:28:11 +09:00
minjaesong
9a8c91562e fix: bad cacheing behaviour 2024-04-02 23:23:16 +09:00
minjaesong
94152afcac sound track cacheing by track to remove any collision 2024-04-02 17:15:23 +09:00
minjaesong
918276a1be read sound effects from RAM 2024-04-02 14:32:13 +09:00
minjaesong
53f54a450d sound on memory wip 2024-04-02 00:29:59 +09:00
minjaesong
a1a70274dd gui track should obey interface volume setting 2024-04-01 18:07:54 +09:00
minjaesong
576e868996 sound cues for buttons 2024-04-01 03:15:57 +09:00
minjaesong
f72ed0f706 panning and attenuation for pickaxe audio cue 2024-03-31 21:02:00 +09:00
minjaesong
742b63a8fa pickaxe sound cue 2024-03-31 04:35:21 +09:00
minjaesong
aa2172b396 forgot to remove snapshot info 2024-03-28 00:46:40 +09:00
minjaesong
f3e2fa8441 Alpha 1.2 release candidate 2024-03-28 00:43:18 +09:00
minjaesong
a3d132d26c itemdesc change for solder wire 2024-03-27 23:47:42 +09:00
minjaesong
a4afb0bfe9 item autoreload is restricted to tools only 2024-03-24 03:55:06 +09:00
minjaesong
67092d4ab9 alloy yield doubled; turntable now requires brass for crafting 2024-03-23 23:47:20 +09:00
minjaesong
07680592d2 fix: text pos for sign preview wouldnt match the text on the fixture 2024-03-22 23:14:57 +09:00
minjaesong
844ec6bd4f recipe for engraving workbench 2024-03-22 22:27:47 +09:00
minjaesong
c87bd182b0 fix: text cursor darting around everywhere 2024-03-22 22:15:27 +09:00
minjaesong
6d2764933f better element positioning 2024-03-22 21:49:51 +09:00
minjaesong
d4672df208 sign engraver ui 2024-03-22 21:37:56 +09:00
minjaesong
4d1ea45a0f sign engraver wip 3 2024-03-22 21:15:39 +09:00
minjaesong
8e1c586a5c sign engraver wip 2 2024-03-22 20:52:19 +09:00
minjaesong
7690d3d672 sign engraver wip 2024-03-22 18:34:34 +09:00
minjaesong
8e8c206e3a engraver sprite 2024-03-22 04:16:08 +09:00
minjaesong
d35a73c7a5 signs persisting through load/save 2024-03-21 20:57:12 +09:00
minjaesong
ec76eb2685 THE cheapest way to resolve right-sided phys bug 2024-03-21 14:25:41 +09:00
minjaesong
a1a6dc5801 more sign stuffs 2024-03-21 00:42:34 +09:00
minjaesong
708dccb015 working sign 2024-03-20 22:32:09 +09:00
minjaesong
4e739963d3 copper sign actually spawns but still wip 2024-03-20 14:44:26 +09:00
minjaesong
8bf3d9666f test copper sign and it has no sprite 2024-03-20 03:33:24 +09:00
minjaesong
b856574d20 fix: multimeter's block cursor would break fixture ghost 2024-03-19 04:55:37 +09:00
minjaesong
f696a54d2d text sign wip 2 2024-03-18 03:46:15 +09:00
minjaesong
ca766719d3 text sign wip 2024-03-18 01:01:11 +09:00
minjaesong
d027ff7d7e toned down label colour 2024-03-17 23:35:38 +09:00
minjaesong
2785a67823 fix: item desc 2024-03-17 20:26:12 +09:00
minjaesong
33671d6e52 labels for inventory side buttons 2024-03-17 19:51:40 +09:00
minjaesong
7bfff29a79 seven seg display 2024-03-17 18:01:27 +09:00
minjaesong
aef1db49d6 animated trajectory 2024-03-17 17:20:49 +09:00
minjaesong
09e5b175b8 alloying furnace gui minor changes 2024-03-16 05:12:14 +09:00
minjaesong
37b4fa1e7b forgot to update itemsprites 2024-03-15 23:22:29 +09:00
minjaesong
d63be072cc better colourblind-friendly wires 2024-03-15 23:15:54 +09:00
minjaesong
d22f421bc4 wire debugger tooltip fix/electronic components now need floor OR wall to spawn 2024-03-15 22:44:46 +09:00
minjaesong
cb756cbf3a fix: non-ensapsulated CraftingUI would not pause the game 2024-03-15 02:32:14 +09:00
minjaesong
b24a3da2ed colour changing wire cutter 2024-03-15 02:26:42 +09:00
minjaesong
b0adc9efc7 Lang: get-from-config tags 2024-03-15 01:45:35 +09:00
minjaesong
c0a8118717 variable wire cutter uisng right click (no sprite change yet) 2024-03-14 21:14:30 +09:00
minjaesong
336dfad207 five-coloured wiring 2024-03-14 05:29:03 +09:00
minjaesong
ef7199fd8b electric workbench 2024-03-14 02:49:00 +09:00
minjaesong
3481502c1a sprite for electric workbench 2024-03-14 02:12:55 +09:00
minjaesong
5b462a2559 wire colour fade by signal strength 2024-03-14 00:18:25 +09:00
minjaesong
6abb6f84ef fourth purple wire because four-colour theorem 2024-03-13 23:45:10 +09:00
minjaesong
2abc8b19b9 wire signal loss sim wip 2024-03-13 17:00:28 +09:00
minjaesong
7c2b5468bd smelter ui changes; longer music interval 2024-03-13 04:54:59 +09:00
minjaesong
c829245b41 some changes 2024-03-11 23:59:21 +09:00
minjaesong
b05ae829cc tapestry now persists after load 2024-03-11 23:54:02 +09:00
minjaesong
8aa866f040 fix: actor tooltip was repeatedly showing and hiding itself 2024-03-11 22:28:19 +09:00
minjaesong
5a18ba4b06 torch sprites to the spritesheet 2024-03-11 17:25:39 +09:00
minjaesong
707abe8c6d devcycle-based version name (alpha, beta thing) 2024-03-11 02:44:05 +09:00
minjaesong
60eeeae759 soldering wire 2024-03-11 01:57:36 +09:00
minjaesong
ef2413f33d alloying furnace gui 2024-03-10 22:05:45 +09:00
minjaesong
2943f4119c signal adder 2024-03-10 19:44:16 +09:00
minjaesong
a298d6663b alloying furnace gui wip 2024-03-10 01:36:52 +09:00
minjaesong
fa49874971 minor edit 2024-03-10 00:47:06 +09:00
minjaesong
247cf9bd33 using 'smelting dictionary' for smelter recipes 2024-03-10 00:46:46 +09:00
minjaesong
c6999e0794 more codes 2024-03-09 18:19:15 +09:00
minjaesong
877d26667b smelter gui behav is now a factory 2024-03-09 17:03:03 +09:00
minjaesong
3e81b80bb1 assets for alloying furnace 2024-03-09 02:52:08 +09:00
minjaesong
47c82aba49 fix: untranslated strings are shown as 'null' on bgBG 2024-03-08 15:01:19 +09:00
minjaesong
c627096503 wrench 2024-03-08 04:15:07 +09:00
minjaesong
9994235342 signal repeater 2024-03-08 00:52:02 +09:00
minjaesong
bfaa50aea4 wire ports view 2024-03-07 23:46:30 +09:00
minjaesong
0d09a21028 logic component recipes and strings 2024-03-07 02:13:58 +09:00
minjaesong
d480a735a0 worldsimulator moved to modulebasegame package 2024-03-07 01:06:53 +09:00
minjaesong
2340cb7419 some random shits 2024-03-06 03:30:50 +09:00
minjaesong
dbff2610ac fix: emissive blocks were not tiled correctly 2024-03-06 02:35:28 +09:00
minjaesong
9f399b8722 fix: lightmap draw was off by half block 2024-03-06 02:13:49 +09:00
minjaesong
9a6f45756b fix: fixture pickup was only working sparingly 2024-03-06 01:43:45 +09:00
minjaesong
bbbc5e22a5 FixtureInteractionBlocked on blocks, walls and wires 2024-03-06 00:59:54 +09:00
minjaesong
8d3d6242d7 successfully altered the control scheme 2024-03-06 00:46:21 +09:00
minjaesong
3182843a48 fixture clicking action is now integrated into the FixtureBase 2024-03-05 23:59:32 +09:00
minjaesong
1dcdd8867a adjusting position of the noticelet 2024-03-05 22:11:49 +09:00
minjaesong
a3bf1ed3f6 d flipflop with full sprite 2024-03-05 21:20:51 +09:00
minjaesong
10f8e4a662 d flipflop wip 2024-03-05 18:51:50 +09:00
minjaesong
bb1a45db27 fix: placing a switch also flips it up as soon as it's been placed 2024-03-05 05:50:20 +09:00
minjaesong
5b5534bcb9 LR click behav change/mouse clicks were sticky and causes unwanted behaviour on some fixture UIs 2024-03-05 05:21:17 +09:00
minjaesong
0090cc7d40 removing wall requirements to the circuit components for convenience 2024-03-05 02:10:13 +09:00
minjaesong
5014381cbd what a stupid typo 2024-03-04 22:49:44 +09:00
minjaesong
caf238d6df logic gate actually blinking sprites 2024-03-04 21:39:21 +09:00
minjaesong
4602cb5bc1 propagation delay is now consistent; cosmetic wip 2024-03-04 19:07:25 +09:00
minjaesong
1c39036cc8 signal blocker spritesheet 2024-03-04 16:04:01 +09:00
minjaesong
6c224c79bf wires are simulated every tick 2024-03-04 05:28:42 +09:00
minjaesong
88c9bc4a27 working logic circuit except for the sprite 2024-03-04 05:02:44 +09:00
minjaesong
659976b880 signal blocker wip 2024-03-04 02:39:03 +09:00
minjaesong
3959de68b1 switch glow sprite 2024-03-03 21:18:23 +09:00
minjaesong
fbe887b039 0.4.1 release 2024-03-03 17:53:35 +09:00
minjaesong
91798436cb new fixture: table 2024-03-03 17:06:10 +09:00
minjaesong
34415f720d hiding the crafting guide again 2024-03-03 14:04:01 +09:00
minjaesong
33b739f34f fix typo in crafting recipe 2024-03-03 12:32:02 +09:00
minjaesong
f3825c0bfb itemdesc for wire rolling mill 2024-03-03 03:35:23 +09:00
minjaesong
84f1c48159 did i fix the crafting-unequip bug? 2024-03-03 03:20:42 +09:00
minjaesong
514a972bcf fix: savegame playtime was calculated wrongly 2024-03-03 03:15:35 +09:00
minjaesong
f19a27065e this should track the total playtime better? 2024-03-03 02:56:43 +09:00
minjaesong
324128e86a using gpu render for savegame list wipeout eff 2024-03-03 02:47:55 +09:00
minjaesong
39fca59ea7 larger tree takes double time to chop down 2024-03-03 02:11:18 +09:00
minjaesong
f07a6f6430 scaffoldings recipe change 2024-03-02 19:41:00 +09:00
minjaesong
6c5ee14402 platforms are lighter in weight 2024-03-02 18:24:58 +09:00
minjaesong
ec7ff3199d fix: techtree button not working if craftingUI is loaded independently 2024-03-02 17:16:02 +09:00
minjaesong
f400a5afe7 multicolour storage chests 2024-03-02 03:03:31 +09:00
minjaesong
ea1702ace4 wire rolling mill 2024-03-02 02:42:31 +09:00
minjaesong
01b5569169 bulb now requires walls to spawn 2024-03-02 01:11:02 +09:00
minjaesong
374cd5d4f7 changing recipe of gunpowder 2024-03-02 00:38:30 +09:00
minjaesong
c0cf9ab17d changing recipe of gunpowder 2024-03-02 00:34:01 +09:00
minjaesong
db0d3379cc trajectory to draw at the world edge 2024-03-02 00:09:57 +09:00
minjaesong
42e7da2a4a copper ingot sprite colour adjustment 2024-03-01 23:56:16 +09:00
minjaesong
30caac283a fix: torches can be placed anywhere 2024-03-01 22:15:39 +09:00
minjaesong
5da4cee22e tools now cost 5 bars 2024-03-01 19:16:48 +09:00
minjaesong
ddfa2f5bf0 fix: zooming would not properly center the cam if streamers mode is on (2) 2024-03-01 18:21:22 +09:00
minjaesong
7d38ba866c fix: zooming would not properly center the cam if streamers mode is on 2024-03-01 18:14:12 +09:00
minjaesong
a773786c9e changed iron ore distribution 2024-03-01 16:14:03 +09:00
minjaesong
43e16bf785 copper bulbs 2024-03-01 15:29:11 +09:00
minjaesong
7906de1711 fix: two clashing signal switches confusing the wire sim 2024-03-01 03:17:16 +09:00
minjaesong
6c3ec20b3d signal switches 2024-03-01 03:05:55 +09:00
minjaesong
902a086a4f better trajectory view 2024-02-29 14:22:16 +09:00
minjaesong
91bf11a3e0 better trajectory sim 2024-02-29 13:41:14 +09:00
minjaesong
410456e173 aim helper wip 2024-02-29 00:57:57 +09:00
minjaesong
9caf2a0d7e hopefully fixed a bug where crafting item sometimes enequips an item in the quickslot? 2024-02-23 04:48:54 +09:00
minjaesong
9525441dc0 a debug print 2024-02-21 21:47:35 +09:00
minjaesong
f7b0dfb5bb fix: getFreeTrack() would return a track it just returned when the timing coincides 2024-02-21 21:43:55 +09:00
minjaesong
549c03c2b4 fianlly found the culprit of repeated audio stopping but have no idea how to fix 2024-02-21 16:53:51 +09:00
minjaesong
91c5105a12 trying to fix glitchy audio after load 2024-02-21 14:06:49 +09:00
minjaesong
063483cfda inventory encumberment now takes player scale into account 2024-02-20 15:49:11 +09:00
minjaesong
a5953b8c87 more informative 'update available' ticker 2024-02-20 04:35:07 +09:00
minjaesong
c568276df6 fix deepstones had density of 24600 instead of 2400 2024-02-20 01:30:45 +09:00
minjaesong
19405b7f8d fix: acorn were 10 kilos each 2024-02-20 01:28:43 +09:00
minjaesong
2e89dcc73a more attempts 2024-02-19 21:11:34 +09:00
minjaesong
d3fe2e2bc6 trying to debug why fullscreen is borked on macOS 2024-02-19 21:04:37 +09:00
minjaesong
5c18e03bad apparently longer sleep time doesn't hurt 2024-02-19 16:31:03 +09:00
minjaesong
11a7a1f48d slightly improved audio processing performance by giving some time to the CPU 2024-02-19 16:07:34 +09:00
minjaesong
d24ec8296f fix: paste from clipboard would crash the game if the clipboard is empty 2024-02-19 14:52:31 +09:00
minjaesong
2c1727e495 fix: config change of chat overlay would not be reflected to GUI variables 2024-02-19 03:16:50 +09:00
minjaesong
b9e7a4ba84 gems item sprite change 2024-02-19 03:16:16 +09:00
minjaesong
165a9b4e88 update release date 2024-02-19 02:03:18 +09:00
minjaesong
55cba3e16a 0.4 release 2024-02-19 01:48:30 +09:00
minjaesong
1cbf0f4582 crafting guide wip and stash for next version 2024-02-19 01:44:31 +09:00
minjaesong
0911e70a69 clickable quickslot 2024-02-18 03:19:37 +09:00
minjaesong
2bf47a2aed clicking on the player's item on the crafting Ui will show recipes using that item 2024-02-18 03:08:11 +09:00
minjaesong
f400416a7c GDX 1.12.1 update 2024-02-18 02:05:08 +09:00
minjaesong
3bee121686 dropped items should collide with the platform 2024-02-17 23:17:01 +09:00
minjaesong
4a375ec5a3 fix: tooltips were capitalised when they shouldn't 2024-02-17 22:26:07 +09:00
minjaesong
0b683f33e1 mining sounds 2024-02-17 21:27:53 +09:00
minjaesong
c9f6246cd3 Titlecasing english texts because Polyglot ain't doing it 2024-02-17 19:17:22 +09:00
minjaesong
84222f0d98 players can dig out dirts barehandedly 2024-02-17 17:04:06 +09:00
minjaesong
701edbeaff resize screen really needs full game restart... 2024-02-17 15:56:52 +09:00
minjaesong
6da155d4f3 fix: game crashes on pasting text 2024-02-17 15:26:18 +09:00
minjaesong
a7ba39a43c wider nearby crafting station detection 2024-02-17 02:47:42 +09:00
minjaesong
9caf9ab2fa fix: explosion cuts off randomly 2024-02-17 00:30:04 +09:00
minjaesong
ffd470f2b4 fix: code for staircase climbing would interfere with hold-left/right-and-jump manoeuvre 2024-02-16 17:10:53 +09:00
minjaesong
b11bbf0130 fix: damaging terrain would not queue the modified chunk for the autosave 2024-02-16 14:29:47 +09:00
minjaesong
902341bd78 fix: inventory cell quickslot indicator not readily updating 2024-02-16 05:54:07 +09:00
minjaesong
95f03c74c1 larger dropped item pickup range 2024-02-16 03:02:30 +09:00
minjaesong
cac9e947f7 better boom-job juggling 2024-02-16 02:55:36 +09:00
minjaesong
693ad05352 itemised the torch but now you can place them 2024-02-16 01:15:36 +09:00
minjaesong
26bdd2253a itemised the torch 2024-02-16 00:36:14 +09:00
minjaesong
76586baba5 fix: bomb's item drop not obeying 'drop' itemproperty 2024-02-15 23:36:56 +09:00
minjaesong
ae0a2e2564 boom with particles 2024-02-15 22:05:08 +09:00
minjaesong
a4e3474563 more booms 2024-02-15 18:24:31 +09:00
minjaesong
84dcc95fc0 fix: bombs are making NaN amount of damage 2024-02-15 17:35:56 +09:00
minjaesong
2363a5c51f bomb go boom but better 2024-02-15 04:08:37 +09:00
minjaesong
f224d0718b explosion wip 2024-02-15 02:48:57 +09:00
minjaesong
c84e01646c boom sound for the bomb 2024-02-14 16:59:01 +09:00
minjaesong
c66f5cbb54 throwable cherry bomb (no explosion yet) 2024-02-14 03:54:14 +09:00
minjaesong
d2acacb531 string for ITEM_NITRE 2024-02-14 00:41:40 +09:00
minjaesong
e5ac560966 new gem on worldgen 2024-02-13 23:42:43 +09:00
minjaesong
6e1af36a63 terrain/wall damage indicator in F3 2024-02-13 00:51:01 +09:00
minjaesong
2b8497133e fix: NPE on item removal caused by scrolling 2024-02-13 00:23:42 +09:00
minjaesong
45b141fd57 fix; default emissive layer for item sheet sprite was transparent 2024-02-12 22:32:51 +09:00
minjaesong
3e3c1078d7 uicrafting: reset scroll when opening 2024-02-12 22:11:02 +09:00
minjaesong
43a5014564 fix: smelter: clicking on the slot will reset the scroll now 2024-02-12 21:01:55 +09:00
minjaesong
0a2d15e417 fix: [bug] remaining heat on the smelter is wasted if no fuel was burning 2024-02-12 20:40:56 +09:00
minjaesong
16c52a5e11 uicanvas: updateUI/renderUI to updateImpl/renderImpl to match the naming scheme with the actor 2024-02-12 17:28:23 +09:00
minjaesong
5f1e63e370 volume randomiser for smelter and furnace 2024-02-12 16:13:23 +09:00
minjaesong
a14f2697fb actors now use 'updateImpl'; static sound for smelter and furnace 2024-02-12 05:04:52 +09:00
minjaesong
7d871c5d49 actors now use 'updateImpl'; static sound for smelter and furnace 2024-02-12 04:48:25 +09:00
minjaesong
7ac6bd6a9c bonfire audio loop 2024-02-12 03:11:01 +09:00
minjaesong
0d036bb7c0 recipe for scaffolding 2024-02-12 01:44:24 +09:00
minjaesong
1333ece2b1 increased a random chance for records to 1/4096 2024-02-12 00:44:07 +09:00
minjaesong
d3f7818710 break torch using axe 2024-02-11 23:42:36 +09:00
minjaesong
1f0a4429e3 oops 2024-02-11 23:35:11 +09:00
minjaesong
346800d356 another limitation of the gapless playback 2024-02-11 23:29:35 +09:00
minjaesong
fcee6b5be3 debug print 2024-02-11 23:09:10 +09:00
minjaesong
49c595319b autoequip consumable tool 2024-02-11 22:59:06 +09:00
minjaesong
57d25431bd disable save if autosave is within 5 seconds 2024-02-11 21:53:11 +09:00
minjaesong
93f2e706c5 axes can attack platforms and scaffoldings 2024-02-11 21:02:29 +09:00
minjaesong
77bc646991 code refactor to clarify the state of item being dynamic
fix: simple item cell not showing itemcount for stackable and canbedynamic items
2024-02-11 20:51:54 +09:00
minjaesong
8e97914834 makefile script for the lulz 2024-02-11 20:01:28 +09:00
minjaesong
9c29cbb409 musicplayer: fix: playlist not advancing on intermittent mode 2024-02-11 19:07:26 +09:00
minjaesong
273e56cb35 fix: tool durability not decreasing; smelting recipe for quartz had bad value 2024-02-11 02:09:52 +09:00
minjaesong
87081b0a33 removing modulebasegame imports from the audio engine 2024-02-10 16:14:10 +09:00
minjaesong
b93e987011 MusicContainer extracted out of the modulebasegame 2024-02-10 16:09:00 +09:00
minjaesong
ea940e93ba minor sprite change 2024-02-10 02:31:54 +09:00
minjaesong
26dac5e853 git commit -amend 2024-02-10 00:52:55 +09:00
minjaesong
afd3656302 don't put snapshot marker on the release 2024-02-10 00:38:40 +09:00
minjaesong
a1ef80b2c0 build script update 2024-02-09 00:32:17 +09:00
minjaesong
afa2aef4c6 fix: player was drawn 1px lower than they should be 2024-02-08 18:06:00 +09:00
minjaesong
9068143239 turntable wow and flutter sim wip 2024-02-08 15:04:34 +09:00
minjaesong
238dbfc3c4 turntable to play disc 2024-02-08 00:07:19 +09:00
minjaesong
ff15a3a8cf fix: title screen camera debug view is flipped 2024-02-07 17:31:53 +09:00
minjaesong
316bfbcc08 fix: cloud's age ticking not syncing with the world's timedelta 2024-02-07 17:02:05 +09:00
minjaesong
f04548f9ab holo-series item sprites 2024-02-07 15:58:01 +09:00
minjaesong
866b8fed83 gems 2024-02-07 01:32:54 +09:00
minjaesong
a143887375 drop random records when digging dirts but super-rarely 2024-02-06 14:21:09 +09:00
minjaesong
6d941a3841 music by orstphone 2024-02-06 14:12:04 +09:00
minjaesong
ae0dbbf02a forgot to add font's jarfile 2024-02-06 00:10:40 +09:00
minjaesong
b09f6ce5c5 font update 2024-02-05 22:16:36 +09:00
minjaesong
3d81d7870a smelting sand to make glass 2024-02-05 18:55:02 +09:00
minjaesong
34bc9d45a0 held item--wall is not emitting light anymore 2024-02-05 17:34:09 +09:00
minjaesong
3491926e7c revived the held item lighting 2024-02-05 17:18:28 +09:00
minjaesong
2d42525092 actors now always calls despawn() when being despawned 2024-02-05 14:39:21 +09:00
minjaesong
1685d0f045 jukebox item sprite update 2024-02-05 13:47:41 +09:00
minjaesong
90eb51e96b noticelet: better behaving against cursor 2024-02-05 13:32:10 +09:00
minjaesong
17c7571915 debug view for dynamic tracks only 2024-02-05 05:12:03 +09:00
minjaesong
23921c7f7c font update 2024-02-05 03:24:19 +09:00
minjaesong
4d14b950fe font update 2024-02-05 03:03:12 +09:00
minjaesong
839886531a fix: actors having stale musictrack reference after the audioengine reloading 2024-02-05 02:14:38 +09:00
minjaesong
cc00e1eff9 I fixed the ingamerender-not-rendering bug?? 2024-02-05 01:26:27 +09:00
minjaesong
9ec66109a1 font update 2024-02-04 19:20:57 +09:00
minjaesong
11e326ec80 font update 2024-02-04 19:13:33 +09:00
minjaesong
87e2917d48 jukebox sprite: play mechanism 2024-02-04 18:18:12 +09:00
minjaesong
09ef9717ed font update 2024-02-04 16:30:09 +09:00
minjaesong
1054360d8d item renumbering 2024-02-03 21:56:07 +09:00
minjaesong
3c6c49e493 ingot sprite update 2024-02-03 21:32:51 +09:00
minjaesong
e94ad57058 demoworld update 2024-02-03 19:22:10 +09:00
minjaesong
2cbc6fad11 noticelet to make way for the mouse cursor 2024-02-03 19:20:20 +09:00
minjaesong
360d6e9dcb tooltip show item id if ALT is down 2024-02-03 18:18:07 +09:00
minjaesong
9f8f9ceaa5 item tooltip descriptions 2024-02-03 17:10:35 +09:00
minjaesong
72d1f849dd saplings sprite update 2024-02-03 16:12:55 +09:00
minjaesong
04c54204b5 tone mapping param change 2024-02-03 15:58:12 +09:00
minjaesong
5dacbe18a3 fix: pickaxe will constantly closing the tooltip while equipped 2024-02-03 15:40:29 +09:00
minjaesong
559f5a9a9d dropped items now visible in the dark 2024-02-03 15:20:22 +09:00
minjaesong
808862c520 simpler light tone mapping 2024-02-03 15:13:33 +09:00
minjaesong
f91fbf6cf0 smelter lightbox depends on its internal temperature 2024-02-03 04:52:37 +09:00
minjaesong
8cb4709cd7 diversified tree generation 2024-02-03 02:41:02 +09:00
minjaesong
93e0c8742a saplings 2024-02-03 02:26:58 +09:00
minjaesong
d9adbda6f6 font update 2024-02-02 20:39:27 +09:00
minjaesong
40ab816dcb strings moving around 2024-02-02 19:20:40 +09:00
minjaesong
71ce4f8b20 removing temporary ore recipes 2024-02-02 17:47:38 +09:00
minjaesong
c33dae658a item dim fix 2024-02-02 17:46:59 +09:00
minjaesong
a569a34005 charcoal; smelter item sprite;
crafting-fixed navigate-ingredients-crafting-recipe behav
2024-02-02 16:48:07 +09:00
minjaesong
cfd0f0302e smelter multiplier change 2024-02-02 00:20:41 +09:00
minjaesong
0769899b55 smelter: working smelting? and working sprite change 2024-02-02 00:03:27 +09:00
minjaesong
99e17d32e1 thermal stuffs 2024-02-01 16:18:18 +09:00
minjaesong
6e1ad9f768 fix: new encumbrance limit was not applied AT ALL 2024-02-01 16:17:58 +09:00
minjaesong
55bb33b4ce world portal: autogenerating returning portal 2024-01-31 23:18:12 +09:00
minjaesong
62d30fb6e9 'flatness' is considered on choosing a spawn point 2024-01-31 21:41:08 +09:00
minjaesong
a839cc9f49 item list only wheel-scrolls when you move whell on the navbar 2024-01-31 16:40:05 +09:00
minjaesong
3c6e7665fa porting scroll behav to the storage chest 2024-01-31 02:26:17 +09:00
minjaesong
e1935fb659 smelter: scroll wheel to operate the item slots 2024-01-31 02:07:17 +09:00
minjaesong
d1a6873bc0 smelter: clicking on the navbar no longer resets the cell selection 2024-01-30 23:35:16 +09:00
minjaesong
38e60678e1 minor locale update 2024-01-30 20:08:11 +09:00
minjaesong
7fb068517a tooltip and smelter ui fixes 2024-01-30 19:57:32 +09:00
minjaesong
cbe11ce5dc new tooltip for storage chest 2024-01-30 18:16:55 +09:00
minjaesong
1aee8a963a control helpers for smelter 2024-01-30 18:00:42 +09:00
minjaesong
6fc87d9ae9 tooltip to always update 2024-01-30 13:54:34 +09:00
minjaesong
111833f5d3 fix: old tooltip managing code and revived the fading transition 2024-01-30 02:57:18 +09:00
minjaesong
9fa28760fa all the gauges for uismelter 2024-01-30 01:37:03 +09:00
minjaesong
a027506ad2 smelter ui wip 2024-01-29 22:28:33 +09:00
minjaesong
3214f11375 uiitem and template refactoring; new smelter ui wip 2024-01-29 18:51:53 +09:00
minjaesong
8aedd7c78a fix: renaming player would cause savegame load to fail as renaming would 'prettify' the json and the savegame loader was not expecting it 2024-01-29 16:15:13 +09:00
minjaesong
9c2b2c6a13 encumb bar extracted to separate function 2024-01-29 14:29:03 +09:00
minjaesong
60a1b8f76b texture for storage chest item 2024-01-29 02:02:20 +09:00
minjaesong
3781470afb font update 2024-01-28 22:51:32 +09:00
minjaesong
d3cd3465c7 lone leaves decaying 2024-01-28 20:14:48 +09:00
minjaesong
6e69fb3872 seasonal texture for leaves 2024-01-28 17:27:11 +09:00
minjaesong
9f376e93b2 font update 2024-01-28 16:43:41 +09:00
minjaesong
b5f487fe2f yet another jukebox and musicplayer patch 2024-01-28 03:49:39 +09:00
minjaesong
add263620e who knew playing around the music player can be so hard 2024-01-28 02:50:08 +09:00
minjaesong
0af1e7004d all crafting stations now use UICrafting 2024-01-27 22:46:18 +09:00
minjaesong
253ce1054f cut-down version of crafting ui wip 2024-01-27 22:05:49 +09:00
minjaesong
46b55f6303 found a bug on uiFixture and the only solution would be creating a cut-down copy of the original ui 2024-01-27 19:48:44 +09:00
minjaesong
8b1331770d dust and sound on placing fixtures 2024-01-27 17:27:20 +09:00
minjaesong
03b002126a door sound amplified 2024-01-27 16:26:52 +09:00
minjaesong
0290ff1b11 fix: leaves being too strong 2024-01-27 14:45:08 +09:00
minjaesong
0c64cea220 savegamecracker: new command 'uuid' 2024-01-27 14:24:50 +09:00
minjaesong
9849769c7b tile hiding cond now takes uv intensity into account 2024-01-27 05:20:47 +09:00
minjaesong
fd8cdb94bc more emissive and glow codes that fixes glow/emsv-seen-thru-foreground 2024-01-27 04:32:42 +09:00
minjaesong
b1ca1a9351 glow/emissive for held items, even if the actor has no glow/emissive sprites 2024-01-27 03:21:26 +09:00
minjaesong
b02f4d7703 sprite: emissive layer 2024-01-27 01:27:45 +09:00
minjaesong
3042b0659e musicplayer: buttons are now well-behaving 2024-01-25 18:16:24 +09:00
minjaesong
2832f7123d auto apply filter if screenmagnifying is not 1.0 or 2.0 2024-01-25 16:04:20 +09:00
minjaesong
54061f64a8 fix: axe not cutting large trees well 2024-01-25 04:38:26 +09:00
minjaesong
46557c0f91 locale update (restart not needed) 2024-01-25 04:03:22 +09:00
minjaesong
d71527cff1 build script update 2024-01-25 03:41:20 +09:00
minjaesong
9df7f28301 ambient mixer 2024-01-25 03:04:34 +09:00
minjaesong
cdae0cfb24 copyright update 2024-01-24 19:43:17 +09:00
minjaesong
b67c0837d8 fix: track fader was applied at PRE instead of POST 2024-01-24 19:10:04 +09:00
minjaesong
2016be562b static effect looops 2024-01-24 17:51:00 +09:00
minjaesong
89b372e4d8 convolutions and some audio samples are on CommonResourcePool now 2024-01-24 15:34:52 +09:00
minjaesong
76f7b2a145 more special purpose filters (audio samples will be added later) 2024-01-24 15:05:19 +09:00
minjaesong
e5b1eeb9d2 huge load of ambient sounds 2024-01-23 23:20:25 +09:00
minjaesong
d78f886c74 noticelet to show items just picked up 2024-01-22 21:26:54 +09:00
minjaesong
f5715c69ee musicplayer: actively disables playback if jukebox is on 2024-01-22 03:57:25 +09:00
minjaesong
49ff7e8cf0 minor locale string fixes 2024-01-21 21:51:15 +09:00
minjaesong
eebfa5c9de audio routing optimisations 2024-01-21 20:48:32 +09:00
minjaesong
612f4b830f track stop condition via muting 2024-01-21 19:40:11 +09:00
minjaesong
6334cac3ba multiple amb tracks 2024-01-21 17:01:45 +09:00
minjaesong
c00dd4e0bf date marks for DSPs 2024-01-21 15:14:17 +09:00
minjaesong
d927d1d240 fix: door spawn required wall be exist on the cells that don't matter 2024-01-21 03:51:08 +09:00
minjaesong
3da37408a2 doppler effect 2024-01-21 03:25:03 +09:00
minjaesong
f34a6b7c9f a comment to save future futile attemps 2024-01-21 00:49:03 +09:00
minjaesong
ff3f8fe7e3 fix: biomegen may fail due to uninitialised whatever 2024-01-21 00:32:48 +09:00
minjaesong
aada6e891c reviving 'tiny' size for initial worldgen 2024-01-20 21:58:48 +09:00
minjaesong
6b33850a8b foley for wooden doors 2024-01-20 21:05:46 +09:00
minjaesong
c66e4077bf better foley addressing 2024-01-20 20:55:52 +09:00
minjaesong
949ff841de ambient audio stuffs 2024-01-20 19:18:53 +09:00
minjaesong
3f8e2c37ef binopan speaker vol compensation; dynamic source lamp fix 2024-01-20 03:05:32 +09:00
minjaesong
d821516144 adding newly generated chunks to modified chunks list 2024-01-19 17:22:40 +09:00
minjaesong
db383b25c6 font update 2024-01-19 16:04:00 +09:00
minjaesong
965c58d2d4 fix: new softclip was not clamping the input 2024-01-19 03:51:27 +09:00
minjaesong
9f46fade1d deterministically random treegen 2024-01-19 03:14:32 +09:00
minjaesong
79bf88f0e8 world generator progress graphics fix 2024-01-19 00:33:10 +09:00
minjaesong
5dae539402 better worldgen time estimation 2024-01-18 23:53:48 +09:00
minjaesong
dce4b4b7ee terragen dither is still disabled (not working) 2024-01-18 23:06:03 +09:00
minjaesong
c8329b36c5 dynamic chunk generation 2024-01-18 22:41:30 +09:00
minjaesong
b2ea61aa4d param adjustment 2024-01-18 18:43:31 +09:00
minjaesong
a9da9a02cb partial chunk generation 2024-01-18 18:32:32 +09:00
minjaesong
2dbf7215a9 spawn points are auto selected to be good starting point 2024-01-18 16:11:38 +09:00
minjaesong
51287173ea F3: chunk flag view 2024-01-18 01:35:36 +09:00
minjaesong
c270b6e7dd catbar: enlarged button hitbox 2024-01-18 00:05:05 +09:00
minjaesong
07c70a42f3 reloading the engine will copy track states from the old instance, obsoleting audioMixerRenewHooks 2024-01-16 14:00:58 +09:00
minjaesong
f05cfe3cbb jukebox ui: names over the inventory slots 2024-01-16 03:54:37 +09:00
minjaesong
2bd1b61a35 audio engine: resize buffer without restarting the game 2024-01-16 03:31:22 +09:00
minjaesong
755ced9ea4 sound engine is no longer a singleton 2024-01-16 03:00:30 +09:00
minjaesong
350e205028 same for the tooltip 2024-01-15 21:01:00 +09:00
minjaesong
cb56f8f379 better item names for discs 2024-01-15 20:28:34 +09:00
minjaesong
ce39b6c27b catbar: larger hitbox 2024-01-15 05:42:49 +09:00
minjaesong
f1554c836c jukebox ui wont pause the game AND not allow inventory to open 2024-01-15 04:57:24 +09:00
minjaesong
02a6468980 disc sprite update 2024-01-15 00:15:53 +09:00
minjaesong
dae934e295 better disc colouring 2024-01-14 22:43:15 +09:00
minjaesong
a973d33e02 randomised music disc sprite 2024-01-14 22:16:19 +09:00
minjaesong
7aa376dc69 fix: condition for do resampling 2024-01-14 19:45:25 +09:00
minjaesong
e89e32eeea option for speaker/headphone selection for appropriate panning 2024-01-14 19:37:41 +09:00
minjaesong
871396cd92 jukebox: ui item number fix, not accepting disc already there 2024-01-14 11:33:56 +09:00
minjaesong
5d03575ea1 copyright update 2024-01-14 01:12:18 +09:00
minjaesong
1261b6d68d the key to making 'q' to work was just pausing the game?!?!?! 2024-01-13 23:29:36 +09:00
minjaesong
5a7b345e7f almost working jukebox ui except for the 'q' key 2024-01-13 23:08:10 +09:00
minjaesong
3c3e650a97 mostly working jukebox ui 2024-01-13 22:03:35 +09:00
minjaesong
ab171fe9b3 inventory cell only call touchDown when mouse is up 2024-01-13 20:09:46 +09:00
minjaesong
1b74ee8efc jukebox ui wip 2024-01-13 17:20:10 +09:00
minjaesong
fb9640e615 jukebox ui wip 2024-01-13 05:08:40 +09:00
minjaesong
5c6cc36437 jukebox: lamp for play mech chamber 2024-01-12 23:03:29 +09:00
minjaesong
aff3b3655b better softclp 2024-01-12 21:36:12 +09:00
minjaesong
988c9dbff7 jukebox: speaker sim using convolver 2024-01-12 19:55:36 +09:00
minjaesong
40365fd828 even more panning 2024-01-12 17:28:03 +09:00
minjaesong
236d4e4e53 more binopanning 2024-01-12 16:58:48 +09:00
minjaesong
3d71b5c619 binopan adjustments, get actor head size from the sprite 2024-01-12 16:32:03 +09:00
minjaesong
a2f61a2be7 audio mixer reset() with audio artefact masking 2024-01-12 01:05:52 +09:00
minjaesong
b415f30ae5 dynamic source tracking vol and lowpass and shits 2024-01-11 20:09:36 +09:00
minjaesong
28edba9bb3 hopefully 'correct' binopan 2024-01-11 17:46:30 +09:00
minjaesong
5973327ed6 optimising dynamic source processing by NOT multithreading it 2024-01-11 15:19:14 +09:00
minjaesong
62e45d3281 improved audio source threading 2024-01-11 15:07:23 +09:00
minjaesong
122d4bcf27 control panel cleanup 2024-01-11 14:55:17 +09:00
minjaesong
df813712ff fix: panning dynamic source sending nan values 2024-01-11 14:42:16 +09:00
minjaesong
ecd8f08419 wtf is going on 2024-01-11 13:31:17 +09:00
minjaesong
d92fae4bb1 sprite updates 2024-01-11 03:12:21 +09:00
minjaesong
fd30223df8 jukebox wip 2024-01-11 02:23:20 +09:00
minjaesong
52ae1768cb fix: setHitboxDimension had no instruction whatsoever for the fixtures 2024-01-11 01:51:06 +09:00
minjaesong
6e32647e6d binopan: stereo src 2024-01-10 23:22:05 +09:00
minjaesong
0881d1dca3 catbar: better parameter comments 2024-01-10 17:03:34 +09:00
minjaesong
783c5c4fd0 GameBlockLoader registering TileItem and Tile-to-Wall recipe by itself 2024-01-10 16:52:29 +09:00
minjaesong
ed70b16384 generalised catbar 2024-01-10 16:38:51 +09:00
minjaesong
724a92bc18 removing unused libs 2024-01-10 03:59:10 +09:00
minjaesong
537968bb80 lib: kotlin removed from the repo 2024-01-10 03:13:08 +09:00
minjaesong
1b9060e358 updating musicplayer meta 2024-01-10 02:29:36 +09:00
minjaesong
bf1933fcb7 updating musicplayer meta 2024-01-10 02:00:51 +09:00
minjaesong
acaedc4d80 utilising new mouselatch 2024-01-10 01:46:39 +09:00
minjaesong
a149107b48 mouse latch class 2024-01-10 00:54:38 +09:00
minjaesong
9c3aeab74f musicplayer: click on the music title to close the list 2024-01-10 00:17:59 +09:00
minjaesong
c4c76a41fb adding kotlin-test to dependencies 2024-01-09 22:28:49 +09:00
minjaesong
0104d80152 debug print colour code by the object name 2024-01-08 03:19:00 +09:00
minjaesong
fb07713fa4 musicplayer: playlist autoscroll when the album has changed 2024-01-08 02:22:33 +09:00
minjaesong
a94a4f9824 musicplayer: album list scroll 2024-01-08 01:42:13 +09:00
minjaesong
fe598c4e4d musicplayer: album change 2024-01-07 17:56:42 +09:00
minjaesong
0d74fefa3d controlpanel: disregarding NPE 2024-01-07 17:56:32 +09:00
minjaesong
9462d1e041 musicplayer: icon change; drawFreqMeter change 2024-01-06 03:57:57 +09:00
minjaesong
96776ef1bb musicplayer: albumlist wip 2024-01-06 03:13:59 +09:00
minjaesong
23df3ac02b musicplayer: album-playlist transition 2024-01-05 13:58:13 +09:00
minjaesong
1e135e43f9 album list wip 2024-01-05 04:02:32 +09:00
minjaesong
644691efc2 icon for the musicplayer 2024-01-05 03:20:02 +09:00
minjaesong
2be6cb8b4a fix: music stopped on intermittent mode makes graphic artefacts 2024-01-04 20:00:47 +09:00
minjaesong
52aec0fd93 queueing prev/specific song will keep the internal playlist shuffled 2024-01-04 19:21:04 +09:00
minjaesong
d2be8d1e5e musicplayer: anim changes 2024-01-04 18:01:43 +09:00
minjaesong
244d935367 musicplayer: click on the song title to change the music 2024-01-04 17:28:30 +09:00
minjaesong
73e383a678 musicplayer: playlist scrolling and mouseup anims 2024-01-04 16:57:53 +09:00
minjaesong
f54a2133f9 new param 'frameDelta' on every render() function 2024-01-04 16:38:58 +09:00
minjaesong
f2ecb109e6 musicplayer: adjusting positions for even gaps 2024-01-04 01:22:45 +09:00
minjaesong
ccd36ffdbd fix: non-pausing UIs AND the ingame control are both getting input processed 2024-01-03 15:46:52 +09:00
minjaesong
38ecf8d19c musicplayer: load from dir 2024-01-03 15:01:11 +09:00
minjaesong
5790c6ea1f copyright update 2024-01-03 15:00:43 +09:00
minjaesong
2c0ce029a8 musicplayer: playlist printing 2024-01-03 00:11:58 +09:00
minjaesong
6c6e7de060 musicplayer: playlist printing 2024-01-02 14:02:13 +09:00
minjaesong
0395b30f44 musicplayer: playlist view wip 2024-01-02 05:11:27 +09:00
minjaesong
7a487dc158 musicplayer: playlist view wip 2024-01-02 01:29:54 +09:00
minjaesong
ea2cb1e68c musicplayer: list view transition 2024-01-01 04:31:14 +09:00
minjaesong
ce8158c0a8 fix: snapshot single-digit week is not shown with 0 padded 2024-01-01 00:17:36 +09:00
minjaesong
c3ee3d4aba more points for the curve 2023-12-31 03:11:26 +09:00
minjaesong
824cb6097d musicplayer: working prev and stop button 2023-12-29 23:49:11 +09:00
minjaesong
feba499043 fix: closing the game when no module is loaded would try to dispose uninitialised class 2023-12-29 15:30:03 +09:00
minjaesong
f2e30d544f fix: indexoutofboundsexception when there are files but no valid music files 2023-12-29 15:20:51 +09:00
minjaesong
4f87b8bf9d musicplayer: working stop and next button, button pos on transition 2023-12-29 04:47:32 +09:00
minjaesong
fe762e9396 transition anim for gapless play 2023-12-28 21:37:17 +09:00
minjaesong
a4cb3f4d29 working gapless playback but musicplayer anim is not 2023-12-28 19:06:29 +09:00
minjaesong
3e7434a9c6 more musicplayer things 2023-12-28 15:59:33 +09:00
minjaesong
fa915d63d2 ctrl btn for musicplayer 2023-12-27 23:48:56 +09:00
minjaesong
44ff8efd63 hann window for spectroscope 2023-12-27 02:57:56 +09:00
minjaesong
9d2d6a9bb3 musicplayer: song name and freq meter stay in place when hovered 2023-12-26 02:56:52 +09:00
minjaesong
405eafe65a musicplayer: mouseup wip 2023-12-26 01:20:17 +09:00
minjaesong
8cbd9dbfff musicplayer: actually repositioning the ui 2023-12-25 22:52:49 +09:00
minjaesong
60bc9d54fd musicplayer: organic overshoot transition anim 2023-12-25 13:53:39 +09:00
minjaesong
1addc46f18 musicplayer: reading playlist.json 2023-12-25 01:46:56 +09:00
minjaesong
e05d00fe4c musicplayer: song name scroll 2023-12-25 00:44:55 +09:00
minjaesong
8d1d2a1e10 fix: ui width will not take the length truncation 2023-12-25 00:07:59 +09:00
minjaesong
74e7e980b7 musicplayer: march thru playlist/working track-to-track transition 2023-12-24 23:13:50 +09:00
minjaesong
a19c0608f1 removing constantly modified .jar from the repo 2023-12-24 14:37:49 +09:00
minjaesong
4bc74f2e85 musicplayer: simple transitional anims 2023-12-24 14:36:36 +09:00
minjaesong
7371253398 more musicplayer things 2023-12-24 03:54:48 +09:00
minjaesong
c4836a3fe2 music player widget as a separate module 2023-12-24 03:13:35 +09:00
minjaesong
b5312da2f0 flat-top fft window for spectrogram 2023-12-23 00:16:27 +09:00
minjaesong
397b4f7717 snapshot numbering now use ISO week-numbering year to remove possible conflicts 2023-12-22 02:03:46 +09:00
minjaesong
3a814955d0 spectrogram on the scope 2023-12-21 20:51:00 +09:00
minjaesong
fefdf44e3e convolver crossfeed; filter debug code moved to the classes 2023-12-21 17:00:23 +09:00
minjaesong
64ef0343b9 changing savegame comp on game options 2023-12-21 13:52:42 +09:00
minjaesong
b496e3de3a writing correct comp id for chosen compressor 2023-12-21 03:53:56 +09:00
minjaesong
6f4e60284b user-selectable compression methods: zstd and snappy 2023-12-21 03:48:18 +09:00
minjaesong
44ff974b86 MUCH faster bytearray64 dump to physical drive 2023-12-21 03:46:29 +09:00
minjaesong
b0ae92c64b optimised convolve op 2023-12-20 23:07:52 +09:00
minjaesong
2cab9723c9 the correct way to convolve a stereo audio 2023-12-20 20:51:32 +09:00
minjaesong
c0c41adcee testing google snappy 2023-12-20 16:11:56 +09:00
minjaesong
d6e024974b seamless zstd integration 2023-12-20 14:45:11 +09:00
minjaesong
d4fe903273 zstd test 2023-12-20 02:12:03 +09:00
minjaesong
f467e6b6b1 smelter sprite update 2023-12-17 21:15:52 +09:00
minjaesong
6025d8b13c fix: autosave is not loading 2023-12-14 14:54:32 +09:00
minjaesong
d0eb5428e8 turns out it still clicks but at least it's quieter now 2023-12-14 12:06:14 +09:00
minjaesong
3233e57680 lanczos lut 2023-12-14 02:43:29 +09:00
minjaesong
be35d1b4e0 fix: periodic ticking on the resampler 2023-12-14 01:10:27 +09:00
minjaesong
b79232cd9b resampler periodic clicking is now quieter at least :/ 2023-12-12 22:51:37 +09:00
minjaesong
95225b56b4 using fractions for numerical precision 2023-12-12 15:21:47 +09:00
minjaesong
4be7e728c9 geode wip 2023-12-12 03:49:29 +09:00
minjaesong
ceb2b0693b hopefully more optimised resampling 2023-12-12 03:49:04 +09:00
minjaesong
f15ad227b1 mixer view colour changes 2023-12-11 23:37:23 +09:00
minjaesong
39737616e8 using lut for resample buffer size 2023-12-11 18:13:35 +09:00
minjaesong
b0149bcba3 get length of mp3 files 2023-12-11 17:08:02 +09:00
minjaesong
82e89452d6 fix: MP3 would not play if buffer size < 1152 2023-12-11 16:50:58 +09:00
minjaesong
96c9aed25a BUFFER_SIZE is now strictly samples count 2023-12-11 14:03:34 +09:00
minjaesong
949376b26a music track resampling 2023-12-11 03:35:03 +09:00
minjaesong
cc7f7b11d8 minor fix 2023-12-10 22:57:11 +09:00
minjaesong
55789a3671 input audio resampling 2023-12-10 22:12:42 +09:00
minjaesong
6926b18cef ForcedSnapshot for snapshot releases 2023-12-08 13:25:40 +09:00
minjaesong
b2b9dac6dd increased durability for woods and rocks 2023-12-07 15:27:28 +09:00
minjaesong
a377f1c523 item renaming; adding missing ingot items 2023-12-06 01:54:27 +09:00
minjaesong
b843438d2d registering gamemode 'survival' 2023-12-06 00:38:46 +09:00
minjaesong
ceea2ff1a2 metal working station and recipes 2023-12-06 00:22:35 +09:00
minjaesong
0d290dfc1f clouds are now spawned mid-frame 2023-12-05 16:37:37 +09:00
minjaesong
fb7a2a3c49 yet another convolver optimisation 2023-12-05 02:48:56 +09:00
minjaesong
161b356077 some fixtures now require wall or floor to spawn 2023-12-05 01:42:49 +09:00
minjaesong
06949985d1 skip loading nonexisting dir instead of error 2023-12-04 16:28:51 +09:00
minjaesong
1ef7b4b37d new smelter design 2023-12-04 13:12:12 +09:00
minjaesong
1cc839fb68 working test smelter 2023-12-04 02:53:26 +09:00
minjaesong
57ac4015b5 smelter test sprite 2023-12-04 01:28:01 +09:00
minjaesong
7798c46db3 audiocodex: no shared music instances 2023-12-03 16:29:14 +09:00
minjaesong
ff56acab93 debug view for dynamic sources 2023-12-03 16:15:00 +09:00
minjaesong
23261ab360 discovered another bug 2023-12-03 00:42:10 +09:00
minjaesong
0edd248194 fix: punching tree would do nothing 2023-12-03 00:28:06 +09:00
minjaesong
cba8d90321 sound effects for tile placing and breaking 2023-12-03 00:14:04 +09:00
minjaesong
d145edf11d footstep sounds 2023-12-02 23:58:18 +09:00
minjaesong
18f8fa881f footsteps using dynamic track wip 2023-12-02 22:45:26 +09:00
minjaesong
6da28b943a dynamic track first commit 2023-12-02 16:41:37 +09:00
minjaesong
9a3ab64383 mixer: room for dynamic sources 2023-12-02 13:51:48 +09:00
minjaesong
8b95c0aa0e clays on worldgen 2023-12-01 17:35:17 +09:00
minjaesong
a0eee0cad8 spawn clay wip 2023-12-01 13:08:53 +09:00
minjaesong
93a1d688a5 new block clay 2023-12-01 12:25:00 +09:00
minjaesong
ab5c544db3 convolver gain adjustments 2023-11-30 18:29:35 +09:00
minjaesong
c58374cf43 dependency list changes 2023-11-30 14:13:46 +09:00
minjaesong
c6efa404b5 chargeStored for Electric FixtureBase 2023-11-30 14:09:07 +09:00
minjaesong
84ab32f4c1 materials rebalancing 2023-11-30 13:51:09 +09:00
minjaesong
a8e1f235f4 reverb gain reduced 2023-11-29 16:51:14 +09:00
minjaesong
6b13139379 string updates 2023-11-29 16:22:33 +09:00
minjaesong
ed9a6536da adjusting params for situational audio reverb mix incl airbourne 2023-11-29 15:44:23 +09:00
minjaesong
bbfd3cf881 open/cave mix control via tile survey 2023-11-29 00:48:55 +09:00
minjaesong
544024c282 more subtle optimisations 2023-11-28 19:43:42 +09:00
minjaesong
6059ba92ac further convolving optimisaions 2023-11-28 19:25:42 +09:00
minjaesong
af48a171eb audio filters moved to its own files 2023-11-28 13:56:15 +09:00
minjaesong
ce6f5909a8 lang update 2023-11-28 00:52:03 +09:00
minjaesong
2eaa960571 lang update 2023-11-28 00:31:08 +09:00
minjaesong
3d0a1acbe1 lang update 2023-11-27 12:18:15 +09:00
minjaesong
7c1dbea1cd removing option 'multithread' 2023-11-27 11:55:48 +09:00
minjaesong
d3e3812111 cloud texture touchups 2023-11-27 02:17:06 +09:00
minjaesong
93a88976f6 commenting out dead codes 2023-11-27 01:18:25 +09:00
minjaesong
659a159697 slightly faster fft using inline class 2023-11-27 01:04:05 +09:00
minjaesong
33f5461453 still can't get fftw to work 2023-11-27 00:51:46 +09:00
minjaesong
bf64c26e29 adjustable audio buffer size via config 2023-11-26 22:53:36 +09:00
minjaesong
21e0f984be fix: app not quitting 2023-11-26 22:28:17 +09:00
minjaesong
72a01ac8cc slightly faster fft 2023-11-26 21:24:46 +09:00
minjaesong
2e9a755252 hopefully more stable? 2023-11-26 19:39:03 +09:00
minjaesong
29c4d92542 parallelised audio processing 2023-11-26 19:00:29 +09:00
minjaesong
1d727397b4 fft: data struct optimisation 2023-11-26 17:33:51 +09:00
minjaesong
3b38958a08 channel strip visualiser for highpass 2023-11-26 14:37:22 +09:00
minjaesong
cc4fac7dca more audio pathing 2023-11-26 01:59:11 +09:00
minjaesong
4d85d91478 partitioned fft wip 2023-11-25 23:31:54 +09:00
minjaesong
1ed6f252db removing a test code 2023-11-25 23:03:19 +09:00
minjaesong
5e5b6a9412 adding missing FIRs 2023-11-25 22:53:55 +09:00
minjaesong
49100289d3 audio: no longer holds prevsamples globally 2023-11-25 22:50:59 +09:00
minjaesong
46f93660d0 all-float FFT and convolution 2023-11-25 21:46:49 +09:00
minjaesong
51d1501267 trying to fix the crackling sound issue 2023-11-25 20:42:08 +09:00
minjaesong
451ffe0307 mixer to properly show signals larger than 1.0 2023-11-25 20:00:39 +09:00
minjaesong
faf5e367be working convolver but slower that realtime 2023-11-25 18:54:56 +09:00
minjaesong
b1811a4013 reverb filter with lowpass 2023-11-25 02:15:40 +09:00
minjaesong
71a8d6d266 reverb filter 2023-11-25 00:17:29 +09:00
minjaesong
f5078d79f9 crafting recipe update 2023-11-24 19:08:07 +09:00
minjaesong
b16a6ced93 filter: xy-ms conv 2023-11-24 01:21:06 +09:00
minjaesong
402b0a8414 cheap reverb filter 2023-11-23 23:34:05 +09:00
minjaesong
e0257dfe3d bitcrusher 2023-11-23 20:10:36 +09:00
minjaesong
c8a891c164 speed of sound moved to the mixer 2023-11-23 19:54:37 +09:00
minjaesong
7cef8e0df4 filter info view for BinoPan 2023-11-23 19:44:40 +09:00
minjaesong
4676ceb522 binaural panning filter 2023-11-23 18:38:28 +09:00
minjaesong
99bc57acdf fix: ores glow textures are not loading 2023-11-23 17:03:48 +09:00
minjaesong
08d69ba09c renaming and putting more accurate const 2023-11-23 15:00:05 +09:00
minjaesong
39f3ff89b7 meter rms and smoothing 2023-11-23 02:35:48 +09:00
minjaesong
b06d649039 minor changes 2023-11-22 23:44:09 +09:00
minjaesong
42e189582e mixer: compression indicator 2023-11-22 23:22:45 +09:00
minjaesong
179e10f4a4 stone tools 2023-11-22 22:27:24 +09:00
minjaesong
db7f24243d verifications 2023-11-22 20:12:23 +09:00
minjaesong
c514f63f8f verum-nimply logic: xor 2023-11-22 18:59:41 +09:00
minjaesong
660e492035 more on the verum-nimply logic 2023-11-22 17:46:48 +09:00
minjaesong
a70a247ef1 more on the verum-nimply logic 2023-11-22 17:08:07 +09:00
minjaesong
bcd1b5c0c1 more randomised treegen; mixer view only updates when it's actually visible 2023-11-22 16:07:07 +09:00
minjaesong
7b77998749 some study on logic 2023-11-22 14:13:30 +09:00
minjaesong
effbea7cdb disabling wooden axe to motivate players to mine for rocks for better tools 2023-11-22 03:53:03 +09:00
minjaesong
cd34419a96 some crafting recipes 2023-11-22 03:44:53 +09:00
minjaesong
72dc444353 polarity-correct scope 2023-11-22 00:29:44 +09:00
minjaesong
3ff90655f6 titlescreen: audio lp is no longer disabled too early 2023-11-21 15:14:01 +09:00
minjaesong
1459fc5be9 put lin-log scale conversion into separate functions 2023-11-21 11:59:58 +09:00
minjaesong
6229b0f60b audiomanager: will gracefully not play if there is nothing to play 2023-11-21 00:21:19 +09:00
minjaesong
4b17957b65 better scope view 2023-11-20 23:23:48 +09:00
minjaesong
b7f4eca614 scope view on mixer 2023-11-20 23:07:14 +09:00
minjaesong
1a49921c77 softlimiter filter for master 2023-11-20 22:02:57 +09:00
minjaesong
6fabe555df individual fadein/out req for tracks 2023-11-20 21:08:16 +09:00
minjaesong
91a24cae55 audioengine: channel mixing multiple sources 2023-11-20 18:31:29 +09:00
minjaesong
1b2fdf38de narrower mixer gui 2023-11-20 17:59:46 +09:00
minjaesong
d3d52b0b6f fix: bus fader not working 2023-11-20 17:11:19 +09:00
minjaesong
224c0f7863 fix: audio crackles on buffer-edge 2023-11-20 03:20:45 +09:00
minjaesong
468476f41e audioengine: serial processing 2023-11-20 03:15:43 +09:00
minjaesong
c6f8457877 fix: amb/sfx tracks are init'd with LP 48kHz 2023-11-19 21:57:41 +09:00
minjaesong
6c8c036919 mixer: clipping detector 2023-11-19 21:43:29 +09:00
minjaesong
7b7f19e218 turns out wikipedia just flat out give you a code for LP/HP filter 2023-11-19 20:34:40 +09:00
minjaesong
04144fff08 fix: fade state may get inconsistent on rapid ui open-close; correct logscale impl 2023-11-19 20:05:44 +09:00
minjaesong
d77b8087cb buffer size adjustments 2023-11-19 14:11:19 +09:00
minjaesong
574c2e6745 mixer: stream lamp 2023-11-19 02:22:15 +09:00
minjaesong
19315ac6e8 reduced number of tracks; highpass filter wip 2023-11-19 01:47:32 +09:00
minjaesong
60d793f753 mixer overlay 2023-11-18 20:27:32 +09:00
minjaesong
5c5f526d16 mixer overlay wip 2023-11-18 18:31:25 +09:00
minjaesong
dc2f58d754 lowpass in/out on opening menu 2023-11-18 14:17:54 +09:00
minjaesong
62c7b36a46 music playlist is working again 2023-11-18 13:13:22 +09:00
minjaesong
7219b95542 working audioengine? 2023-11-18 03:34:26 +09:00
minjaesong
3238aa1981 seemingly working but thread is not gracefully dying 2023-11-18 02:58:57 +09:00
minjaesong
a09397dbd6 audioengine: filter stack processing 2023-11-17 20:52:25 +09:00
minjaesong
452e20488c working track volume 2023-11-17 20:22:07 +09:00
minjaesong
eb5483ae37 somewhat working audio pipeline 2023-11-17 19:58:15 +09:00
minjaesong
95500053fb more audio device things 2023-11-17 17:24:59 +09:00
minjaesong
8826119f79 test code might shelf later lol 2023-11-17 16:34:52 +09:00
minjaesong
29cc69519e audio mixer thingy wip 2023-11-17 14:22:53 +09:00
minjaesong
21ab607298 fix: double scroll on crafting ui opened by right-clicking on the workbench 2023-11-16 16:11:01 +09:00
minjaesong
fd385d33a0 marble veins on worldgen 2023-11-15 20:37:52 +09:00
minjaesong
b9d2e3e9d9 aaa 2023-11-15 17:49:29 +09:00
minjaesong
a2d0421231 fix: rock tile's connect info had wrong value 2023-11-15 17:03:21 +09:00
minjaesong
7e8e7ab7bf more rock band experiments 2023-11-15 15:28:20 +09:00
minjaesong
e66c7f5002 multiple rock bands 2023-11-15 15:11:42 +09:00
minjaesong
95977050bf rock vein 2023-11-15 14:58:42 +09:00
minjaesong
996359c9c7 worldgensandbox: reviving old feature of showing real progress 2023-11-15 14:14:35 +09:00
minjaesong
4dae2fcc66 worldgen: aggresive use of ModuleCache 2023-11-15 13:32:53 +09:00
minjaesong
3707abcb3a terragen: rock band generator wip 2023-11-15 13:07:40 +09:00
minjaesong
1affb24cae terragen: proportion of layer depth is better preserved 2023-11-15 12:43:29 +09:00
minjaesong
3ebedbb9cf another worldgen wip 2023-11-15 00:47:48 +09:00
minjaesong
bcd8b76aa6 texture fixes 2023-11-14 17:24:09 +09:00
minjaesong
a098729db8 savegame list generator interrupts when a save is being loaded 2023-11-14 13:28:00 +09:00
minjaesong
7391d5e43a module option window title to match the y-pos of others 2023-11-14 13:07:43 +09:00
minjaesong
8d394cc085 fix: snapshot-version is not being recognised as older version compared to its non-snapshot version 2023-11-14 11:57:47 +09:00
minjaesong
c1deeea59e axe items 2023-11-14 00:15:45 +09:00
minjaesong
c3bfbb7cad particles for busted tree blocks 2023-11-13 22:58:31 +09:00
minjaesong
18f133439b tree-related items 2023-11-13 20:56:07 +09:00
minjaesong
4de2f9e34c rosewood seeds pixel cleanup 2023-11-13 20:19:42 +09:00
minjaesong
ef446149e5 minor edit on ebony nut 2023-11-13 20:16:00 +09:00
minjaesong
685d759553 tree seed sprites 2023-11-13 20:10:09 +09:00
minjaesong
f7ce946787 :PunchTrees: 2023-11-13 18:36:29 +09:00
minjaesong
483f770198 more axe wip 2023-11-13 16:07:06 +09:00
minjaesong
60e8aa45cd axe wip 2023-11-13 13:55:32 +09:00
minjaesong
662a265ea6 minor changes on loadscr layer 5 2023-11-13 01:33:04 +09:00
minjaesong
05d0c5b828 new treegen 2023-11-13 01:29:56 +09:00
minjaesong
58ff7ba167 new treegen wip 2023-11-12 21:25:00 +09:00
minjaesong
e41c7fa408 more treegen wip 2023-11-12 00:49:03 +09:00
minjaesong
dd2dfed198 trees spawning 2023-11-11 21:41:39 +09:00
minjaesong
2f85579fb3 moving sprites around 2023-11-11 12:18:00 +09:00
minjaesong
df7089f4ac treegen wip 2023-11-11 12:17:45 +09:00
minjaesong
6291c799cf fix: tile randomiser breaks on world seam again 2023-11-11 12:17:25 +09:00
minjaesong
5fcaec2c74 per-world sand colour randomisation 2023-11-10 15:37:47 +09:00
minjaesong
f5c004104e worldgen: sand patch 2023-11-10 14:59:20 +09:00
minjaesong
74eb5f648d lead ore 2023-11-09 20:42:25 +09:00
minjaesong
6e70ad4212 fix: closing the game when no module is loaded would crash it 2023-11-09 18:03:54 +09:00
minjaesong
125bacfeb9 fix: stop-callback from disposed musicgovernor killing the newly queued music 2023-11-09 16:29:22 +09:00
minjaesong
ce5f3d548b Patched Lwjgl3Application is renamed to TerrarumLwjgl3Application to remove confusions 2023-11-09 13:09:02 +09:00
minjaesong
4510cbb617 using gdx functions for clipboard 2023-11-08 23:46:48 +09:00
minjaesong
2f11988353 updating Gdx.audio on separate thread 2023-11-08 23:42:17 +09:00
minjaesong
beb7f1fb73 music disc jockeying wip 2023-11-08 16:59:22 +09:00
minjaesong
31b328fb48 option and warning msg for loading script mods 2023-11-08 13:10:42 +09:00
minjaesong
797bad3014 audiomanager wip 2023-11-07 18:44:58 +09:00
minjaesong
5d32e6da33 terrain is harder to get damaged by falling 2023-11-07 17:00:05 +09:00
minjaesong
bf2826438f radar ringing artefacts simulation 2023-11-07 16:40:06 +09:00
minjaesong
e4dc3ac146 worldgen estimation change 2023-11-07 14:43:36 +09:00
minjaesong
19f08de756 fix: pickaxe tooltip showing when other overlaying UI is opened 2023-11-07 14:43:15 +09:00
minjaesong
94a207d72a loadscreen texts 2023-11-07 00:38:33 +09:00
minjaesong
3cc51aa774 settings menu reordering 2023-11-07 00:19:35 +09:00
minjaesong
6f0f756fe4 new oregen params 2023-11-06 22:54:56 +09:00
minjaesong
37138656f8 item codes for ores 2023-11-06 21:22:39 +09:00
minjaesong
026cfa5284 more ores 2023-11-06 21:07:12 +09:00
minjaesong
31e19874ae more ores 2023-11-06 20:36:10 +09:00
minjaesong
f2974fc854 more ore variants 2023-11-06 18:16:37 +09:00
minjaesong
a3e0f7b0b3 splash screen default backdrop is now image; logo customisation via mod 2023-11-05 12:18:46 +09:00
minjaesong
98c94017ba faster window startup by deferring postinit
...for real this time
2023-11-05 01:33:50 +09:00
minjaesong
4bea5e9bf9 different randomising for different layers 2023-11-04 21:49:40 +09:00
minjaesong
79ffaf6294 ore autotiling and tile randomiser to use BlockAddr 2023-11-04 19:21:12 +09:00
minjaesong
cada008fca randomised tiling fixes 2023-11-04 18:44:10 +09:00
minjaesong
46234d3d9d assets updates for randomised tiling 2023-11-04 17:45:31 +09:00
minjaesong
eaef2f0c6a randomised tiling 2023-11-04 17:21:15 +09:00
minjaesong
6ae39d38e3 cavegen after the oregen 2023-11-04 00:54:15 +09:00
minjaesong
1128fb7f0e radar penetration sim 2023-11-02 22:08:44 +09:00
minjaesong
3acefebfcb gaussian blurring on the radar reading 2023-11-02 13:01:35 +09:00
minjaesong
1ddd012e19 fix app-breaking typo 2023-11-02 01:32:09 +09:00
minjaesong
4cffe64286 rcs for sands 2023-11-02 00:53:27 +09:00
minjaesong
8a1dfbeedd radar code cleanup 2023-11-02 00:36:16 +09:00
minjaesong
47a7e55910 radar reading rcs from materials 2023-11-02 00:15:08 +09:00
minjaesong
1aa00d564d more plausible ground radar (2) 2023-11-01 21:24:03 +09:00
minjaesong
4c04267cb8 more plausible ground radar 2023-11-01 19:46:30 +09:00
minjaesong
b39a4bd008 ground radar: using linear gamma 2023-11-01 18:19:47 +09:00
minjaesong
b49556a5a1 test ground radar thing 2023-11-01 16:22:47 +09:00
minjaesong
9bb7ab6956 non solid block can be place over actors 2023-11-01 15:19:19 +09:00
minjaesong
b0bdfd9f43 locale update 2023-11-01 12:26:52 +09:00
minjaesong
2be8bb2aea black background to the load bar 2023-10-31 17:42:12 +09:00
minjaesong
6b24182de2 smooth progress bar 2023-10-31 16:22:38 +09:00
minjaesong
15f27726b8 loadscr texture stylised 2023-10-31 15:37:43 +09:00
minjaesong
cbbe5d3e34 worldgen estimation change; common worldgen variables moved to Worldgen.kt 2023-10-31 15:18:51 +09:00
minjaesong
706f5ac507 separating stage value from the progress 2023-10-31 14:29:29 +09:00
minjaesong
aef55bdc22 lesser actor speed mult for landing-on-ground particle 2023-10-31 14:28:50 +09:00
minjaesong
fa21800541 ore texture retrieved from old laptop 2023-10-31 01:44:34 +09:00
minjaesong
8d23714832 rudimentary randomisation for loadscreen tiles 2023-10-31 00:51:56 +09:00
minjaesong
ef6aa842c8 smaller tile gap 2023-10-31 00:15:32 +09:00
minjaesong
0079bc5378 new loadscreen for worldgen 2023-10-31 00:11:43 +09:00
minjaesong
3f3e4ad2e7 working new loadscreen (not worldgen) 2023-10-30 21:47:31 +09:00
minjaesong
4c09588dc2 new loadscreen mockup 2023-10-30 20:53:49 +09:00
minjaesong
3764ee21e9 new loadscreen assets 2023-10-30 17:24:36 +09:00
minjaesong
f199307353 worldgen sliced evenly 2023-10-30 17:24:00 +09:00
minjaesong
4244a2c395 exportmap cmd reworked 2023-10-30 16:43:34 +09:00
minjaesong
6df348bf86 materialid for ore items 2023-10-30 00:40:29 +09:00
minjaesong
b8b0611479 ore item sprites 2023-10-29 23:12:25 +09:00
minjaesong
4de7722fc3 shorter music intermission 2023-10-29 18:45:09 +09:00
minjaesong
4262dbec5e default light passes to 3 2023-10-29 18:26:51 +09:00
minjaesong
868e41ee70 yet yet another coal 2023-10-29 16:19:49 +09:00
minjaesong
f07182dfb6 yet another coal layer texture 2023-10-29 15:04:02 +09:00
minjaesong
56974eeb8c removed bad import 2023-10-29 02:04:49 +09:00
minjaesong
757207cf9b lightbox fixed once again 2023-10-29 02:03:47 +09:00
minjaesong
cc5b9616fe new ore gen params 2023-10-29 01:06:06 +09:00
minjaesong
f7c32e74cd max light pass limited to 4 2023-10-29 00:30:44 +09:00
minjaesong
33e93b8e10 new config for light update pass count 2023-10-28 23:57:40 +09:00
minjaesong
acae5dab8b better ore texture 2023-10-28 23:15:56 +09:00
minjaesong
991a16e6a7 btex using xml wip 2023-10-28 16:51:23 +09:00
minjaesong
76d6579ce9 new oregen param: ratio 2023-10-28 16:49:34 +09:00
minjaesong
208bf79353 fix: rapid typing of bksp-char would be recognised as two bksp 2023-10-27 20:55:23 +09:00
minjaesong
00f8d8f850 text updates 2023-10-27 15:16:37 +09:00
minjaesong
0f82a67a63 cursor sprite 2023-10-27 15:15:13 +09:00
minjaesong
23a78fc345 pickaxe: hide tooltip when unequipped 2023-10-27 15:13:48 +09:00
minjaesong
ffac61fbc5 options for ore spawn tiling; actual ore tile textures 2023-10-27 13:21:29 +09:00
minjaesong
19f1eb2278 pickaxe ore tooltip; working item pickup and throw effects 2023-10-27 02:55:13 +09:00
minjaesong
012d3482dc worldgen: actually generating ores 2023-10-26 15:37:48 +09:00
minjaesong
2bd54c8316 ore generation test 2023-10-26 00:10:45 +09:00
minjaesong
1667e622bd hematite sprite 2023-10-25 20:07:06 +09:00
minjaesong
9da2be0b17 removing stray pixels of an acorn 2023-10-25 19:34:50 +09:00
minjaesong
c83c83a395 current terragen code backported to the noise sandbox 2023-10-25 18:26:44 +09:00
minjaesong
8e2f3254ff oregen test 2023-10-25 17:05:42 +09:00
minjaesong
98813fb4df buildingmaker: zoom using z key 2023-10-25 14:17:08 +09:00
minjaesong
9a233b8c55 buildingmaker: better handling of mouse latching for pens 2023-10-25 13:46:28 +09:00
minjaesong
98d7c9f326 jsoner is always newly generated when accessed 2023-10-24 22:25:13 +09:00
minjaesong
43cb9ec00e buildingmaker: palette can stay open for painting 2023-10-24 20:02:01 +09:00
minjaesong
074c27c6cc config: empty resolution input to use default; also accepts 720p and 1080p 2023-10-24 17:25:20 +09:00
minjaesong
5322cb7b2b buildingmaker: ore pen wip 2023-10-24 17:14:11 +09:00
minjaesong
a8b44c1cac buildingmaker import pen click latch 2023-10-24 16:49:04 +09:00
minjaesong
a5a2c98041 buildingmaker: import penmode 2023-10-24 14:21:53 +09:00
minjaesong
18ab292e24 buildingmaker: import using filename 2023-10-24 13:47:16 +09:00
minjaesong
9145acf741 buildingmaker palette titlebar colour change 2023-10-24 13:07:35 +09:00
minjaesong
228b0962d6 splash screen backdrop 2023-10-24 12:48:10 +09:00
minjaesong
18b2b3c8d6 add: POI Editor on the locale 2023-10-24 01:13:08 +09:00
minjaesong
d1d75b88ca export poi to file 2023-10-23 22:25:33 +09:00
minjaesong
d9deabb644 fix: buildingmaker exporter still reads deselected tile 2023-10-23 18:28:08 +09:00
minjaesong
a432099f19 poi import wip 2023-10-23 17:08:40 +09:00
minjaesong
5806388bee poi read wip 2023-10-23 15:46:12 +09:00
minjaesong
56d915cd71 more item sprites 2023-10-23 13:01:10 +09:00
minjaesong
143f789ea1 more item sprites 2023-10-23 02:16:34 +09:00
minjaesong
1b2940637c more item sprites 2023-10-23 00:46:25 +09:00
minjaesong
872ab8d946 more buildingmaker functions 2023-10-22 14:27:38 +09:00
minjaesong
ed2a46e1a6 poi json out test 2023-10-22 13:42:36 +09:00
minjaesong
d53ab6ffee json out test wip 2023-10-22 01:24:03 +09:00
minjaesong
69345eab57 queueing for notifications 2023-10-21 21:29:14 +09:00
minjaesong
6e90d3521b buildingmaker working terrain/wall palette 2023-10-21 20:03:03 +09:00
minjaesong
e88b595320 more test music play stuffs 2023-10-21 18:33:13 +09:00
minjaesong
f37a28eb17 test play music from appdata/Custom/Music 2023-10-21 15:08:55 +09:00
minjaesong
d57f23d4f1 remaining time gauge for notifier 2023-10-21 02:47:55 +09:00
minjaesong
6634a8dccb poi wip 2023-10-20 20:24:14 +09:00
minjaesong
647c7ea865 gamemode on savegame format 2023-10-20 20:23:38 +09:00
minjaesong
90eb033431 another way to scroll 2023-10-16 23:50:33 +09:00
minjaesong
20f2f2f7b1 buildingmaker palette 2023-10-15 12:39:04 +09:00
minjaesong
1af172d354 buildingmaker palette scrollbar 2023-10-15 12:04:32 +09:00
minjaesong
35c46d9a91 buildingmaker markers working again 2023-10-15 01:42:03 +09:00
minjaesong
8613d804e7 tile number change 2023-10-15 00:27:42 +09:00
minjaesong
1cce4e6ee2 tree foliage tiles 2023-10-15 00:01:52 +09:00
minjaesong
0a65794756 more buildingmaker ui stuffs 2023-10-14 22:01:41 +09:00
minjaesong
d5074e30eb UINSMenu is working again 2023-10-14 20:56:03 +09:00
minjaesong
228c9b8127 buildingmaker resurrection wip 2023-10-14 18:42:06 +09:00
minjaesong
3c79586410 particles to spawn on their true position 2023-10-14 18:06:15 +09:00
minjaesong
d546b081f0 mod config 2023-10-14 16:24:12 +09:00
minjaesong
4362966128 super rudimentary mod config 2023-10-14 15:34:04 +09:00
minjaesong
108c4d3e3f phys: reduced number of collision checks on x axis 2023-10-14 03:34:53 +09:00
minjaesong
fd65541c35 fall damage deals terrain damage 2023-10-14 03:21:42 +09:00
minjaesong
65997764e6 particles when actors collide the world 2023-10-14 02:26:13 +09:00
minjaesong
d8abec381b wooden pickaxe adjustments 2023-10-12 19:54:16 +09:00
minjaesong
58fa1dd56c particles when blocks are being mined 2023-10-12 15:47:51 +09:00
minjaesong
93f1430c5c more particles 2023-10-12 14:58:01 +09:00
minjaesong
93d33b793c better particle emission on block break 2023-10-12 14:28:39 +09:00
minjaesong
3a3d789777 particles to disappear when it hits the ground 2023-10-12 01:56:07 +09:00
minjaesong
6bf535e968 pick and hammer spawns particles 2023-10-12 01:47:00 +09:00
minjaesong
00ca1d3e1a self-connect tiles are working again 2023-10-11 20:33:36 +09:00
minjaesong
552cfd5f06 pickaxe to drop ores when they were mined 2023-10-11 17:59:10 +09:00
minjaesong
e63300339e corner occlusion should render now 2023-10-11 02:51:50 +09:00
minjaesong
1e15719b9c overlaying tile breakage over ores 2023-10-10 20:08:55 +09:00
minjaesong
64d30728ff removing terrain block also removes its ore 2023-10-10 18:45:58 +09:00
minjaesong
3b32242a2b tiling optimisation 2.2ms -> 1.7ms 2023-10-10 18:16:35 +09:00
minjaesong
26936fde09 fluids to their own block layer 2023-10-10 05:33:40 +09:00
minjaesong
caffdbf861 save/load ore layer 2023-10-10 04:10:05 +09:00
minjaesong
e76ff58b3e Generalised BlockLayer 2023-10-10 03:56:02 +09:00
minjaesong
8f1ca485f6 adding ore textures to the atlas 2023-10-10 01:20:04 +09:00
minjaesong
23c445f014 new layer 'ores' 2023-10-09 19:38:04 +09:00
minjaesong
d9218a2dd6 fluids separated from blocks 2023-10-09 17:35:26 +09:00
minjaesong
dd1e53f761 saved game will not be loaded if it's newer than the current version 2023-10-09 15:17:24 +09:00
minjaesong
d8cafe7f12 new item sprite: woods 2023-10-09 02:19:20 +09:00
minjaesong
ae3a6e9c61 materials update 2023-10-08 03:43:26 +09:00
minjaesong
f5bc2c9be3 removing 'GAME_ACTION_CRAFT' from the custom locales: already exists on the Polyglot 2023-10-08 01:37:07 +09:00
minjaesong
1f7626243e goddammit 2023-10-06 18:07:33 +09:00
minjaesong
9cb369ba6d .gitattributes update 2023-10-06 17:06:50 +09:00
minjaesong
22def38cf7 removing codes for renderorder-to-number relation 2023-10-06 16:20:18 +09:00
minjaesong
bfa6cbe2da fix: imported avatars wont show up on players list until the game is restarted 2023-10-06 16:17:24 +09:00
minjaesong
0e21f28609 fix: imported avatars trigger NPE on UILoadManage 2023-10-06 15:05:47 +09:00
minjaesong
781f671859 fix: workbench failes to load because uiInventoryPlayer is uninit'd at the load time 2023-10-06 14:18:14 +09:00
minjaesong
9f93832d81 control preset change for wasd 2023-10-06 13:28:46 +09:00
minjaesong
394ba47423 fix: weatherdirbox not serialising into the intended form 2023-10-06 00:59:20 +09:00
minjaesong
5345a330b0 added the missing @Transient 2023-10-06 00:42:35 +09:00
minjaesong
7c734240b3 fixed the GameWorld's tilenumbermap which prevented the new world to be created 2023-10-06 00:20:09 +09:00
minjaesong
1fcca8098c fix: no module screen gets broken if the screen is magnified 2023-10-06 00:12:10 +09:00
minjaesong
31dac7140e still haxx 2023-10-05 17:18:47 +09:00
minjaesong
4fa342a87b gl haxx for floatframebuffer 2023-10-05 17:09:34 +09:00
minjaesong
e81a11ffb6 build script update 2023-10-05 15:40:20 +09:00
minjaesong
8d947b51e1 libgdx 1.12.0 update 2023-10-05 15:23:01 +09:00
minjaesong
1088b1d29b commit before updating gdx 2023-10-05 14:57:03 +09:00
minjaesong
d81adc449b book test wip 2023-10-05 03:38:32 +09:00
minjaesong
e94c158700 category icon change 2023-10-05 03:37:53 +09:00
minjaesong
8d450dffb6 fix: workbench is opening calendar ui 2023-10-05 03:21:08 +09:00
minjaesong
5ad7fa55a3 fix: placing door would kill a grass 2023-10-05 03:04:34 +09:00
minjaesong
61e38feaba sprite updates 2023-10-05 03:04:06 +09:00
minjaesong
fefa8c78f9 removing 'dev build' notif and recipe print on non devmode 2023-10-05 01:06:49 +09:00
minjaesong
3d34363525 added snapshot to versioning scheme 2023-10-04 21:42:15 +09:00
minjaesong
652dfe39eb in preparation of new demoworld creation for future version 2023-10-04 17:34:16 +09:00
minjaesong
ad0c1d72f3 fix: zoom-out text won't update lang; escmenu won't reset when scrolled from inventory 2023-10-04 15:46:38 +09:00
minjaesong
a9f720647e cloud wide texture 2023-10-04 15:07:39 +09:00
minjaesong
a5fc3b65fa separating player inventory stuffs on crafting UI into its own class for future works 2023-10-04 14:44:24 +09:00
minjaesong
abbf6c122a crafting cost change 2023-10-04 13:44:02 +09:00
minjaesong
4100d338a8 removing inventory-removiitem prints 2023-10-04 02:20:36 +09:00
minjaesong
6529901e64 restored block item's missing equipposition 2023-10-04 02:00:29 +09:00
minjaesong
9a527a4508 new inventory category 'fixtures'; fixture code refactoring 2023-10-04 01:03:40 +09:00
minjaesong
fc8138f3b1 fix: bad code 2023-10-03 19:48:57 +09:00
minjaesong
4a5b18e7fc tossing held items 2023-10-03 19:43:21 +09:00
minjaesong
e95dcdec9f tossing items on the inventory 2023-10-03 19:07:00 +09:00
minjaesong
dcdd7eb313 update available! on titlescreen if applicable 2023-10-03 17:52:21 +09:00
minjaesong
c8c18d68a7 update checker using github release page 2023-10-03 17:07:38 +09:00
minjaesong
b206268e05 configurable inventory toss key 2023-10-03 14:26:58 +09:00
minjaesong
48a07a9be5 cloud model update 2023-10-03 04:37:39 +09:00
minjaesong
cd2043b044 fix: getGradientCloud not sampling correct coord 2023-10-03 02:48:04 +09:00
minjaesong
1ebca0de66 another cloud model change 2023-10-02 20:02:20 +09:00
minjaesong
42ab13d114 orebfuscator impl 2023-10-02 01:35:32 +09:00
minjaesong
f78076fb28 crafting: special 'theme' for the cell for the already-existing 2023-10-01 22:44:26 +09:00
minjaesong
f4f00c2e1c clicking on the crafting recipe will also show how much the player already has the product 2023-10-01 21:47:55 +09:00
minjaesong
63561725fd fix: selected player cell would remain force-unhighlighted when 'back' is hit 2023-10-01 15:06:04 +09:00
minjaesong
f4dd11407e clicking on the empty recipe slot would deselect a recipe 2023-10-01 03:48:01 +09:00
minjaesong
abcc85a3de crafting: clicking on the recipe will show all possible ingredients player has 2023-10-01 03:11:01 +09:00
minjaesong
908a6ed953 working savegame migrator 2023-09-29 23:30:04 +09:00
minjaesong
2041631462 savegame migrator wip 2023-09-29 16:26:35 +09:00
minjaesong
9031c66966 item filtering for inventory additem 2023-09-29 11:36:21 +09:00
minjaesong
20a25b9725 added missing words 2023-09-29 01:57:30 +09:00
minjaesong
045165e388 locale update 2023-09-29 01:55:26 +09:00
minjaesong
e5adc7c908 update the ghost sparingly 2023-09-29 00:00:11 +09:00
minjaesong
430de3dcbf fixture ghost is now red when it cant be placed there 2023-09-28 23:40:58 +09:00
minjaesong
ebe63916d7 change of a constant 2023-09-28 22:36:59 +09:00
minjaesong
9b32908cd6 more solid maths model of the cloud colouring 2023-09-28 18:41:34 +09:00
minjaesong
c39fd540ff lang update 2023-09-27 17:56:28 +09:00
minjaesong
99f08d810d yet another daylight model update 2023-09-27 15:54:57 +09:00
minjaesong
2673843e72 fix: cloud not spawning often enough if timeDelta > 1 2023-09-26 22:43:22 +09:00
minjaesong
bee939877b fix: barehand action is not draggable 2023-09-26 13:15:48 +09:00
minjaesong
2f52e46bad tiny bit of adjustment 2023-09-26 01:22:55 +09:00
minjaesong
d9151377f6 longer sunsets to the skybox model 2023-09-26 00:37:35 +09:00
minjaesong
930c55c297 changed colourmap again but I need to re-work the hosek model 2023-09-25 21:52:01 +09:00
minjaesong
0a4811ca02 fix: forgot to change the shadiness 2023-09-25 19:55:46 +09:00
minjaesong
2c9f3ce1e5 floating points packing for shaders 2023-09-25 19:09:26 +09:00
minjaesong
7623b120ac scrolling credit text outside of text area would not move the scrollbar 2023-09-25 17:38:49 +09:00
minjaesong
03195910f7 cloud model to take their height into accout 2023-09-25 17:17:11 +09:00
CuriousTorvald
6299d724de Update README.md 2023-09-24 02:10:08 +09:00
minjaesong
a3d29b6002 cloud colour using 'correct' way of lerping for better mix 2023-09-23 01:51:36 +09:00
minjaesong
e3b510bf7e skybox: slightly darker to match 0.3.2 skybox 2023-09-23 01:50:14 +09:00
minjaesong
d87dc8fffc fix: title screen UIs can be closed using ESC 2023-09-23 01:14:54 +09:00
minjaesong
c1717c7a54 new cloud colour model 2023-09-22 21:32:34 +09:00
minjaesong
153fdb4a2c vertical parallax numbers change 2023-09-22 17:32:31 +09:00
minjaesong
556c21e82a cloud colour dependent on the skybox and daylight 2023-09-22 17:03:44 +09:00
minjaesong
e83b2d1908 better skybox model for better sunset 2023-09-21 19:52:40 +09:00
minjaesong
3f8b1d4f49 prev saves sorting 2023-09-21 17:37:15 +09:00
minjaesong
ee5e81e3f4 removed SortedPlayers prints 2023-09-21 16:25:11 +09:00
minjaesong
e2a71467db deferred savegame collection for faster startup 2023-09-21 16:22:29 +09:00
minjaesong
8508956ad6 trying to make savegame collecting faster 2023-09-21 00:01:50 +09:00
minjaesong
5957f70ff8 working crafting workbench 2023-09-20 16:01:40 +09:00
minjaesong
a168db23de fix: ui show() and hide() was only called when it feels like 2023-09-20 16:00:18 +09:00
minjaesong
a2e9f30e30 linter to run on the build process 2023-09-20 14:29:24 +09:00
minjaesong
32f5da1909 lang 2023-09-20 01:05:14 +09:00
minjaesong
442d7f6821 audosave marker on prev versions listing 2023-09-19 22:50:25 +09:00
CuriousTorvald
21b3d27148 Update README.md 2023-09-19 21:10:10 +09:00
minjaesong
e01183101f quicksave to write modification time to the disk 2023-09-19 18:15:42 +09:00
CuriousTorvald
3828c7059b Update README.md 2023-09-19 16:15:25 +09:00
minjaesong
1b3796b265 fix: delta d bench was broken 2023-09-19 16:13:29 +09:00
minjaesong
0229cf501c fix: autosave being god damn slow 2023-09-19 15:06:49 +09:00
minjaesong
ca9c640094 timestamp on debug prints 2023-09-19 14:43:31 +09:00
minjaesong
a9c7fc0e90 Saving while autosaving will show appropriate message 2023-09-19 14:06:39 +09:00
minjaesong
9c319ab5b2 Updating F1 help 2023-09-19 14:06:14 +09:00
minjaesong
0c68e0a60c added a fixme marker 2023-09-19 02:04:16 +09:00
minjaesong
5069e90aa1 fix: clouds not using their alpha value to draw 2023-09-19 01:45:59 +09:00
minjaesong
5616b81a31 cloud model update 2023-09-19 01:34:43 +09:00
minjaesong
b0d7bc4022 fixing light/shadebox rendering issue 2023-09-19 00:16:36 +09:00
minjaesong
7196cfec8c benchmark key changed to F2 2023-09-18 19:31:36 +09:00
minjaesong
9290dc420e force GL versioning disabled for non-mac 2023-09-18 19:31:23 +09:00
minjaesong
48fbbdcbac cloud colourmap update 2023-09-18 18:36:27 +09:00
minjaesong
90dff165bc cloud colourmap update 2023-09-18 18:23:38 +09:00
minjaesong
13b1942d0e shader: auto versioning and feature selection to allow broader compatibility 2023-09-18 17:54:42 +09:00
minjaesong
232bc4bfbe improved performance for prev saves view 2023-09-17 21:25:16 +09:00
minjaesong
edde82a9ce previous saves view wip 2023-09-17 20:18:18 +09:00
minjaesong
cd13696116 crafting ui: highlighting should work after mode change and scroll 2023-09-17 17:05:28 +09:00
minjaesong
596328688c auto-generated crafting recipes for walls 2023-09-17 16:47:00 +09:00
minjaesong
dd0bb30da1 new woods texture and workbenches 2023-09-17 15:16:37 +09:00
minjaesong
af36cec60f crafting: mutual exclusiveness for $WALL tag 2023-09-17 15:16:04 +09:00
minjaesong
0a62037896 change of calculation of windowWH 2023-09-17 02:32:08 +09:00
minjaesong
958471c1b9 going fullscreen 2023-09-17 02:21:02 +09:00
minjaesong
e87c061635 scrollbar on wall-of-texts 2023-09-17 01:43:19 +09:00
minjaesong
259806e636 accidentally pushed a test code 2023-09-15 23:57:29 +09:00
minjaesong
c806d9a1da fix: grass now won't spread to diagonally disjoint tiles 2023-09-15 23:18:56 +09:00
minjaesong
932204deed grow grass randomly on dirt if viable 2023-09-15 22:45:58 +09:00
minjaesong
016c23a97f fix: falling blocks would pass-thru/delete nonsolid blocks 2023-09-15 19:07:16 +09:00
minjaesong
61f0528205 more 'correct' dithering shader code 2023-09-15 15:51:37 +09:00
minjaesong
cacef34473 batch code improvements 2023-09-15 11:56:22 +09:00
minjaesong
bc41e23beb new batch: default blend mode 2023-09-15 00:55:21 +09:00
minjaesong
9f38e32d47 fix: halfassed new spritebatch 2023-09-14 23:37:32 +09:00
minjaesong
d6fea9889e spritebatch with hdr colour 2023-09-14 23:17:37 +09:00
minjaesong
f8b74f2445 worldgen estimation change 2023-09-14 20:32:44 +09:00
minjaesong
427eabb4dc fix: config change from escmenu won't persist 2023-09-14 17:06:04 +09:00
minjaesong
3e28af4bc9 oopsie 2023-09-14 15:30:29 +09:00
minjaesong
84506a2ca0 worldgen: estimated time disp 2023-09-14 15:20:39 +09:00
minjaesong
fa0da28a5c cloud: removing the translucent line from the texture 2023-09-14 14:43:17 +09:00
minjaesong
1b0b279e3d fix: new world from world portal not updating world ref of IngameRenderer 2023-09-14 13:33:24 +09:00
minjaesong
6772daaf37 fix: null cpuid causing crash 2023-09-14 01:58:07 +09:00
minjaesong
61162587ee improved system info ui 2023-09-14 01:19:51 +09:00
minjaesong
a3bf53d20f U16 texture format used for all macOS, not just macOS with Apple M 2023-09-13 18:19:43 +09:00
minjaesong
6bf40709b9 trees texture removing rough sides 2023-09-13 17:49:32 +09:00
minjaesong
a9d2454155 sprite update 2023-09-13 16:45:35 +09:00
minjaesong
a026881d92 fix: trying to show loadorder for imported but not initialised players 2023-09-13 16:44:08 +09:00
minjaesong
fce32f7f48 fix: wall breakage would use wrong texture 2023-09-13 15:49:15 +09:00
minjaesong
79892f2525 vibrancy is applied to the world only, as it should be 2023-09-13 15:09:31 +09:00
minjaesong
f34a9db24c using gamemode to control 'being encumbered' 2023-09-12 19:46:47 +09:00
minjaesong
4fbb5f4828 changing lower bounds of encumbered jump debuff 2023-09-12 18:31:00 +09:00
minjaesong
53060fc90c actor walk and jump power is reduced when encumbered (temp. commented out) 2023-09-12 13:33:46 +09:00
minjaesong
e6056a79af new block: plastics 2023-09-11 23:55:20 +09:00
minjaesong
30a969b112 load order view on savegame manage scr 2023-09-11 18:33:36 +09:00
minjaesong
d8d3182710 inventory images for doors; fix: item not drawing centred on quickslot 2023-09-11 16:13:10 +09:00
minjaesong
db8cfca125 rudimentary savegame load order disp 2023-09-11 13:38:02 +09:00
minjaesong
661fae488d hopelessly fixing wall flicker when taking down 2023-09-11 00:44:44 +09:00
minjaesong
75213f2ae5 fix: reopening crafting would reset the visible mult to 1 but internally wouldn't 2023-09-11 00:18:27 +09:00
minjaesong
bca47840fa oopsie 2023-09-10 23:52:19 +09:00
minjaesong
20a9d32de0 not craftable items (due to lack of items) are filtered on crafting recipe list 2023-09-10 23:44:11 +09:00
minjaesong
a40f044cb3 actual crafting recipes 2023-09-10 22:22:55 +09:00
minjaesong
5f0e6135e7 block itemimage to use vernal season textures 2023-09-10 20:22:39 +09:00
minjaesong
ca155a7e99 watchface and quickslot cell update 2023-09-10 02:33:08 +09:00
minjaesong
9ea070d075 sledgehammer: don't punch the cave wall! 2023-09-09 23:58:53 +09:00
minjaesong
07a70ffba4 srceen-meshes now use GL_TRIANGLE_FAN 2023-09-09 21:51:27 +09:00
minjaesong
9af62b8b61 longer minute hand 2023-09-09 20:19:48 +09:00
minjaesong
6c9cbcdfd1 analogue watch ui 2023-09-09 17:58:31 +09:00
minjaesong
c5134ffe97 more translation supports 2023-09-09 15:42:28 +09:00
minjaesong
290b11eb96 mod meta update; translations for description 2023-09-09 15:19:03 +09:00
minjaesong
bae94bee48 removing 'modules' and 'prev saves' menu button: not a right place to put them 2023-09-09 01:25:43 +09:00
minjaesong
81ebf7a8ef world code placeholder to match the code struct 2023-09-08 19:32:41 +09:00
minjaesong
d5a8d098bb teleporter: list loading on separate thread 2023-09-08 18:51:53 +09:00
minjaesong
cc55e563f0 ModLoader: load IME unconditionally when found 2023-09-08 15:31:11 +09:00
minjaesong
64ef30e445 shorter share code if allowed; flickering teleporter beams 2023-09-08 02:14:36 +09:00
minjaesong
fbc700508f season variable moved to worldtime 2023-09-07 17:21:34 +09:00
minjaesong
37492dc8a0 six ecological seasons for terrain tiles 2023-09-07 13:19:32 +09:00
minjaesong
b0e4bd31eb temporary setup for picking next weather 2023-09-06 22:33:42 +09:00
minjaesong
0b5e3d7b77 skybox: old-current weather turbidity blend 2023-09-06 21:07:39 +09:00
minjaesong
b47cc17afd choosing next weather as its own function 2023-09-06 19:30:08 +09:00
minjaesong
6c97a9d5ab cloud stage has more depth 2023-09-06 18:01:33 +09:00
minjaesong
7259ca616c modloader: locale autoloader 2023-09-06 02:15:04 +09:00
minjaesong
70b9cebbd0 working sledgehammer item to take down walls 2023-09-05 22:47:40 +09:00
minjaesong
274be20e25 new texture for the teleporter 2023-09-05 20:40:55 +09:00
minjaesong
c576d087b4 newborn clouds will fade-in 2023-09-05 14:24:02 +09:00
minjaesong
699cc4dd74 another failed experiment 2023-09-05 13:45:02 +09:00
minjaesong
8fa9ddeec1 portalPoint to the world 2023-09-05 01:40:20 +09:00
minjaesong
c4deba14da cloud rendering: gamma change 2023-09-05 01:04:09 +09:00
minjaesong
cf98c13111 fix: 'q' would close the ui when you're typing in something 2023-09-05 00:41:43 +09:00
minjaesong
d0e1555ad0 sprite update 2023-09-04 22:40:48 +09:00
minjaesong
50eac69e3e working invitation code for new character 2023-09-04 22:16:51 +09:00
minjaesong
c45cab388e working invitation code via portal 2023-09-04 21:48:28 +09:00
minjaesong
7b3ac9cd06 weatherbox is now owned by the world 2023-09-04 14:59:12 +09:00
minjaesong
08b1d93d54 fix: double typing on world portal ui 2023-09-04 14:04:19 +09:00
minjaesong
da7ecaa75b share code ui wall of text 2023-09-03 20:30:23 +09:00
minjaesong
65b610ce01 world portal share code 2023-09-03 17:06:02 +09:00
minjaesong
6a78cf6a41 reverting akima intp: derivatives are not being preserved at the sample points 2023-09-02 23:43:50 +09:00
minjaesong
1e98353b50 akima interpolation to the WeatherBox 2023-09-02 22:37:07 +09:00
minjaesong
38c91bd8ec weatherbox: nonlinearity to the intp to remove overshoot-to-minus 2023-09-02 17:18:47 +09:00
minjaesong
78075d779b each cloud now carry its own gamma value 2023-09-02 02:40:27 +09:00
minjaesong
721a24d9dc commenting out some debug prints 2023-09-02 00:24:38 +09:00
minjaesong
66a103bd3a weather sched progression wip 2023-09-01 23:56:48 +09:00
minjaesong
abee176ef4 fix: graph rules not drawing if ymax < 1 2023-09-01 16:30:09 +09:00
minjaesong
ae078024cb angular modulo for wind dir 2023-09-01 15:51:46 +09:00
minjaesong
96af39ab4a changing the way weatherbox gets updated 2023-09-01 00:50:24 +09:00
minjaesong
c75fa73bac scrolling weatherbox; new skybox clut 2023-08-31 22:32:55 +09:00
minjaesong
5eed921288 debugwin: drawing ingame weatherboxes 2023-08-31 17:03:27 +09:00
minjaesong
7f3f94e01a gui-theme: cell colour change 2023-08-31 12:20:31 +09:00
minjaesong
1fe0ca9e2e debug window: weather box drawing 2023-08-31 12:19:56 +09:00
minjaesong
7cc985b627 debug info: timer toggle is now Ctrl+T 2023-08-31 10:56:32 +09:00
minjaesong
d17d576e15 sunlight and clouds changes 2023-08-30 19:57:11 +09:00
minjaesong
ced7cf99fc more cloud textures 2023-08-30 17:54:34 +09:00
minjaesong
c290d5dee7 minor phys fix 2023-08-30 14:39:20 +09:00
minjaesong
d32d6b8d1c torch should flicker less erratic now 2023-08-30 12:39:56 +09:00
minjaesong
9d118aebb0 todo weather example 2023-08-29 15:39:24 +09:00
minjaesong
0646425b76 build: removing unused files, instruction update 2023-08-29 14:29:25 +09:00
minjaesong
a348bac397 . 2023-08-29 14:04:17 +09:00
minjaesong
a9bd032c32 yet another cloud colour changes 2023-08-28 14:48:14 +09:00
minjaesong
349488376d sunrise/sunset transition is now longer 2023-08-28 14:30:24 +09:00
minjaesong
ce8c53f740 clut for cloud colours 2023-08-28 03:28:27 +09:00
minjaesong
7845146718 cloud spawn: fixing my bad maths 2023-08-28 00:04:00 +09:00
minjaesong
3cce1c0b65 faster import process 2023-08-27 21:13:52 +09:00
minjaesong
2bbf92d056 build script update 2023-08-27 21:01:13 +09:00
minjaesong
3d5713cd31 new test sprite/display screencaps for imported avatars if available 2023-08-27 17:38:43 +09:00
minjaesong
f8b6493cdc temporarily disabling evening-mustard :p 2023-08-25 21:28:20 +09:00
minjaesong
b69689a6be higher alpha-gamma makes it look better 2023-08-25 21:27:17 +09:00
minjaesong
cc2c841f76 app version string for .plist 2023-08-25 21:26:51 +09:00
minjaesong
89846db5d3 fix: using wrong method for retrieving mouse coord 2023-08-25 18:46:24 +09:00
minjaesong
bfd926d7fe avatar import error handling 2023-08-25 17:38:15 +09:00
minjaesong
602d5e046b fix: newly created world did not get clouds 2023-08-25 16:50:41 +09:00
minjaesong
72029ed458 new world screen for loading imported players 2023-08-25 16:47:00 +09:00
minjaesong
a4672a131d some gui stuff for imported players 2023-08-25 16:04:12 +09:00
minjaesong
75fcb5be5b new import screen 2023-08-25 15:49:35 +09:00
minjaesong
eeee1ebdbc F4 to hide GUI 2023-08-25 09:11:56 +09:00
minjaesong
32e750eb6a generating version number on build 2023-08-25 08:54:32 +09:00
minjaesong
a2ced31f8f removing os files on making assets_release 2023-08-25 08:40:06 +09:00
minjaesong
b1e45f1743 character import wip 2023-08-25 00:24:12 +09:00
minjaesong
8dda7ac79b linear filter for clouds 2023-08-24 20:27:10 +09:00
minjaesong
74b8cc20b7 fix: bad cloud spawn position on certain directions 2023-08-24 17:59:55 +09:00
minjaesong
f75a7dd812 control presets 2023-08-24 17:24:39 +09:00
minjaesong
b2454e4ca2 changing ui toggle keys in-world should work now 2023-08-24 16:08:18 +09:00
minjaesong
45af955488 wide cloud for overcast weather 2023-08-24 15:08:30 +09:00
minjaesong
1f39b9d448 cloud texture touchups 2023-08-23 22:38:01 +09:00
minjaesong
26a4cdbce1 clouds will despawn of old age 2023-08-23 21:22:46 +09:00
minjaesong
bf87dc04cb randomised weather but i'm just faking it rn 2023-08-23 18:12:32 +09:00
minjaesong
8535b0ce13 forgot to enable the initial clouds spawning 2023-08-23 13:01:20 +09:00
minjaesong
6e0004f165 clouds can spawn and drift in any direction 2023-08-23 12:49:33 +09:00
minjaesong
845333f33d timeflow on the titlescreen need not be that complex 2023-08-23 10:10:01 +09:00
minjaesong
6988feb731 day-night cycle on the titlescreen 2023-08-22 23:39:09 +09:00
minjaesong
ac2c7b1148 clouds on titlescreen 2023-08-22 23:17:49 +09:00
minjaesong
d6145fd0da even more clouds 2023-08-22 22:27:39 +09:00
minjaesong
194089827c more cloud texture 2023-08-22 21:27:33 +09:00
minjaesong
d69d032f74 more cloud texture 2023-08-22 20:27:25 +09:00
minjaesong
a9dbea3d16 more clouds 2023-08-22 20:06:22 +09:00
minjaesong
52938a4b60 improved cloud draw perf 2023-08-22 17:43:53 +09:00
minjaesong
a21f986f30 cloud spawn z-pos probability change 2023-08-22 16:33:39 +09:00
minjaesong
547158a313 more depth to the distant clouds 2023-08-22 16:20:35 +09:00
minjaesong
0a8b5f33f4 clouds parallax and can drift in 3D 2023-08-22 09:50:03 +09:00
minjaesong
da8d620766 clouds with just right depths 2023-08-22 02:55:31 +09:00
minjaesong
7dd520393c more clouds 2023-08-22 00:06:03 +09:00
minjaesong
dc83e12170 more clouds 2023-08-21 21:39:11 +09:00
minjaesong
d6b2940d8f more clouds 2023-08-21 01:26:16 +09:00
minjaesong
c5dfe46b76 cloud wip 2023-08-20 19:10:43 +09:00
minjaesong
3d3926c08b windows build 2023-08-18 20:30:57 +09:00
minjaesong
9a90bf69d4 trying to use the proper method of running exe on exe 2023-08-18 10:57:40 +09:00
minjaesong
0ed5472d8a adjusting pos for 'save will be deleted' msg 2023-08-18 00:05:03 +09:00
minjaesong
97a7a36030 version tag on app configuration 2023-08-17 15:47:31 +09:00
minjaesong
662069466a skybox size adjustment 2023-08-17 02:04:05 +09:00
minjaesong
52cff00338 commit 2023-08-16 22:39:31 +09:00
minjaesong
1a40334f8e auto zip for .app packaging 2023-08-16 22:26:27 +09:00
minjaesong
763f512419 script for assets_release 2023-08-16 22:17:09 +09:00
minjaesong
620a1c6956 GL_UNSIGNED_SHORT works just fine on macOS?! 2023-08-16 21:56:04 +09:00
minjaesong
5f4fcdba69 apple m chip workaround (2) 2023-08-16 21:46:54 +09:00
minjaesong
7a79f444b2 apple m chip workaround 2023-08-16 21:38:23 +09:00
minjaesong
e4b947ce69 Float16FrameBuffer 2023-08-16 17:51:31 +09:00
minjaesong
fdfec960ca reverse gravity adaptation of the last commit 2023-08-16 16:33:53 +09:00
minjaesong
75021ecfa2 fixing issue #48 2023-08-16 16:03:54 +09:00
minjaesong
c90ef21bfa calendar UI mouseover 2023-08-15 19:02:25 +09:00
minjaesong
3fce5d7e95 calendar UI 2023-08-15 14:58:50 +09:00
minjaesong
8db1228e70 calendar wip 2023-08-15 04:54:43 +09:00
minjaesong
5f7f724058 tileatlas: atlas size will automatically expand if it's too small 2023-08-14 18:47:39 +09:00
minjaesong
fab4179068 fixing issue #47 using new tag on blocks.csv 2023-08-14 18:16:05 +09:00
minjaesong
32803b6f18 incomplete fix for horizontal bouncing on T-shaped platform arrangement 2023-08-14 04:10:10 +09:00
minjaesong
f8f75fb7b6 options to change atlas texture size 2023-08-14 03:53:25 +09:00
minjaesong
9919a99032 fix: phys ccd would only trigger on its last iteration due to a stupid oversight 2023-08-13 16:54:46 +09:00
minjaesong
6a43d1a5bd calendar sprite removing a spring 2023-08-13 15:36:24 +09:00
minjaesong
24c971e4b8 oh wait thats not it 2023-08-11 21:08:35 +09:00
minjaesong
62f0fd7c68 hiding the phys artefact by forcefully holding down-key for long enough 2023-08-11 21:05:47 +09:00
minjaesong
3dec312989 phys glitch kinda fixed but i'm no longer sure about that 2023-08-11 17:03:51 +09:00
minjaesong
77b51a45dd no highp on blur shader 2023-08-11 13:03:45 +09:00
minjaesong
d1b4ce3404 something's fixed but have no idea what 2023-08-11 12:35:36 +09:00
minjaesong
fd7b88307c . 2023-08-11 09:29:30 +09:00
minjaesong
579b6b5b29 somehow fixed but now jumping while walking against wall changes jump behav 2023-08-11 01:04:34 +09:00
minjaesong
cef58f6a73 phys debugging; see L818@ActorWithBody.kt 2023-08-10 23:49:43 +09:00
minjaesong
c0c98c3b80 some locale changes; remoCon changes on load menu 2023-08-08 17:44:23 +09:00
minjaesong
88d844cc09 actor draw planting offset 2023-08-08 17:14:13 +09:00
minjaesong
2411db17a7 calendar fixture wip 2023-08-08 16:41:40 +09:00
minjaesong
53d372be38 there's no way #33 is fixed so easily but im committing it anyway 2023-08-08 12:09:22 +09:00
minjaesong
88831051c8 revised ingame date format 2023-08-08 09:01:34 +09:00
minjaesong
87d92ecb74 some random ideas for future self 2023-08-08 01:39:33 +09:00
minjaesong
6672dffdbc new passwd for new version 2023-08-07 14:45:07 +09:00
minjaesong
cd00ab4c7f fix: hq2x results graphical issue on some systems 2023-08-07 14:30:36 +09:00
minjaesong
014306c209 2k skybox tex; trilinear blending of atmos vars 2023-08-07 13:59:45 +09:00
minjaesong
30fb57eca3 skybox: two different setup for AM/PN 2023-08-06 18:37:56 +09:00
minjaesong
52ad8f0c46 improved skybox model 2023-08-05 17:20:35 +09:00
minjaesong
1b08039018 updating numbers for v0.3.3 2023-08-05 00:45:35 +09:00
minjaesong
c701519cb9 unloading test_texture 2023-08-05 00:25:25 +09:00
minjaesong
75e6669d49 temp fix: platform-ladder not working 2023-08-05 00:16:00 +09:00
minjaesong
18631064d4 hosek skybox moved outside of basegame; moonlight impl 2023-08-04 13:43:14 +09:00
minjaesong
9fe6618cc9 fix: splash goes black when hq2x is enabled 2023-08-04 12:53:44 +09:00
minjaesong
7b8d6d6913 fix: bad number formatting on debug window 2023-08-04 00:53:30 +09:00
minjaesong
385a882937 stars: more realistic twinkle, change of axial tilt changes starmap 'altitude' 2023-08-03 23:55:19 +09:00
minjaesong
c73461a407 const-ifying shaders 2023-08-03 18:37:23 +09:00
minjaesong
f7e4987785 less crazy twinkling 2023-08-03 00:29:27 +09:00
minjaesong
78bd88858b twinkling stars 2023-08-03 00:11:17 +09:00
minjaesong
d2b1346252 diurnal motion on stars 2023-08-02 22:44:04 +09:00
minjaesong
fb28fd8a76 brought 'sunset orange' back 2023-08-02 22:14:25 +09:00
minjaesong
36d25c6479 the stars are rendered but still some works left 2023-08-02 18:55:41 +09:00
minjaesong
2ade76147c fix: skybox edge case on deg ±75 2023-08-02 18:44:12 +09:00
minjaesong
59d9adbbd1 stars wip 2023-08-02 17:52:42 +09:00
minjaesong
821c7c77d8 much more elegant solution than stretching texture using batch 2023-08-02 16:37:15 +09:00
minjaesong
3308f09e08 some other 'weather' elements (assets only) 2023-08-02 10:57:52 +09:00
minjaesong
37d45e22ad backdrop is stretched far enought so that the stretchedness is not observable 2023-08-01 22:01:56 +09:00
minjaesong
1ac861fa82 skybox lut 2023-08-01 17:22:45 +09:00
minjaesong
451808cd1c skybox atlas texture generation 2023-08-01 16:50:37 +09:00
minjaesong
0c00b3b7cc borders on quickslot images 2023-07-31 21:49:11 +09:00
minjaesong
1669f7fdd0 actual maths solution for the smoothLinear 2023-07-30 22:52:00 +09:00
minjaesong
f4bfe84009 better smooth-linear function 2023-07-30 18:35:36 +09:00
minjaesong
91cf08e93a 64 pixels for gradmap instead of 128 2023-07-30 03:36:31 +09:00
minjaesong
33a8112454 skybox: taller grad window, smooth grad clamping 2023-07-30 03:29:14 +09:00
minjaesong
439cde09fc this is the best curve 🫠 2023-07-26 15:10:15 +09:00
minjaesong
2a62435712 wtf was that 2023-07-26 00:58:17 +09:00
minjaesong
5495552db5 yet another sky model changes 2023-07-26 00:09:47 +09:00
minjaesong
e04d0284bb another experiments with the hosek model 2023-07-25 22:11:10 +09:00
minjaesong
ad601ffd7e oops forgot about the alpha channel 2023-07-25 16:57:13 +09:00
minjaesong
987ec1fd98 more sky model changes 2023-07-25 16:53:02 +09:00
minjaesong
4fb30821f1 sky model update 2023-07-25 15:15:12 +09:00
minjaesong
a73c536941 skybox model changes on negative deg 2023-07-25 03:47:59 +09:00
minjaesong
4c1f16fe91 executable renamed from 'java' to 'Terrarum' 2023-07-24 00:56:01 +09:00
minjaesong
6df78b59a9 screenshot taking extracted to its own function 2023-07-22 14:19:09 +09:00
minjaesong
28c4d8f11b texture2D -> texture 2023-07-22 03:45:21 +09:00
minjaesong
cdfc86398c hq2x shader using modernised syntax 2023-07-22 03:41:09 +09:00
minjaesong
91d94d2dab partially working hq2x, may not work on macOS tho 2023-07-21 20:29:17 +09:00
minjaesong
0af2e57368 wtf is going on 2023-07-21 17:41:22 +09:00
minjaesong
fbce707cac option for screen filtering mode 2023-07-21 13:14:02 +09:00
minjaesong
9d7bd37394 automated menuwork for control panel 2023-07-15 20:21:29 +09:00
minjaesong
df8bcf79af titlescreen: weather change is reflected to the skybox AND daylight 2023-07-15 13:33:09 +09:00
minjaesong
e328457259 improved control panel making 2023-07-14 17:03:04 +09:00
minjaesong
9baec6c7a1 improved slider mouse op 2023-07-14 16:50:25 +09:00
minjaesong
d05364f43f horizontal slider 2023-07-14 14:34:28 +09:00
minjaesong
e7ed3d8eae spinners will now round to nearest valid number 2023-07-13 21:08:41 +09:00
minjaesong
da6da79186 fix: previous 'centering' attempt was 8 pixels off 2023-07-13 20:08:20 +09:00
minjaesong
0767521441 uiloadmanage: going back to list will reset the list scroll 2023-07-13 16:34:01 +09:00
minjaesong
30aca57cbc savegame renaming 2023-07-13 15:45:35 +09:00
minjaesong
e512c6c7ad fix: textinput contained by sliding panel would not get text input 2023-07-13 15:12:30 +09:00
minjaesong
6ebf79a8e3 savelist cell width now matches management buttons; buttons and thumnail now well positioned 2023-07-13 14:13:37 +09:00
minjaesong
e5d5feeb38 fix: crafting UI is not centred 2023-07-13 13:49:50 +09:00
minjaesong
8e9d2371c8 mem gauge size changed to match the radiobutton-bar 2023-07-13 00:21:12 +09:00
minjaesong
1f5d032ad8 teleporter: no new world if memory is full 2023-07-12 21:45:22 +09:00
minjaesong
7993ccd2e5 memory gauge on teleporter world search 2023-07-12 21:30:50 +09:00
minjaesong
c77f1ffd23 removing auto/manual save selection: is practically useless 2023-07-12 10:40:21 +09:00
minjaesong
4eb7a8a77e fix: if two savegame has identical lastmodifiedtime, file with lower number will be preferred 2023-07-12 10:00:47 +09:00
minjaesong
10f92a11a9 loadlist: version number of the savegame 2023-07-12 02:23:49 +09:00
minjaesong
c5659e2833 loadlost: preloading game screenshots 2023-07-11 21:11:19 +09:00
minjaesong
173f99f87d two getthumbnail funs merget into one 2023-07-11 19:52:56 +09:00
minjaesong
64e05a4f17 load list: thumbnail on management scr 2023-07-11 15:18:44 +09:00
minjaesong
c033260ec5 debugpanel: solar altitude and atmos turbidity 2023-07-11 12:01:08 +09:00
minjaesong
22191bd377 daylight model edited to match the skybox 2023-07-11 01:55:15 +09:00
minjaesong
79f19120f2 replacing min/max usage with kotlin's 2023-07-11 01:54:46 +09:00
minjaesong
d96b7d1b84 fix: creating new game works again 2023-07-11 00:34:32 +09:00
minjaesong
2b62b4f413 fix: model having wrong turbidity value 2023-07-10 23:14:56 +09:00
minjaesong
f0fa5830bd moving hosek datasets to assets dir 2023-07-10 21:38:50 +09:00
minjaesong
ec24dc9870 no day-night cycle on titlescreen demo 2023-07-10 20:44:35 +09:00
minjaesong
6bc3d0e6ad deploying new skybox model 2023-07-10 19:47:44 +09:00
minjaesong
64c610e77e model improvements 2023-07-10 04:00:49 +09:00
minjaesong
b25ea9654c model improvements 2023-07-10 03:16:10 +09:00
minjaesong
b6b98562a2 preliminary skybox model 1 2023-07-10 02:57:41 +09:00
minjaesong
c93b70f537 world portal: rename and delete now working 2023-07-09 19:17:13 +09:00
minjaesong
fb67b0ef5a fix: not having IME set would cause NPE 2023-07-09 02:27:26 +09:00
minjaesong
7c7b3de68d swapping save delete/cancel button so that accidental double click would not delete the save 2023-07-09 02:20:38 +09:00
minjaesong
71df31b93d working autosave chooser 2023-07-08 23:26:47 +09:00
minjaesong
9b24014191 keyboard control symbol for IME will follow the current IME selection 2023-07-08 22:24:16 +09:00
minjaesong
02308a7918 autosave marker on save list 2023-07-08 22:12:08 +09:00
minjaesong
03c6061a12 game loading is back but newgame is broken 2023-07-08 21:53:19 +09:00
minjaesong
325e67f999 damaged savegame is handled by the management scr 2023-07-08 18:49:56 +09:00
minjaesong
211f936bd3 save manage scr 2023-07-08 16:12:15 +09:00
minjaesong
1f6fa49d19 minor improvements 2023-07-08 14:20:53 +09:00
minjaesong
13810fc09b working loading spinner; closing menu while loading will gracefully kill the loading thread 2023-07-08 14:04:14 +09:00
minjaesong
f95bc36c98 and now fa and fis works the same? wtf? 2023-07-08 03:33:02 +09:00
minjaesong
d507d84950 the file io is cursed 2023-07-08 03:12:15 +09:00
minjaesong
b31da6ffec . 2023-07-07 15:44:42 +09:00
minjaesong
3593894c0f hopefully more lightweight init 2023-07-07 12:27:54 +09:00
minjaesong
c28b286553 changes in fade-slide transition container 2023-07-07 00:19:56 +09:00
minjaesong
c0a3da1b66 fix: inscript - s key had wrong glyph 2023-07-06 22:43:08 +09:00
minjaesong
02cf5fdce5 tamil99 2023-07-06 22:07:21 +09:00
minjaesong
1e6f51e16c oops now it's broken but I still had to commit lol 2023-07-05 21:35:41 +09:00
minjaesong
c61c169048 more elegant UILoadSavegame wip 2023-07-05 20:16:53 +09:00
minjaesong
5c58c3006b inscript: ime update 2023-07-05 13:29:43 +09:00
minjaesong
742cabb81f is this the way? 2023-07-05 01:15:48 +09:00
minjaesong
07d5e571d6 windows build: smaller exe file 2023-07-05 01:11:06 +09:00
minjaesong
305242045f inscript keyboard layout for hindi 2023-07-05 00:44:13 +09:00
minjaesong
67388999f0 lang update 2023-07-04 21:50:20 +09:00
minjaesong
b0cc1180bb fix: app wont launch if its path contains whitespaces 2023-07-04 21:32:38 +09:00
minjaesong
453459e3b6 fix: some UIs won't fade in/out on open/close 2023-07-03 21:35:46 +09:00
minjaesong
bad72dd353 simple SAVING ui for teleportation 2023-07-03 20:26:30 +09:00
minjaesong
13185f0565 preliminary gui thing for teleportation 2023-07-03 17:46:57 +09:00
minjaesong
fcaf4c97f1 seemingly working world teleporter (no saving... ui tho) 2023-07-03 00:10:46 +09:00
minjaesong
9c396e7b8d new world via teleporter wip 2023-07-02 18:54:04 +09:00
minjaesong
afb7dff5d2 some comment elaboration 2023-07-02 01:25:34 +09:00
minjaesong
5d0514040c lang split into two files 2023-06-30 16:20:57 +09:00
minjaesong
7c1806946b worldportal: showing tooltip to tell why the button is disabled 2023-06-30 03:07:45 +09:00
minjaesong
e5e02681b8 weather only change on titlescreen 2023-06-30 00:53:46 +09:00
minjaesong
6db3baf691 clearing up interpolation functions 2023-06-30 00:14:28 +09:00
minjaesong
07cbcbe79b better title screen camera smoothing 2023-06-29 22:50:44 +09:00
minjaesong
57a9f7febc graph guidance colour scheme change; added easter egg where the camera might pan towards left 2023-06-29 02:56:33 +09:00
minjaesong
16cfaaea27 titlescreen follows the terrain better 2023-06-28 22:49:45 +09:00
minjaesong
72c742897e fix: load menu buttons are pushed when they should not listen to the touchdown event 2023-06-28 17:47:04 +09:00
minjaesong
23af64deb4 proper savegame backups sorting 2023-06-28 16:42:38 +09:00
minjaesong
bb017fa9b7 gui for load savegame 2023-06-28 16:10:15 +09:00
minjaesong
1745bb16db save deletion works but gui is still wip 2023-06-28 11:05:28 +09:00
minjaesong
370583d1af actual red button for DELETE 2023-06-28 00:55:36 +09:00
minjaesong
66b651c627 delete character file gui wip 2023-06-27 22:46:16 +09:00
minjaesong
c5874a7f3d finally working again: create new character
todo: make delete character work
2023-06-27 21:13:51 +09:00
minjaesong
057905c3b7 thumb generation for player saves 2023-06-27 01:21:05 +09:00
minjaesong
2b50562002 save juggling for autosaves 2023-06-26 23:10:52 +09:00
minjaesong
73a8198378 fix: loading a game would load the oldest backup save 2023-06-26 21:43:25 +09:00
minjaesong
1ef479124e actually working load manual/auto button 2023-06-26 20:18:00 +09:00
minjaesong
e5e8028b3f fix: clickOnceListener would not fired if screen is magnified 2023-06-26 19:07:25 +09:00
minjaesong
739b51af95 manual/auto selection for savegame loading 2023-06-26 18:18:59 +09:00
minjaesong
f9f49ab63c new savegame loader is not quite working yet 2023-06-26 01:09:47 +09:00
minjaesong
a497463349 some ui updates 2023-06-25 20:46:52 +09:00
minjaesong
253db56c4f the baloon now has opacity control 2023-06-25 13:58:37 +09:00
minjaesong
3d13941060 new savegame loading wip 2023-06-24 23:44:48 +09:00
minjaesong
592e489411 warning for apple rosetta 2023-06-24 02:06:22 +09:00
minjaesong
49b2011ea0 a little bit generalised titlescreen warning printing 2023-06-24 01:12:43 +09:00
minjaesong
61e6255b52 some warning for apple rosetta 2023-06-24 01:03:58 +09:00
minjaesong
2e956f89f5 fix for edge case where 64-bit x86 CPU not reporting itself as AMD64 2023-06-24 00:40:59 +09:00
minjaesong
e8ffd1f844 proper bootstrap codes 2023-06-23 18:44:05 +09:00
minjaesong
0882145f9c some autosave stuffs; bootloader to actually use bundled runtime 2023-06-23 17:29:49 +09:00
minjaesong
28e2179e44 don't xstartonfirstthread the bootstrapper 2023-06-23 12:11:19 +09:00
minjaesong
48eb1ffd8f printout child proc's out and err to console 2023-06-22 23:11:34 +09:00
minjaesong
6daccb2e62 locales 2023-06-22 22:27:56 +09:00
minjaesong
8c9d5a26fb more code trimming 2023-06-22 22:05:10 +09:00
minjaesong
ee3e5b14cd rm unused code snippet 2023-06-22 21:21:09 +09:00
minjaesong
5c39df9080 bootstrapper for the App so that the user can change the max heap in-game 2023-06-22 21:08:09 +09:00
minjaesong
5d77694316 windows build script now produces .exe 2023-06-21 23:49:42 +09:00
minjaesong
cf111d2507 world portal writing current world to actorvalue 'worldportaldict' if it's not there 2023-06-20 13:45:32 +09:00
minjaesong
724ace3f00 for now ui simply closes on teleport target selection 2023-06-20 13:22:14 +09:00
minjaesong
1457cbffb3 worldportal: submitting teleportrequest works, needs UI refinement 2023-06-20 00:15:53 +09:00
minjaesong
7a42066392 electric: rising/falling edge and level detection 2023-06-19 18:42:08 +09:00
minjaesong
528b975350 wiresim: signal sinking actors are only getting updated when the sim calls for 2023-06-19 16:34:39 +09:00
minjaesong
9e9064dd55 world portal: world search is now new world 2023-06-19 00:50:55 +09:00
minjaesong
138c6d22d2 some font stuffs for ui 2023-06-18 21:40:06 +09:00
minjaesong
a33f0e7ab4 world search ui integrated to world portal ui 2023-06-18 21:29:18 +09:00
minjaesong
93c427473d inventory backdrop is now image 2023-06-18 16:02:25 +09:00
minjaesong
6b8798a19e single screen ui for world portal 2023-06-18 01:28:51 +09:00
minjaesong
376595d7cd fix: scroll controller for portal listing is 2 px shorter that it should 2023-06-18 00:40:55 +09:00
minjaesong
4cc52b5585 fix: storage chest ui would be shifted to left and any mouse button would trigger the action 2023-06-17 23:19:09 +09:00
minjaesong
0ff71f39fe list scroll for portallisting 2023-06-17 17:10:13 +09:00
minjaesong
13f487a562 inventory navbar to its own uiitem 2023-06-17 16:46:15 +09:00
minjaesong
0599ce91b1 reflection function update 2023-06-12 15:08:42 +09:00
minjaesong
3d5fd984d7 another text pos change 2023-06-06 18:23:28 +09:00
minjaesong
8d0d84fbf8 font update/ime fix 2023-06-06 18:16:34 +09:00
minjaesong
eb2c716691 code for new itemsheet format 2023-06-06 14:37:54 +09:00
minjaesong
ac53f821e2 new format for item sprites; code upcoming ;) 2023-06-05 23:38:47 +09:00
minjaesong
cd6df71347 world portal listing: back tray for texts 2023-06-04 21:21:48 +09:00
minjaesong
ac553ed156 serialiser filters Companion objs 2023-06-01 17:50:39 +09:00
minjaesong
8c5c986cbf wider inventory cells 2023-05-31 21:07:57 +09:00
minjaesong
a0f597865e using Delete instead of Delete World 2023-05-30 01:07:07 +09:00
minjaesong
bafd0d9f7c ui theme updates 2023-05-30 00:51:32 +09:00
minjaesong
e259fc2f3b world size classification is now Tiny-Small-Big-Huge 2023-05-29 20:43:17 +09:00
minjaesong
ebbb121b8c fix: fixture pickup avail check is now done properly 2023-05-29 20:10:39 +09:00
minjaesong
331e89b4df world portal listing gui 2023-05-29 17:51:15 +09:00
minjaesong
98a6c9ae70 world portal gui wip 2023-05-29 02:41:59 +09:00
minjaesong
1646871ddf removing 'small' world size for new worlds: gamedesign choice 2023-05-28 21:31:14 +09:00
minjaesong
76bfc0fde4 world portal gui wip 2023-05-28 20:55:47 +09:00
minjaesong
ef6f39632d world portal wip 2023-05-28 18:41:21 +09:00
minjaesong
a3ecd4a4f4 some adjustments for the quickslot and pie 2023-05-28 01:47:17 +09:00
minjaesong
065f80224f fix: light/shadebox would get tilewise size of 2 when their hitbox size is set to 16 2023-05-28 00:31:29 +09:00
minjaesong
34fb046968 minor changes to the graphics control panel 2023-05-27 23:31:21 +09:00
minjaesong
43da6cc5d8 adding Char to QuickDirtyLint 2023-05-23 20:50:19 +09:00
minjaesong
fccc2162f6 quick and dirty but working linter 2023-05-23 00:09:11 +09:00
minjaesong
c554df9b98 trying the android linter for code inspection 2023-05-22 21:33:39 +09:00
minjaesong
8446cb2ecf fix: door won't consider the distance of the actor 2023-05-22 11:56:57 +09:00
minjaesong
07b44a92c5 reload() for dynamicitems 2023-05-22 11:46:06 +09:00
minjaesong
f12bf553ff door retains its apparance after load; autodoor is permissible for all IngamePlayers 2023-05-22 01:25:14 +09:00
minjaesong
3ba7ddd30e new toggler design 2023-05-21 20:46:54 +09:00
minjaesong
eee551058f graphics control panel reworked 2023-05-21 19:59:16 +09:00
minjaesong
974ad2ec50 loading process will try to unstuck the player if the player appears to stuck in the terrain 2023-05-21 16:57:28 +09:00
minjaesong
5d78df9e99 savegame listing - if multiple valid savegames with same UUID is there, only the most recent one is retained 2023-05-21 11:31:32 +09:00
minjaesong
6268b99c1c material and 5 temporary vectors no longer go into the savegame 2023-05-21 11:20:45 +09:00
minjaesong
b0d83325a7 lib cleanup 2023-05-19 14:53:29 +09:00
minjaesong
16ae3225e6 graalvm-js update 2023-05-19 14:19:39 +09:00
minjaesong
a587c86826 Terragen param adjustments 2023-05-17 21:00:02 +09:00
minjaesong
68b5d15944 disallowing nicknames (may contain non-ascii) on filename: somehow incompatible with BTRFS and Java 17? 2023-05-17 19:52:51 +09:00
minjaesong
4ba1173d8a fix: bad key assignments on Colemak keyboards 2023-05-17 13:43:20 +09:00
minjaesong
7e10039d29 no autocorrect on biomegen; code structure improvements 2023-05-17 09:52:28 +09:00
minjaesong
9e44ca93ab build_app_all.sh 2023-05-16 22:56:38 +09:00
minjaesong
8cb11d5c82 doors for test 2023-05-16 22:52:46 +09:00
minjaesong
ed7ca5c1a8 build script for linux-arm (untested) 2023-05-16 22:23:33 +09:00
minjaesong
aad258c054 more prominent torch flickering 2023-05-16 22:22:40 +09:00
minjaesong
79e7ef4da0 .icns and .jar to git-lfs 2023-05-16 13:48:27 +09:00
minjaesong
c74cfa6eb9 fix: lightbox would not load from save due to API change? idk but now savegame and avatar is incompatible 2023-05-16 01:05:31 +09:00
minjaesong
28c45b5756 fix: lowland and mountain clamping on Terragen, which was an issue persisting like 5 yrs 2023-05-16 00:43:51 +09:00
minjaesong
3911f86446 keyboard control panel renaming IME to Toggle IME 2023-05-15 19:42:29 +09:00
minjaesong
dfa1c7d73c more text on the config gui 2023-05-15 19:18:36 +09:00
minjaesong
1b0f233fcb mac app building with icons 2023-05-15 17:59:02 +09:00
minjaesong
ac3975e52f whyyyy 2023-05-15 16:18:59 +09:00
minjaesong
fb60813c14 mac build script to zip the .app 2023-05-15 16:08:28 +09:00
minjaesong
f2bd6a161e epsilon redef 2023-05-04 19:11:51 +09:00
minjaesong
c6a2a4199e kotlin update 1.8.20 2023-05-03 21:40:03 +09:00
minjaesong
bae212e51f build script update 2023-04-15 11:48:42 +09:00
minjaesong
d69d8dabde build inst update 2023-04-15 00:55:03 +09:00
minjaesong
928029e6e4 BlockStats is upgraded to TileSurvey 2023-04-12 19:53:12 +09:00
minjaesong
acd215c7c6 resolution input will have red text if the text format is invalid 2023-04-09 15:27:59 +09:00
minjaesong
2bb0a0f91c FPS config on options panel 2023-04-09 15:16:59 +09:00
minjaesong
6302f0402f a tily updates to the savegame format handling -- read the SAVE_FORMAT.md 2023-04-09 12:43:00 +09:00
minjaesong
11a319788a fixed a bug where text input via inputstrober would skip key presses 2023-04-08 02:31:27 +09:00
minjaesong
bf1c906a88 Reflection util 2023-03-25 13:04:53 +09:00
minjaesong
2474583a86 using gl32 shaders for other runnables 2023-02-28 22:59:32 +09:00
minjaesong
e13cfd37b0 build inst update 2023-02-28 20:12:45 +09:00
minjaesong
a3c871bb5c reverting old chargen test code 2023-02-28 17:56:44 +09:00
minjaesong
cba24456e9 changed shaders enough that the game now runs on Apple M2 2023-02-28 17:47:09 +09:00
minjaesong
2c86c6a461 more shader shenanigans 2023-02-28 17:32:52 +09:00
minjaesong
315b984d3b shader updates 2023-02-28 17:18:22 +09:00
minjaesong
8d7a62f796 more shader things that needs multiplatform investigation 2023-02-28 16:57:33 +09:00
minjaesong
f0b1d7f1bd some old changes I forgot to commit 2023-02-28 04:37:32 +09:00
minjaesong
6f4d9180dc apple m chips support wip 2023-02-28 04:36:11 +09:00
minjaesong
66356fc0c9 Revert "trying bytebuf and FloatVector"
This reverts commit 2941a0943f.
Benchmark showed no discernible differences.
2023-01-18 20:32:22 +09:00
minjaesong
2941a0943f trying bytebuf and FloatVector 2023-01-18 20:27:06 +09:00
minjaesong
eefaa9ec7c less CPU demanding InputStrobing 2023-01-16 04:24:54 +09:00
minjaesong
b496d606d3 removing fbo on UIItemTextSelector: it's useless 2023-01-16 03:36:17 +09:00
minjaesong
3393ba6466 check if pointer-checker is still there on non dev build 2023-01-07 17:10:17 +09:00
minjaesong
02bdb2a4fc default ui open/close transition is now quick-fade 2023-01-06 18:57:18 +09:00
minjaesong
53dee515fe unsafeptr: specialised exceptions 2023-01-03 03:23:54 +09:00
minjaesong
8bbf511b0a added missing audiodevice.dispose 2022-12-31 20:12:27 +09:00
minjaesong
267b524a66 GDX 1.11 update 2022-12-29 16:16:07 +09:00
minjaesong
856bd93329 fix: held items now glow (or not glow) under UV as they should 2022-12-27 04:19:13 +09:00
minjaesong
801acd2f24 vals instead of funs 2022-12-26 02:35:03 +09:00
minjaesong
b5ed33e2e9 game-maker selectable game update governor 2022-12-25 17:23:46 +09:00
minjaesong
71fd92ad17 Virtual Disk doc fix typos and minor rewrites 2022-12-21 04:12:37 +09:00
minjaesong
c48a4834f8 64 bit version number 2022-12-20 03:50:07 +09:00
minjaesong
b14e3085d6 how do atomicsomething work 2022-12-17 20:15:41 +09:00
minjaesong
39318b1508 tevd: bytearray64 update 2022-12-17 05:45:52 +09:00
minjaesong
60c0dd4c06 tevd: bytearray64 update 2022-12-17 05:31:37 +09:00
minjaesong
fab1b168aa typo fix 2022-12-14 15:18:19 +09:00
minjaesong
2af89ac831 intellij code convention update 2022-12-14 03:20:59 +09:00
minjaesong
cd4157d40a suggestion of alt colour set 2022-12-12 17:15:14 +09:00
minjaesong
cc7efd0e33 renaming Toolkit.Theme colour variables 2022-12-12 16:31:28 +09:00
CuriousTorvald
9c84e8f597 pathText will have unified dir separator depending on the OS 2022-12-09 20:42:11 +09:00
minjaesong
b2479028af adding 'kind flag' to the savegame format so the file can be determined if it contains player or world data 2022-12-04 16:09:07 +09:00
minjaesong
400cdd5b3c fixed a bug when loading a packaged player, loading a spriteglow would read normal sprite's data instead 2022-12-04 03:38:17 +09:00
minjaesong
1e01d3027e delta-t benchmarking will update itself every 64th frame, reducing the performance impact 2022-12-04 03:37:55 +09:00
minjaesong
a5f1f6ffaf codes for OKLab colour space 2022-12-02 14:18:43 +09:00
minjaesong
474279aefe more descriptive name for the blend-normal function because why there are two fucking standards for an alpha channel 2022-10-31 01:52:40 +09:00
minjaesong
ccef7c32a0 fixed a "bug" that assumed the framerates are normally distributed 2022-10-15 13:12:14 +09:00
minjaesong
93af194c8a rudimentary framerate benchmarking (turning it on will make the game run significantly slower) 2022-10-15 01:09:51 +09:00
minjaesong
8533f92274 more optimisation 2022-10-06 21:42:46 +09:00
minjaesong
93ac1011e9 optimisation attempt 2022-10-06 21:07:16 +09:00
minjaesong
a6685df5d1 experimental new lighting can be toggled with config "fx_newlight" 2022-10-05 23:26:46 +09:00
minjaesong
50d1aabaf3 new lighting is regrettably implemented on the master branch, but I don't think this looks any better than the old 2022-10-05 01:07:07 +09:00
minjaesong
aff64f6a8e new lighting wip 2022-10-04 22:01:28 +09:00
minjaesong
9091e6af00 update 2022-10-04 15:45:29 +09:00
minjaesong
741187c6d5 another lighting idea wip 2022-10-04 14:33:09 +09:00
minjaesong
40972bf7d1 chat overlay size text to actually follow the apparant size when the screen zoom is used 2022-10-01 14:23:33 +09:00
minjaesong
e46c05a597 Bulgarian IME now uses Bulgarian glyph variants for the keyboard layout preview 2022-10-01 02:08:48 +09:00
minjaesong
0904ff1cd0 quickslot design change 2022-10-01 01:51:54 +09:00
minjaesong
37cf747cab font update 2022-09-30 23:02:48 +09:00
minjaesong
fbd674aade item count and durability meter on the quickslot 2022-09-30 21:14:34 +09:00
minjaesong
f8c13c7bc6 q&d fix for spinner number rounds down to unintended value 2022-09-28 22:43:44 +09:00
minjaesong
105f524c4a update newrunes.tga 2022-09-19 01:34:03 +09:00
minjaesong
64189318cb update keyboard layout 2022-09-19 00:02:54 +09:00
minjaesong
17f85aa155 more accurate floating point comparison with epsilon 2022-09-14 10:54:26 +09:00
minjaesong
f696672d0f grass tile update 2022-09-13 13:34:54 +09:00
minjaesong
f8d93b2de2 closed door now actually blocks lights 2022-09-11 19:42:12 +09:00
minjaesong
bec47e81e2 now dropped items can produce light (e.g. dropped torch) 2022-09-11 17:10:01 +09:00
minjaesong
430ad4e703 fixture ghost will be hidden if the mouse position out of reach for the player 2022-09-10 17:11:55 +09:00
minjaesong
3eb98f8c28 minor font update 2022-09-04 21:58:06 +09:00
minjaesong
730b17752a updated README.md 2022-09-03 23:43:20 +09:00
minjaesong
7905de5481 serialisation of the world is split into two packages: complex one is moved under the modulebasegame package 2022-09-03 23:05:49 +09:00
minjaesong
d6144d52d2 basegame: added an Interface that marks the actor as 'not to be serialised when saving the world' 2022-09-02 23:26:59 +09:00
minjaesong
760188ebe9 savegame cracker: fixing a mistake that space chars would not tokenise the command input 2022-08-31 12:54:39 +09:00
minjaesong
6429d53be6 using quotation marks to surround arg with space chars 2022-08-31 11:59:17 +09:00
minjaesong
e4caf29791 adding loadorder to savegame 2022-08-31 02:40:46 +09:00
minjaesong
0310c71c74 fixed a bug where IME candidate window is rendered too tall for its contents; added QWERTZ layout 2022-08-30 15:02:01 +09:00
minjaesong
c8f62c31f4 font update 2022-08-30 14:48:28 +09:00
minjaesong
b043f0df95 door manual operation 2022-08-30 14:43:14 +09:00
minjaesong
2e0f55567f halved the number of dither pattern textures and added even more variations using the swizzling 2022-08-30 01:53:16 +09:00
minjaesong
bf962376d4 added a typewriter (no gui) 2022-08-26 21:52:31 +09:00
minjaesong
d6ce5c791e control for using fixture changed to right click 2022-08-26 18:26:13 +09:00
minjaesong
6bea80090d revived the worldSecondaryClick function 2022-08-26 13:36:41 +09:00
minjaesong
9f0f7fd1ce another music composer ui ideas 2022-08-25 17:57:17 +09:00
minjaesong
6a421eaa87 fixed a bug where door would not operate as it should when the door is placed at the 'seam' of the ROUNDWORLD 2022-08-10 20:01:50 +09:00
minjaesong
f4d8d72715 magnified screen will display everything correctly scaled (but some buttons wont work for some reason) 2022-08-10 00:04:26 +09:00
minjaesong
6e0f9a5924 uiitemtextlineinput: text cursor follows drawn text when text is centre-aligned 2022-08-08 23:05:30 +09:00
minjaesong
2a78646a02 two large caps on cpu were not shaded :/ 2022-08-08 00:26:42 +09:00
minjaesong
8cf3111a36 assets for build-your-own-computer minigame 2022-08-08 00:08:15 +09:00
minjaesong
93692443b1 text centering on UIItemTextLineInput 2022-08-04 13:52:07 +09:00
minjaesong
b77aea760b slightly better resolution input 2022-08-04 01:20:27 +09:00
minjaesong
d820f78982 font update 2022-08-03 00:55:04 +09:00
minjaesong
75659dee6e implemented textCommitListener for UIItemTextLineInput 2022-08-03 00:54:52 +09:00
minjaesong
026a90c0aa fixed a bug where uiitemspinner would accumulate floating point precision errors over use 2022-08-02 03:41:24 +09:00
minjaesong
bb3511b1db blocksdrawer now works with screen zoomed 2022-08-02 02:56:09 +09:00
minjaesong
8b2cabcbdc removing redundant maths ops on hitbox intersect detection with ROUNDWORLD 2022-07-28 23:40:55 +09:00
minjaesong
d7d3e430ef fixed a bug where solid actorblock would cause wrong tile connection and ambient occlusion 2022-07-28 23:21:24 +09:00
minjaesong
48443a9c11 class for door variants 2022-07-28 20:29:58 +09:00
minjaesong
99a60716b8 overridable door base so that door variants can be created 2022-07-28 20:21:06 +09:00
minjaesong
56fbfb578f door automatic opening/closing now works 2022-07-28 15:48:01 +09:00
minjaesong
c903d48073 fixed a bug where non-solid blocks would still placed indefinitely 2022-07-22 17:19:43 +09:00
minjaesong
6495e741e6 tile's platform-ness is now determined by their tag 2022-07-20 18:21:16 +09:00
minjaesong
0f4508986d fixed a bug where ActorWithBody.mouseUp is incorrectly implemented 2022-07-20 17:29:10 +09:00
minjaesong
de7ef60396 block marker to not appear on the actors-under-cursor list 2022-07-20 00:05:37 +09:00
minjaesong
360260cf03 tapestry now spawns thanks to all the code that made door to spawn correctly 2022-07-19 23:43:18 +09:00
minjaesong
8b8fc0e93c actorblock only renders when F3 is on 2022-07-19 22:14:40 +09:00
minjaesong
78d249cb6e door and its ghost now spawns at the right position in the world 2022-07-19 21:46:59 +09:00
minjaesong
06ef46d369 some changes regarding actorblocks 2022-07-19 18:32:21 +09:00
minjaesong
5fbbf34c10 fixed a bug where the player would immediately pick back up the fixture they've just placed one frame ago 2022-07-19 00:25:13 +09:00
minjaesong
23c2d86c27 fixed a bug where blocks are still consumend even if there is a block already under the cursor 2022-07-14 17:07:59 +09:00
minjaesong
69c5ceb61f wire connecting will take ROUNDWORLD into account 2022-07-13 23:19:47 +09:00
minjaesong
c5360cdcb8 working wire cutter 2022-07-13 21:28:59 +09:00
minjaesong
2a7e2b7ce4 centering of labels for crafting ui 2022-07-13 17:40:07 +09:00
minjaesong
d86fd5d5fe chest ui: chest names are centered around the cells 2022-07-13 01:08:38 +09:00
minjaesong
b583cb850f wire is now placed as intended 2022-07-11 20:01:19 +09:00
minjaesong
ee39128378 renderer is updated but wire pieces have some bugs on laying wire to the world 2022-07-08 22:02:42 +09:00
minjaesong
adc151b169 wire connectivity wip (need to take a look at the renderer) 2022-07-08 00:27:00 +09:00
minjaesong
db0be9e088 wire connectivity wip 2022-07-07 01:06:43 +09:00
minjaesong
84158319d1 'recipe for the recipe' selected by the game will also update the UI accordingly so that players would know the other recipe has been selected 2022-07-05 17:25:49 +09:00
minjaesong
f2e690b936 modules can now have their own config files 2022-07-03 18:17:50 +09:00
minjaesong
565323ef07 clicking on craftable ingredient will bring up its crafting recipe 2022-07-03 02:37:25 +09:00
minjaesong
523dd458ce crafting ui nearly complete 2022-07-02 23:28:33 +09:00
minjaesong
4eb3ad07f3 crafting ui item cell highlighting works as intended 2022-07-02 18:06:52 +09:00
minjaesong
60497e4201 fixed a bug where selected recipe does not highlight 2022-07-02 15:57:58 +09:00
minjaesong
5cd5e9a6bf altering recipe by player works but button highlighting is not 2022-07-01 17:45:00 +09:00
minjaesong
8363b5b4ea control help for computer ui 2022-07-01 02:27:06 +09:00
minjaesong
4e98a8c00e ingredients selected for crafting will be highlighted on the player inventory area 2022-06-30 22:05:05 +09:00
minjaesong
6a6c042e11 control help for crafting menu 2022-06-29 20:01:11 +09:00
minjaesong
8ffe949778 crafting ui now resets after a crafting 2022-06-29 17:54:41 +09:00
minjaesong
263298a18d seemingly working crafting window 2022-06-29 17:44:38 +09:00
minjaesong
afc4435f25 idle fps configurable via config file 2022-06-29 16:16:54 +09:00
minjaesong
068721376f q&d fix for spinner initialise to blank label on crafting ui 2022-06-29 02:53:17 +09:00
minjaesong
9edfc90ad8 a cell for items to craft will highlight when selected 2022-06-29 00:02:18 +09:00
minjaesong
b34502ebd3 crafting ui working (visuals only) 2022-06-28 22:51:09 +09:00
minjaesong
8ee2a2f56d more crafting ui wip 2022-06-28 00:57:40 +09:00
minjaesong
d56fb81bcf more crafting ui wip but i'm going to need 1 new beeeg uiitem 2022-06-27 22:09:38 +09:00
minjaesong
6e4677352d errormsgs 2022-06-26 20:04:52 +09:00
minjaesong
bb2641a523 slightly more detailed errormsg 2022-06-26 11:14:35 +09:00
minjaesong
29f6c6dfdf crash report in HTML 2022-06-26 03:38:07 +09:00
minjaesong
c1e190cd0d crash handler to display mod errors if any 2022-06-26 03:00:17 +09:00
minjaesong
8c07b03213 crafting recipe is at least successfully read and parsed by the modloader 2022-06-25 22:40:23 +09:00
minjaesong
4569546bdd crafting recipe loader wip 2022-06-25 03:28:02 +09:00
minjaesong
828a485395 screen magnifying for hidpi WIP 2022-06-13 13:19:10 +09:00
minjaesong
27509a7291 new furbud sprite for yet another testing 2022-06-05 15:22:04 +09:00
minjaesong
fc59a1d0b2 added Gamerules to the GameWorld 2022-06-03 00:54:50 +09:00
minjaesong
a57cb99619 simplified crafting recipe definition 2022-05-15 15:18:03 +09:00
minjaesong
5781f5cd00 better dithering on toggler texture 2022-05-02 23:10:51 +09:00
minjaesong
7ff6dfe1fe Revert "Light Calculation using JDK Incubator Vector": Vectorising
yields poorer performance

This reverts commit b47549d846.
2022-04-21 15:34:24 +09:00
minjaesong
b47549d846 Light Calculation using JDK Incubator Vector 2022-04-21 15:29:15 +09:00
minjaesong
fd72b3d3ba this is a super jank solution but it worked (shrug) 2022-04-20 20:15:26 +09:00
minjaesong
b3a27bb428 tried to tackle the alpha blending issue but it seems the problem is on somewhere far far away 2022-04-20 17:53:47 +09:00
minjaesong
cfcdb9c998 adding a tail to the sprite 2022-04-20 10:18:54 +09:00
minjaesong
d350ec2866 another (n)pc template 2022-04-14 23:38:29 +09:00
minjaesong
50012444b5 repurposed a 'minimal res' indicator to represent 'ui area' as it's no longer necessary to care about the minimal window size allowed 2022-04-14 16:06:07 +09:00
minjaesong
b92b53352b more 'correct' dithering equation 2022-04-12 11:16:58 +09:00
minjaesong
9b2d85c640 colour grading proof-of-concept on postprocessing 2022-04-08 16:47:54 +09:00
minjaesong
6238e92f65 ycocg-based colour grading test wip 2022-04-07 17:48:56 +09:00
minjaesong
97633eba46 unsafeptr is now byte-aligned 2022-04-06 20:54:58 +09:00
minjaesong
d958683365 still have no idea how to make this work 2022-04-05 17:46:03 +09:00
minjaesong
59921ce2f8 fixed a bug where greek ime would errenously erase a character when composing diacritics 2022-04-05 10:30:22 +09:00
minjaesong
0cef2431be another minor touches 2022-04-02 11:14:46 +09:00
minjaesong
43bbecf791 tilewise mouse coord on debug window 2022-04-01 22:22:34 +09:00
minjaesong
620ebf4aa4 virtual down down working slightly better 2022-03-31 15:58:59 +09:00
minjaesong
faa33d9a81 more debugwindow stuffs 2022-03-31 10:24:47 +09:00
minjaesong
d387b9ca37 more frivulous debug window frisbees 2022-03-30 17:05:46 +09:00
minjaesong
147c57557d debug window: toggle visibility of timers using U key 2022-03-30 14:21:16 +09:00
minjaesong
a0d13a6060 fixing a minor bug on getLight coord 2022-03-30 14:08:43 +09:00
minjaesong
85d333a560 fixing various oversights in debug window 2022-03-30 10:04:43 +09:00
minjaesong
fc7cbe0575 background for debug info 2022-03-29 22:03:41 +09:00
minjaesong
d85661f668 more debug elements 2022-03-29 20:52:26 +09:00
minjaesong
a602c9d18b using relative pos for debug info elements 2022-03-29 18:42:18 +09:00
minjaesong
86318511cb new debug window wip 2022-03-29 17:57:35 +09:00
minjaesong
bac8bd7f90 tfw a jank idea seemingly fixes the long-winded platform bug 2022-03-29 16:11:57 +09:00
minjaesong
8c8e41871a portrait on equippedview 2022-03-25 16:22:35 +09:00
minjaesong
327e000a54 shader cleanup; a config key for higher bits per pixel on graphics 2022-03-25 15:50:03 +09:00
minjaesong
af542e43a9 portrait now available again on player load; still not on the equippedview 2022-03-25 15:06:14 +09:00
minjaesong
4b6a878601 assembledsprite now animates 2022-03-24 22:44:55 +09:00
minjaesong
53ee28eb85 now draws held item again 2022-03-24 16:19:51 +09:00
minjaesong
49c47dc42e do not backup savegame on load 2022-03-24 14:35:41 +09:00
minjaesong
de71f8bd17 AssembledSpriteAnimation now renders correctly 2022-03-24 14:24:36 +09:00
minjaesong
765ece0635 discarding the idea of baking assembledsprite onto a spritesheet; revert to the commit right before this to completely scrap the efforts 2022-03-23 17:43:56 +09:00
minjaesong
ab73511042 lol i don't need quotation marks on csv 2022-03-23 10:22:14 +09:00
minjaesong
76435dbbdf fixed a stupid bug where spawning a same kind of fixture twice would crash the game because the spawner would not renew the fixture instance after a first spawn 2022-03-23 10:03:03 +09:00
minjaesong
de45ad1c25 another font fix 2022-03-22 17:08:47 +09:00
minjaesong
78869fc84f just some silly math functions 2022-03-22 12:26:30 +09:00
minjaesong
000f825849 a new key for blocks.csv; csveditor updates 2022-03-22 11:11:44 +09:00
minjaesong
8974d336c4 font update 2022-03-22 09:29:49 +09:00
minjaesong
194a79d134 fixed a bug where fullscreen inventory ui would errenously unpause the game 2022-03-20 00:58:37 +09:00
minjaesong
b8ccee3882 font update 2022-03-19 10:42:57 +09:00
minjaesong
c309948b40 font update; another idea for a fixture 2022-03-17 16:45:59 +09:00
minjaesong
52f0dfdeb9 various fixes 2022-03-16 12:50:43 +09:00
minjaesong
40a7c6876a fixed a bug where closing the inventory ui while tooltip is showing will make it persist when the ui is opened again 2022-03-12 17:52:48 +09:00
minjaesong
54f1f590c4 font update 2022-03-12 11:52:10 +09:00
minjaesong
d15dc20300 crafting system wip 2022-03-11 17:46:35 +09:00
minjaesong
b5aacd976c tags on ingame blocks 2022-03-11 15:05:06 +09:00
minjaesong
6c7cbc02ae some language key change 2022-03-11 14:26:33 +09:00
minjaesong
d235084f92 configurable crafting menu key 2022-03-11 12:27:25 +09:00
minjaesong
7f01ac2641 untracking ModuleComputers.jar 2022-03-11 11:36:20 +09:00
minjaesong
f9f9aa414a crafting ui is on the inventory menu now 2022-03-11 11:34:33 +09:00
minjaesong
d09befee6f crafting ui wip 2022-03-10 17:56:26 +09:00
minjaesong
d589b602ef why ghost item latch is always false when read?? fixed using atomic vars 2022-03-10 13:34:42 +09:00
minjaesong
ee80d460f2 inventory ui elements position adjustments 2022-03-10 11:55:38 +09:00
minjaesong
38878607eb changed a label for 'return to main menu' to 'quit' because some players are reported to think 'return to main menu' would close the ESC menu 2022-03-10 09:38:18 +09:00
minjaesong
8e5dccb86a fixed a bug where cursoring left on textlineinput won't scroll the input ui correctly 2022-03-08 23:16:37 +09:00
minjaesong
88c71b6c06 hash checking for module's jarfile 2022-03-08 11:59:28 +09:00
minjaesong
96e0444be1 more tree updates 2022-03-07 21:24:04 +09:00
minjaesong
a769594ce3 font update 2022-03-06 13:55:22 +09:00
minjaesong
cb364fdb06 more usage ideas for zinc 2022-03-04 23:44:18 +09:00
minjaesong
541be15eed wip? 2022-03-02 17:49:19 +09:00
minjaesong
0695dd843a imprved comments 2022-03-02 09:13:47 +09:00
minjaesong
6906d24e59 simpler way of making item sprite 2022-03-01 19:08:06 +09:00
minjaesong
7e90387afc fixed a bug with canvas texture blending 2022-02-28 23:53:42 +09:00
minjaesong
13003a63d3 moving platform wip 2022-02-28 17:54:07 +09:00
minjaesong
e8330af14a tapestry is decoded and itemised just fine but does not spawn 2022-02-28 15:34:48 +09:00
minjaesong
68d8bf13b7 tapestry sprite to draw frame 2022-02-28 11:39:29 +09:00
minjaesong
142fcab930 no module window backdrop colour now depends on the os it's running 2022-02-27 23:02:16 +09:00
minjaesong
fad23901d6 forgot to remove test prints 2022-02-27 19:24:01 +09:00
minjaesong
3443a5baab modularise everything 2022-02-27 18:52:59 +09:00
minjaesong
f4402771c8 ability to load console commands from mods 2022-02-27 02:24:59 +09:00
minjaesong
95476359fe fixed a bug where world thumbnail is not centered to the player 2022-02-25 15:35:17 +09:00
minjaesong
dc86de139c fixed a bug where actors lightbox won't follow the actor's scale 2022-02-25 14:36:36 +09:00
minjaesong
6d3a577e46 font update 2022-02-25 13:39:38 +09:00
minjaesong
b2aece0176 changed lightboxes so that (de)serialiser won't complain; world/actor json will will write game version it saved 2022-02-25 11:42:30 +09:00
minjaesong
428cdefb80 actors can now block light 2022-02-24 17:51:18 +09:00
minjaesong
2e3a9e6fa0 wider module info cells 2022-02-24 14:55:57 +09:00
minjaesong
8ee221b93d no module titlescreen: clickable load order path 2022-02-24 13:44:51 +09:00
minjaesong
900cef6435 F12 now takes screenshot in PNG format 2022-02-24 11:09:48 +09:00
minjaesong
b3940d96b8 support for external mods 2022-02-24 11:03:03 +09:00
minjaesong
598d0514ff a temporary solution for Windows which just uses the batch file 2022-02-23 22:56:54 +09:00
minjaesong
040b0b5aad proper application name for macOS plist 2022-02-23 21:19:39 +09:00
minjaesong
7c966b0da8 support for texture packs 2022-02-23 17:59:38 +09:00
minjaesong
841a77403b Application build scripts 2022-02-23 11:52:34 +09:00
minjaesong
cba25ef428 font update 2022-02-23 09:21:06 +09:00
minjaesong
596cd9b102 a console command to fill up inventory with every item 2022-02-22 17:22:54 +09:00
minjaesong
df6950c0b8 fixed a bug where a dynamic item would not get saved/loaded at all 2022-02-22 17:12:49 +09:00
minjaesong
1787ad7cdd terrain item image atlas to always have maximum possible sizes defined on the game config 2022-02-21 22:03:59 +09:00
minjaesong
c8dbb26922 savegame loading failure will display more helpful exception 2022-02-21 21:19:48 +09:00
minjaesong
6f4b53daad buncha missing illuminators 2022-02-21 17:53:02 +09:00
minjaesong
f5b6a3e22a colour picker wip 2022-02-21 16:29:35 +09:00
minjaesong
46b15c3d95 build suggestion to hide the jarfile into the subdir 2022-02-21 13:27:53 +09:00
minjaesong
9c9a888496 startup scripts to change working directory to where the script files are 2022-02-21 13:07:03 +09:00
minjaesong
9659ef3a5f faux global illumination impl 2022-02-21 11:01:27 +09:00
minjaesong
7bec4c29af gv 2022-02-20 13:02:25 +09:00
minjaesong
19de7c7fa3 ui suggestion upgate 2022-02-18 18:32:39 +09:00
minjaesong
545663254f tree update 2022-02-18 11:45:30 +09:00
minjaesong
541463ea8c font update 2022-02-18 09:05:46 +09:00
minjaesong
cdc82f9495 doc update 2022-02-17 23:04:25 +09:00
minjaesong
f581409d82 doc changes 2022-02-15 21:43:38 +09:00
minjaesong
a7183f0650 another tech tree but item-oriented 2022-02-15 17:52:17 +09:00
minjaesong
5148ef3821 font update 2022-02-14 13:44:10 +09:00
minjaesong
ba3615a8e1 shader version shenanigan 2022-02-11 17:59:21 +09:00
minjaesong
5c94e88d76 inventory item count is now Long; should not interfere with the existing savegame 2022-02-11 09:33:50 +09:00
minjaesong
97d3edf1b9 new instruction for Java 17 deployment 2022-02-10 10:27:40 +09:00
minjaesong
e69cb5845c fixed a bug where barehand digging 'box' would not align as intended 2022-02-09 17:42:25 +09:00
minjaesong
4612493566 adding extra headroom to the assembled sprite so that a large held item wouldn't get cropped 2022-02-07 11:38:26 +09:00
minjaesong
e64bd5d389 fixture ghost is working again 2022-02-07 11:13:31 +09:00
minjaesong
24d6634257 changed world's GENVER spec so that it will always save the game's version number 2022-02-06 19:50:56 +09:00
minjaesong
efe5c49463 serialisation of HRQNG is fixed so it would not make illegal reflective access on Java 17 2022-02-04 11:03:59 +09:00
minjaesong
5d587dcc12 working config panels on esc menu 2022-01-28 12:52:48 +09:00
minjaesong
fe5a4bcfb0 lanternmap will blend when multiple blocks occupy the same block 2022-01-28 11:31:34 +09:00
minjaesong
ff400d1e2f key config menu working on ingame 2022-01-28 10:49:02 +09:00
minjaesong
956c9d44e1 moved essential resources out of the assets directory and into the jar 2022-01-28 10:30:08 +09:00
minjaesong
e3b82ae5b6 console command loading from command list on the module directory 2022-01-28 09:50:05 +09:00
minjaesong
a301ec57ae abandoning the async idea: updating on the main thread is actually faster when it's called often enough -- maybe something to do with the optimisation on runtime? 2022-01-27 18:42:22 +09:00
minjaesong
c500a5ca39 asynchronous lightmap update wip 2022-01-27 17:11:09 +09:00
minjaesong
119b7fc022 particles must be disposed of before overwritten 2022-01-27 12:35:50 +09:00
minjaesong
82897e0d6c *this* should force even-numbered position on thumbnail generation 2022-01-27 09:57:18 +09:00
minjaesong
d1d3086879 using 'correct' gl version 2022-01-27 00:09:39 +09:00
minjaesong
71176dcc9e change control working on the esc menu 2022-01-26 23:28:44 +09:00
minjaesong
9b4dd019ca prints out system info on the game crash 2022-01-24 21:04:13 +09:00
minjaesong
ce276f05f3 hopefully fix the bug that occurs when you minimise the screen? 2022-01-24 19:59:23 +09:00
minjaesong
a213cba5ef fixed a bug where signal emitter wouldn't work after save reload 2022-01-24 13:01:59 +09:00
minjaesong
ee8da4df84 rudimentary deploy system 2022-01-24 01:33:24 +09:00
minjaesong
367271c5ea disabling 'immediate save fired' message 2022-01-23 20:48:41 +09:00
minjaesong
98aa2087bb fixed a bug where console window would register keypresses when it's first loaded but not opened 2022-01-23 20:36:44 +09:00
minjaesong
250529e842 SortedArrayList.cloneToList() is no longer susseptible to ConcurrentModificationException 2022-01-23 20:25:20 +09:00
minjaesong
162d211a2d russian ime diacritics fix 2022-01-22 14:47:06 +09:00
minjaesong
c56b1055d7 autosave is back 2022-01-22 14:43:31 +09:00
minjaesong
f13379ada8 fixed a bug where picking up a fixture placed on the world would drop one more fixture than it should do 2022-01-22 10:40:49 +09:00
minjaesong
0c70a7eebc fixme: picking up a fixture clones it 2022-01-21 22:13:34 +09:00
minjaesong
fa68a1c377 fixture will drop itself when mined 2022-01-21 16:35:37 +09:00
minjaesong
75afcaede3 fixture pickup and mining works except for the dropping of a mined fixture 2022-01-21 14:01:37 +09:00
minjaesong
48e68137d6 copyright update; added HSLuv 2022-01-17 12:32:53 +09:00
minjaesong
b87dc1f28b fixed a bug where the barehand action would do nothing 2022-01-14 15:44:37 +09:00
minjaesong
a7357c00a9 it was squared 2022-01-13 12:53:33 +09:00
minjaesong
f1d8850196 merging dropped items when they tightly overlap 2022-01-13 11:14:21 +09:00
minjaesong
1060d96364 IS_DEVELOPMENT_BUILD key can now be toggled with vm option '-ea' 2022-01-13 09:55:51 +09:00
minjaesong
53645925ba variable tool reach wip 2022-01-12 17:30:30 +09:00
minjaesong
bf31cbb556 pickaxes are faster in general 2022-01-12 17:20:18 +09:00
minjaesong
0a5b9c1f2f modification date now writes successfully 2022-01-12 16:38:43 +09:00
minjaesong
b0cf37250f savegames are finally sorted 2022-01-12 11:59:10 +09:00
minjaesong
9797094cae savegames array itself is correctly sorted but the UI is not and lastmodified time is also not written 2022-01-12 11:10:57 +09:00
minjaesong
03a06773c4 walk anim speed adjusted 2022-01-11 22:14:44 +09:00
minjaesong
dc595fdd51 reading text from the keyboard input panel will return the string in Unicode NFC 2022-01-11 17:30:52 +09:00
minjaesong
65d9ae7ee1 new walk anim delay WIP 2022-01-11 15:20:09 +09:00
minjaesong
202123486a lang composition 2022-01-11 11:04:11 +09:00
minjaesong
2b3fdbde1f item name translations 2022-01-10 22:37:28 +09:00
minjaesong
946f75183c briefy showing item name to the quickslot when the selection has changed 2022-01-10 16:19:56 +09:00
minjaesong
48f62e11bf drawing a held tile to the hand of the sprite 2022-01-08 21:52:21 +09:00
minjaesong
6697f2f5cd drawing held item to the sprite WIP 2022-01-06 17:24:24 +09:00
minjaesong
0d14f9e027 a point to insert the item image to the item sprite 2022-01-06 14:56:36 +09:00
minjaesong
b1856852e4 more fixme comments 2022-01-06 11:40:36 +09:00
minjaesong
4ab9ad6a21 inputstrober thread priority set to 10 2022-01-06 10:03:35 +09:00
minjaesong
0a4410d865 font update 2022-01-05 16:59:14 +09:00
minjaesong
203252cec4 air drag sim is tuned so it's 'playable' than being physically accurate 2022-01-05 16:58:57 +09:00
minjaesong
0479eb1eb6 turns out it was not a cause of the "oscillating platform" bug 2022-01-04 21:29:28 +09:00
minjaesong
2f518258a3 fixed a bug where WeatherMixer would not read weather json files 2022-01-04 17:41:55 +09:00
minjaesong
b9bb757a76 trying to fix phys engine platform tile bug 2022-01-03 22:57:54 +09:00
minjaesong
8502b51396 mod dependency version checking 2022-01-02 23:54:22 +09:00
minjaesong
caa9b84cb2 modmgr to actually check dependency WIP 2022-01-01 23:38:30 +09:00
minjaesong
bc6a1c4463 new year new copyright date 2022-01-01 22:05:54 +09:00
minjaesong
ebefe97b59 mod icon will grey out if it contains errors 2021-12-28 23:07:55 +09:00
minjaesong
c9b87492c2 fixed a bug where wires won't pop up as the camera moves 2021-12-28 15:28:45 +09:00
minjaesong
9810d0927c grapple and quickslot buttons on keeb control panel 2021-12-28 13:02:40 +09:00
minjaesong
c6bc628165 finally working floating head on the minimap 2021-12-22 16:00:21 +09:00
minjaesong
782581a61b aww wip 2021-12-22 11:57:55 +09:00
minjaesong
7a22f49850 only works when it's not zoomed and not being panned 2021-12-21 21:49:13 +09:00
minjaesong
6ce4879857 wtfwftwtfwt 2021-12-21 18:02:01 +09:00
minjaesong
7ec9c6d383 font update 2021-12-21 14:09:46 +09:00
minjaesong
2a433a0cbe get mugshot for assemblying sprites 2021-12-21 00:03:13 +09:00
minjaesong
099071bdd0 get player head texture wip 2021-12-20 22:56:16 +09:00
minjaesong
07345e3128 fixed a bug where hitbox of char/world selector is not changing when chat overlay is on 2021-12-18 15:23:32 +09:00
minjaesong
90197115d4 just for fun 2021-12-17 20:44:40 +09:00
minjaesong
9543757a15 font update 2021-12-17 20:23:16 +09:00
minjaesong
ad27e6c409 Fixed a bug where "Saving..." text would overlap with the progress ring 2021-12-17 17:04:09 +09:00
minjaesong
64cfa1529a fixed a bug where destroying the world while F3 is on would cause a NullPointerException 2021-12-16 23:23:11 +09:00
minjaesong
c39e372db3 icon for mouse drag 2021-12-16 16:58:11 +09:00
minjaesong
fc61bf1da5 minimap barely working 2021-12-16 16:40:53 +09:00
minjaesong
ff848c7c3a minimap is working but update is slow 2021-12-16 12:55:21 +09:00
minjaesong
b906c41be8 new minimap working and not working 2021-12-15 16:56:36 +09:00
minjaesong
0027b747b4 inventory minimap has fixed viewport size to achieve fair play against different screen size settings 2021-12-15 11:08:51 +09:00
minjaesong
b46f464abc removing unused classes 2021-12-15 00:01:30 +09:00
minjaesong
b0d5cd1266 fixture ghost image repositioning 2021-12-14 20:52:01 +09:00
minjaesong
f922c19fe3 font update 2021-12-14 17:17:53 +09:00
minjaesong
0c04938330 heck flippin 2021-12-13 23:26:03 +09:00
minjaesong
254bf814a9 Flippin' eck 2021-12-13 23:22:17 +09:00
minjaesong
83f78edc2a the world is being unflipped wip 2021-12-13 13:05:23 +09:00
minjaesong
1057f40fba adjusting load order of every item image 2021-12-13 02:52:25 +09:00
minjaesong
63a29df733 fixture ghost test 2021-12-13 00:57:55 +09:00
minjaesong
578208d112 arst 2021-12-12 20:40:03 +09:00
minjaesong
b7f7558192 lightmap blurring simplified 2021-12-12 20:39:12 +09:00
minjaesong
5fb3e0b6b4 font update 2021-12-12 19:34:16 +09:00
minjaesong
b0d648547b new module info ui 2021-12-12 16:25:42 +09:00
minjaesong
e5b4e76d39 font update; fallback titlescreen update 2021-12-12 14:26:39 +09:00
minjaesong
06a6d2774c screen blur without creating a texture 2021-12-12 13:09:59 +09:00
minjaesong
90a794cc7b k one more external link 2021-12-11 22:33:20 +09:00
minjaesong
f90a0fc4e2 i hate opengl, if you can't already tell 2021-12-11 22:31:58 +09:00
minjaesong
53e847d66c floatframebuffer for almost everything and the glblending craps out again 2021-12-11 22:14:24 +09:00
minjaesong
10819e2607 titlescreen moved to modules; using GLES 3.0 as default 2021-12-11 21:08:56 +09:00
minjaesong
56f5dc1686 fixed a bug with dangling pointer on loadscreen 2021-12-11 01:32:36 +09:00
minjaesong
df1b3dc680 using weaker and faster fullscreen blurring; this is a style choice 2021-12-10 23:22:13 +09:00
minjaesong
455f8ebf5f more sprite edit 2021-12-10 15:35:22 +09:00
minjaesong
b5f4a4ae9f kawase blur on toolkit 2021-12-10 12:43:54 +09:00
minjaesong
8ab852d18a will use 0.667f as a "kawase blur power constant" 2021-12-10 09:36:02 +09:00
minjaesong
5d18e37daa derp 2021-12-09 23:48:11 +09:00
minjaesong
57b610ce4a kawase blur is working i think 2021-12-09 23:39:51 +09:00
minjaesong
b8361a9514 text input: fixed a bug where pasting would advance the internal cursor but the actual text wouldn't go in 2021-12-09 19:08:20 +09:00
minjaesong
44d6d84bbd super simple new character window 2021-12-09 16:58:26 +09:00
minjaesong
3c4e169743 IME toggle button repositioned to the most visible place 2021-12-09 15:44:47 +09:00
minjaesong
f3033b2fc3 mod icons 2021-12-09 15:00:16 +09:00
minjaesong
4094f0d3ea more sprite updates 2021-12-09 14:42:04 +09:00
minjaesong
80219ed2b2 sprite update 2021-12-09 11:58:40 +09:00
minjaesong
5458e58a0e fixed a bug where zooming the world would read out-of-bound memory 2021-12-09 11:23:39 +09:00
minjaesong
93c67345cc font update 2021-12-05 17:48:58 +09:00
minjaesong
95449a3cb0 flippedy flibbeqy fliþ 2021-12-05 14:52:08 +09:00
minjaesong
e56ea0dc5c range check for fixtures with UI; fixture UI is centred now 2021-12-05 14:42:36 +09:00
minjaesong
6c62d1e2ae the f'ing computer now renders 2021-12-05 11:12:30 +09:00
minjaesong
bcae2b0ded console text input is always active 2021-12-04 21:55:31 +09:00
minjaesong
43ed388615 y u wont render :( 2021-12-04 17:50:31 +09:00
minjaesong
c0b2f4c8df shaders moved to subdir; console click on the actor to type its id in 2021-12-04 16:16:01 +09:00
minjaesong
63487a1386 computer stuff drawings separated from the basegame's 2021-12-04 13:10:33 +09:00
minjaesong
9c6b36c8e0 modulecomputers: alsmost working terrain rader 2021-12-03 22:56:53 +09:00
minjaesong
4a4290dc35 computer item 'almost' workign 2021-12-03 20:19:34 +09:00
minjaesong
f456ed3de3 apparently I was just doing it wrong :/ 2021-12-03 19:48:16 +09:00
minjaesong
1a250ee095 wtfman 2021-12-03 17:59:12 +09:00
minjaesong
ebc762e90a workign on the modloader in progress 2021-12-03 16:39:46 +09:00
minjaesong
e5a42551e5 font update 2021-11-30 14:51:47 +09:00
minjaesong
d6a3a86788 font upd2 2021-11-18 17:43:03 +09:00
minjaesong
259660955a minor font update 2021-11-18 17:34:35 +09:00
minjaesong
63d7009dcf click on palette item to select it 2021-11-18 11:39:25 +09:00
minjaesong
3f88e7965a turkish keyboards 2021-11-17 17:25:39 +09:00
minjaesong
b139533894 i blame microsoft for their f-ups (the venerable U+F8C7) 2021-11-17 16:35:33 +09:00
minjaesong
580275ff64 keylayout config keycaps to not respond to the mouseup 2021-11-17 12:41:36 +09:00
minjaesong
f3aa76ce58 french bépo 2021-11-17 12:31:33 +09:00
minjaesong
84af690886 thai font update 2021-11-16 22:30:17 +09:00
minjaesong
ae422e035c greek F 2021-11-16 17:55:43 +09:00
minjaesong
332b98857e thai kedmanee keyboard 2021-11-16 17:29:18 +09:00
minjaesong
36b012b11f font update 2021-11-16 17:05:45 +09:00
minjaesong
5e8e8a64b6 thai pattachote keyboard 2021-11-16 16:41:14 +09:00
minjaesong
6521f45296 minor fix 2021-11-16 15:11:34 +09:00
minjaesong
dd82c14c55 greek phonetic keyboard 2021-11-16 15:06:57 +09:00
minjaesong
c98ca08460 IME icon by language; fixed a bug where text input field would not reset IME when it has been deactivated 2021-11-16 14:03:24 +09:00
minjaesong
7e344998ee font update 2021-11-16 11:14:20 +09:00
minjaesong
bbb7a4d7be Minor improvements on automata for Korean 3set-like IMEs 2021-11-16 09:29:58 +09:00
minjaesong
9344faa878 bulgarian keyboard 2021-11-15 22:39:02 +09:00
minjaesong
7aba27ea51 apple russian keyboard 2021-11-15 00:27:46 +09:00
minjaesong
150504adbc russian keyboard is now multilingual cyrillic keyboard 2021-11-14 23:20:04 +09:00
minjaesong
a2935ff3ff russian phonetic keyboard and its supporting components 2021-11-14 15:04:00 +09:00
minjaesong
6c98005bc8 added 3set shin revised 03 2021-11-13 18:55:50 +09:00
minjaesong
ef5faa7ba5 added 3set 391 2021-11-13 18:53:11 +09:00
minjaesong
3c2d261f27 all currently existing korean imes are rewrote to rewrite 2021-11-13 16:33:14 +09:00
minjaesong
432c90776b why do i need window title for these panels 2021-11-13 16:09:32 +09:00
minjaesong
ab37c29c88 standard 2set is now rewriter ime 2021-11-13 14:45:34 +09:00
minjaesong
809e61f738 3set shin p2: fixed a bug where double initial consonants were not typeable 2021-11-13 14:31:23 +09:00
minjaesong
9f101a1226 korean 2-set ime reimplemented using the string rewriting system 2021-11-13 13:52:39 +09:00
minjaesong
36d72ffa6f rewriting rewrite wip 2021-11-12 23:31:11 +09:00
minjaesong
3c321b466e set selected ime to none if previously selected one is not found on the local copy 2021-11-12 23:11:26 +09:00
minjaesong
fa53bb75b4 locale string update 2021-11-12 22:29:08 +09:00
minjaesong
21f66b3e4f backspace behaviour mostly fixed? 2021-11-12 20:08:44 +09:00
minjaesong
314c2c5afa fixme: 조합 완료된 'ᄃᆞᆯ'을 지우면 종성만 지워짐 2021-11-12 17:54:40 +09:00
minjaesong
092d95a5a3 string rewriting IME wip 2021-11-12 14:42:18 +09:00
minjaesong
59b7126254 fixed a bug on 3set shin p2 ime where certain combinations were simply not possible 2021-11-12 14:42:02 +09:00
minjaesong
9ec4ea026d IME candidates separator to use \x1E instead of a comma 2021-11-12 10:11:02 +09:00
minjaesong
23e9dd3114 fixed somewhat bugged autoshifting behaviour for ko 3set shin p2 2021-11-11 22:29:28 +09:00
minjaesong
435677a543 font updating to indev version 2021-11-11 16:49:31 +09:00
minjaesong
043cca4f2e french azerty layout 2021-11-11 15:43:07 +09:00
minjaesong
5b65c2f11a more key layouts 2021-11-11 13:47:12 +09:00
minjaesong
8efe51a248 text input config panel with keymap preview 2021-11-11 12:09:23 +09:00
minjaesong
7797e1308d separate config panel for keyboard text input 2021-11-11 01:01:19 +09:00
minjaesong
73b6fd3e96 all US layout is changed into Intl. equivalents with AltGr support; left Ctrl+Alt can substitute AltGr; added Russian keyboard layout 2021-11-10 11:23:08 +09:00
minjaesong
950e6f1778 minor font update 2021-11-09 22:32:53 +09:00
minjaesong
9490fcb3bc apparently there was some syntax error on the keymap 2021-11-09 21:49:59 +09:00
minjaesong
60547a7d21 idea runconfig 2021-11-09 21:27:08 +09:00
minjaesong
dc0de876d5 altgr for string input 2021-11-09 20:58:30 +09:00
minjaesong
d5bf27aa93 more concurrent shit 2021-11-09 16:20:17 +09:00
minjaesong
3c43aeec9d js cannot be accessed concurrently 2021-11-09 14:38:47 +09:00
minjaesong
16272e76f6 ConcurrentModificationException is a significant thing... 2021-11-06 13:51:25 +09:00
minjaesong
7503876d1f Keyboard strobing moved to a new thread so that fast typing is possible even if the game's update method is running slowly 2021-11-06 11:30:42 +09:00
minjaesong
ddd7492922 han numeric zero on R 2021-11-03 20:06:25 +09:00
minjaesong
8e5c7867e4 Jeju Language support for 2 set keyboard 2021-11-03 15:42:07 +09:00
minjaesong
4c4e4b018a hangul 3set IME to implement typing of Jeju Language 2021-11-03 15:05:31 +09:00
minjaesong
b93a2444e7 some random idea 2021-11-02 22:48:33 +09:00
minjaesong
7b608aafc8 font update; copyright text removing copying for unused components 2021-10-29 17:21:27 +09:00
minjaesong
27ddb76df7 fixed a bug where storagechest would not show anything on the item slot; changed inventory UI so that it would sync with the Toolkit.Theme 2021-10-29 15:00:16 +09:00
minjaesong
8dd4248f67 repositioning RESET button 2021-10-28 19:03:50 +09:00
minjaesong
3bd7e740d4 working create-new-world 2021-10-28 17:32:09 +09:00
minjaesong
1dc7d46c39 dirty way to go back a step with multiple uis in coordination 2021-10-28 15:11:52 +09:00
minjaesong
5cb407f5ac locales: new term 'CONTEXT_CHARACTER' 2021-10-28 12:56:30 +09:00
minjaesong
9f70500a41 wtf 2021-10-28 11:05:12 +09:00
minjaesong
18e59ed46b more cangjie improvements 2021-10-28 10:32:31 +09:00
minjaesong
b15d03f882 cangjie: abbr for oft used words 2021-10-28 10:15:37 +09:00
minjaesong
0f1e01c8ab up to 3 candidates are displayed in single column 2021-10-28 10:13:25 +09:00
minjaesong
b4dcb559cd pushing Return on World Selection will bring you to the Character Selection (and the implementation is quite dirty I might say) 2021-10-27 23:39:32 +09:00
minjaesong
1c8261cc7e restricting host access 2021-10-27 19:37:23 +09:00
minjaesong
886bea5ccb IME toggle button as a keyboard control 2021-10-27 16:13:44 +09:00
minjaesong
4434bec48e jump icon: more visible torso on the stick figure 2021-10-27 15:50:01 +09:00
minjaesong
3ca96bce7f working cangjie IME implementation 2021-10-27 15:22:43 +09:00
minjaesong
69aaca702d sorting cj5-tc alphabetically 2021-10-27 12:49:29 +09:00
minjaesong
0dbcd0711b chinese IME almost done 2021-10-27 11:45:56 +09:00
minjaesong
b0b1d185ad barehand action will not remove fixtures (more pricisely, actorblocks) 2021-10-26 22:54:46 +09:00
minjaesong
701946950e some more translations 2021-10-26 21:13:15 +09:00
minjaesong
ee2019e7dd new world ui to where it should be 2021-10-26 19:20:48 +09:00
minjaesong
08518fff06 some more new world ui thingies/fixed a bug where drawing an inventory background would cause a segfault 2021-10-26 14:12:16 +09:00
minjaesong
d8aed8a34c new world ui wip 2021-10-26 00:03:19 +09:00
minjaesong
b78e6ebe01 autosavenotifier position adjustment 2021-10-25 15:57:11 +09:00
minjaesong
df56f6180e update counter on F3 2021-10-25 15:25:50 +09:00
minjaesong
64475455a8 wires are simulated on every other update 2021-10-25 10:58:18 +09:00
minjaesong
a79e673408 adding a spinner on the graphics control panel 2021-10-24 20:09:14 +09:00
minjaesong
f3c025898c fixed a bug where clicking on the selection display may advance the selection like pressing NEXT/+ twice 2021-10-24 19:38:30 +09:00
minjaesong
4336f0ff87 some more future idea 2021-10-24 17:12:59 +09:00
minjaesong
631e33c07c new keyboard layout 3-set shin p2 2021-10-24 11:58:52 +09:00
minjaesong
9678338079 multiple candidates display for IME 2021-10-24 10:38:16 +09:00
minjaesong
a1bad044fd textselector/spinner/quickslot(!) selection change using scroll wheel 2021-10-23 22:57:17 +09:00
minjaesong
3be5ac96f2 working spinner 2021-10-23 22:03:27 +09:00
minjaesong
233895d857 same thing for 2set 2021-10-23 16:59:59 +09:00
minjaesong
38462e4506 3set: delete by letter pieces when assemblying 2021-10-23 16:46:58 +09:00
minjaesong
129061d743 more endcomposing conditions 2021-10-23 16:05:13 +09:00
minjaesong
c987961e07 TextLineInput endcompose of IME 2021-10-23 15:50:28 +09:00
minjaesong
1141638fc3 seemingly working hangul 2-set 2021-10-23 15:15:39 +09:00
minjaesong
5ef8f3cea4 hangul IME normalising unterminated assembly 2021-10-23 10:36:01 +09:00
minjaesong
23acf47b00 renaiming keylayout files; new keylayout US Colemak-DH 2021-10-23 09:34:03 +09:00
minjaesong
ee7115b438 cursor position reset for going left 2021-10-22 18:38:59 +09:00
minjaesong
9b3384255b hangul ime 2021-10-22 17:51:13 +09:00
minjaesong
1c370ac610 first hangul ime 2021-10-22 15:40:41 +09:00
minjaesong
026ea1d9f3 cursor over right is workign but not the left 2021-10-21 22:42:18 +09:00
minjaesong
d355c407d8 implementation of the max string length 2021-10-21 21:22:46 +09:00
minjaesong
a94586cdf7 properly supporting multibyte characters (i think...) 2021-10-21 19:20:28 +09:00
minjaesong
2bae7c59f5 text pane 2021-10-21 17:32:01 +09:00
minjaesong
f7aa773482 strings for Keyboard Layout 2021-10-21 15:37:31 +09:00
minjaesong
f07be81007 working text selector; text input needs more work 2021-10-21 15:08:39 +09:00
minjaesong
22da01eea0 some colour constants moved to the Toolkit.Theme 2021-10-21 09:45:45 +09:00
minjaesong
6cc6a86208 text input: can left/right and insert/delete 2021-10-20 23:53:30 +09:00
minjaesong
9326b87909 text input pane wip 2021-10-20 23:00:25 +09:00
minjaesong
8a8e97d4b2 custom keyboard handling wip 2021-10-20 12:57:56 +09:00
minjaesong
d5eef2a687 rename 'tvda' -> 'savegame' 2021-10-20 10:38:42 +09:00
minjaesong
5b758324f0 wiiires 2021-10-19 19:34:34 +09:00
minjaesong
c2f453d4dd wires 2021-10-19 17:56:37 +09:00
minjaesong
d294294145 wire cutter drops cut wire 2021-10-19 11:20:19 +09:00
minjaesong
8c692aa45e load ui to inject remoCon contents to implement its own submenus 2021-10-19 10:54:39 +09:00
minjaesong
917fc04ad8 new cam smoothing 2021-10-17 17:08:21 +09:00
minjaesong
40653ac4d1 programmable logic array GUI mockup 2021-10-16 15:39:57 +09:00
minjaesong
c6b96eeeb8 increased player reach by 1 block 2021-10-15 16:50:05 +09:00
minjaesong
bc009a4b8d changed how camera smoothing works but not sure it doing what I intended 2021-10-15 10:34:41 +09:00
minjaesong
51fe1028e9 font glyph updates 2021-10-14 20:45:16 +09:00
minjaesong
e679a421e5 able to load player sprite from the disk archive 2021-10-14 17:57:37 +09:00
minjaesong
c3b4dbc4b9 font update 2021-10-14 15:10:46 +09:00
minjaesong
4b67121e70 fixed a bug where UI of the storagechest won't properly initialise after a load 2021-10-14 11:21:10 +09:00
minjaesong
f9cff90496 useStairs check when the actor is using staircase 2021-10-14 10:45:53 +09:00
minjaesong
e1a3ea953d fixed a bug where some player-related values are not being written on saving when the player was loaded from the savegame 2021-10-14 10:18:20 +09:00
minjaesong
0913937ba2 fixed a bug where player position would offset to right on load 2021-10-14 01:34:49 +09:00
minjaesong
3c2564ca64 saved players position is now restored but offsetted to the right for some reason 2021-10-13 22:23:28 +09:00
minjaesong
03a854ca58 players loads their sprites now 2021-10-13 16:18:27 +09:00
minjaesong
f28fabb8b5 still tryin to fix shits 2021-10-12 17:42:29 +09:00
minjaesong
1a7c01825d loading works but not quite 2021-10-12 16:48:54 +09:00
minjaesong
ce1289efe3 players info cell reworked 2021-10-12 11:55:52 +09:00
minjaesong
c0e8c2f85b manual saving works? 2021-10-12 10:32:19 +09:00
minjaesong
2d359415c8 player load ui 2021-10-12 00:17:44 +09:00
minjaesong
cdd09e71a5 more random dither tex 2021-10-11 19:31:39 +09:00
minjaesong
8dbedd270e still wip 2021-10-11 19:02:51 +09:00
minjaesong
ef603ec5d5 new load wip 2021-10-11 17:46:46 +09:00
minjaesong
198237dee2 tooltip won't show up when you hit TAB for real this time 2021-10-11 00:22:24 +09:00
minjaesong
8b3f07eddd dithering for semitransparent tiles 2021-10-10 23:47:03 +09:00
minjaesong
0925ec2580 x mark on save failed 2021-10-10 21:31:14 +09:00
minjaesong
3ca95e138d PlayerLastStatus on world save 2021-10-10 17:39:19 +09:00
minjaesong
f3c56f5d47 dithering on grad overlay 2021-10-10 15:38:09 +09:00
minjaesong
e32dfa3560 more thots 2021-10-10 02:24:09 +09:00
minjaesong
8186f49a79 some ideas on how to store player data 2021-10-10 02:12:17 +09:00
minjaesong
036310921f temporal dithering test 2021-10-10 01:54:07 +09:00
minjaesong
35b4b5cfd5 better implementation of dithering which relies on external texture and it runs faster 2021-10-10 01:00:58 +09:00
minjaesong
d28698b668 dither on lighting and blurring, with an option to turn them off 2021-10-09 20:34:53 +09:00
minjaesong
d4f75c1bd5 using uuid to generate unique filename 2021-10-08 22:21:49 +09:00
minjaesong
a1402f98bd autosave notifier will say an error occured if autosaving fails 2021-10-08 22:15:30 +09:00
minjaesong
aec6fea49e new player save format writing 2021-10-08 14:25:59 +09:00
minjaesong
3f9b41fd29 still working on the new savegame scheme
main game works fine, saving/loading will not be possible
2021-10-07 17:43:23 +09:00
minjaesong
6d8a7520ac new save format wip (no branching on this commit) 2021-10-07 14:40:04 +09:00
minjaesong
d6a22f6567 fixed a bug where num 1 would select quickslot 2 2021-10-06 20:53:10 +09:00
minjaesong
548993553a more savegame ideas 2021-10-06 17:50:23 +09:00
minjaesong
c211b94b13 fixed an oversight where newly-added blocks would not be recognised by the old savegame 2021-10-06 17:16:09 +09:00
minjaesong
170503ecdb fixed a bug where inventory cell would not position correctly when streamermode is changed; where screencapturing for saving would only capture from FboRGB 2021-10-06 16:51:34 +09:00
minjaesong
a43be55969 another dithering pattern 2021-10-06 15:57:18 +09:00
minjaesong
a0bdb67efb commit 2021-10-06 15:26:08 +09:00
minjaesong
0b07e642b1 restart required label 2021-10-06 14:54:40 +09:00
minjaesong
5e867f7db3 graphics config panel; titlescreen no longer updates every single popup ui it contains 2021-10-06 14:16:38 +09:00
minjaesong
fb13922ad9 new dithering shaders 2021-10-06 11:21:35 +09:00
minjaesong
2c6dc8750a streamer mode wip 2021-10-06 00:18:39 +09:00
minjaesong
907dc9a936 partial translations for 32bit warning 2021-10-05 22:48:02 +09:00
minjaesong
da81de6258 32 bit warning sign 2021-10-05 21:56:14 +09:00
minjaesong
a8b04fcff1 drawing droppeditem using common draw positioning function just like others 2021-10-05 21:05:01 +09:00
minjaesong
3364cbb49e reducing jump power for actors with scale > 1 2021-10-05 20:50:05 +09:00
minjaesong
59aa595a0e tiling placeholder actorblock (for future use) 2021-10-05 20:21:15 +09:00
minjaesong
e2e0d21e27 32 bit warning icon 2021-10-05 17:28:29 +09:00
minjaesong
54c8493713 big enough actors can dig ground by punching it 2021-10-05 16:26:55 +09:00
minjaesong
a6cfabf3bf new savegame scheme suggestion 2021-10-05 10:05:25 +09:00
minjaesong
dc0b5029f2 forgot to make changes to picaxes 2021-10-04 14:27:24 +09:00
minjaesong
e0fbc54839 implemented player 'reach' for items 2021-10-04 12:03:34 +09:00
minjaesong
ea2525e4df sprite and spriteassembler update 2021-10-03 18:17:22 +09:00
minjaesong
abb46f410a one more old savefile to keep 2021-10-02 23:21:16 +09:00
minjaesong
376a40531f sprite update 2021-10-02 23:06:26 +09:00
minjaesong
5d357bd3f6 h o p e f u l l y 2021-10-02 22:49:44 +09:00
minjaesong
f6b0b447a4 dropped item can be picked up (at a weird distance) 2021-10-02 17:50:27 +09:00
minjaesong
6fda6bafe4 autosave notifier to y-align with quickslot and watch ui 2021-10-02 11:28:34 +09:00
minjaesong
485e8349de A working autosave 2021-10-02 11:17:28 +09:00
minjaesong
e61224224d initial save from newgame is now marked as autosave 2021-10-02 10:13:33 +09:00
minjaesong
b6cda92a97 autosave notifier is working but autosave itself is not cued yet 2021-10-02 10:07:07 +09:00
minjaesong
2422dfdeed no icon for quicksave; new icon for incompatible save 2021-10-02 09:09:26 +09:00
minjaesong
b788172aa0 sprite update 2021-10-01 23:12:18 +09:00
minjaesong
ea507d4d8e reading savefiles won't freeze the ui (too much) 2021-10-01 22:54:18 +09:00
minjaesong
ba25e4f203 savegame status icons 2021-10-01 19:46:42 +09:00
minjaesong
49daf5d870 wait spinner 2021-10-01 17:28:44 +09:00
minjaesong
88c76105d2 detects corrupted and damaged and deleted and whatever savefiles; uiitem will call show() and hide() upon opening and closing 2021-10-01 15:46:25 +09:00
minjaesong
3a98bef509 sprite assembler viewer update 2021-10-01 13:33:17 +09:00
minjaesong
5834b759e4 sprite template update 2021-10-01 11:56:48 +09:00
minjaesong
b720c12c4e no more reading entire savefiles onto the memory upon the booting 2021-10-01 10:07:23 +09:00
minjaesong
aaa8a80324 new template 2021-09-30 23:06:21 +09:00
minjaesong
24e100223d new npc template wip 2021-09-30 22:16:33 +09:00
minjaesong
4dd34410cc check for save damage wip 2021-09-30 13:57:51 +09:00
minjaesong
588ac047db fixed a bug where wires cause quicksave to fail 2021-09-30 10:44:48 +09:00
minjaesong
277ecbcebd the manual saving will unset the quicksave and autosave flags; save.1 won't overwrite save.2 if the target is .2 is cleansave and .1 is dirty 2021-09-29 19:05:26 +09:00
minjaesong
7ddde8e4f0 writing savemode to the savegame binary 2021-09-29 17:34:26 +09:00
minjaesong
60a8382f93 quicksave (part of the autosaving) is working 2021-09-29 16:51:59 +09:00
minjaesong
f6eb567385 making copy of the savegame immediately after the initial save 2021-09-29 12:53:46 +09:00
minjaesong
2891d0466e initial savefile generation of the newgame 2021-09-29 12:38:08 +09:00
minjaesong
f4a4030260 inventory console command is working again 2021-09-26 17:04:28 +09:00
minjaesong
2c12d43274 brighter wire cutter blades 2021-09-26 16:05:31 +09:00
minjaesong
55624e93e6 fixed a bug where the app would not generate correct config if there is no existing config 2021-09-26 15:50:09 +09:00
minjaesong
0e5c86ad04 press tab to bring up the game menu 2021-09-26 15:34:24 +09:00
minjaesong
3680047e9a minor creature raw adjustments 2021-09-21 12:28:45 +09:00
minjaesong
9e3bc09cee fixed a bug where non-square items won't draw to the center of the UI cells (e.g. the inventory) 2021-09-21 11:59:57 +09:00
minjaesong
26c71e691c fixtures can be despawned by "mining" them 2021-09-21 00:22:52 +09:00
minjaesong
c63b31e964 UIItemInventoryElemWide: removed temporary equippedslot marker: is unnecessary as we've already got UIItemInventoryEquippedView 2021-09-20 17:10:43 +09:00
minjaesong
a532f4601b reset button for control setup 2021-09-20 16:39:06 +09:00
minjaesong
3748f1ecf3 fixed a bug where quickslot and itemgrid would respond to scrollX instead of scrollY 2021-09-20 01:29:59 +09:00
minjaesong
4784956627 key setup ui bug fix 2021-09-20 00:51:17 +09:00
minjaesong
e13f1fe7b6 key setup ui update 2021-09-20 00:35:02 +09:00
minjaesong
277362f959 keyboard control setup ui 2021-09-19 23:17:32 +09:00
minjaesong
10bee994a7 bigger click hitbox for titlescreen uiremocon 2021-09-19 20:39:23 +09:00
minjaesong
bccac0fbd3 fixed a bug where touch-up event not fired 2021-09-19 19:01:53 +09:00
minjaesong
e2101ebc54 config key change; uiitemtextbutton can now have tags alongside with the label 2021-09-19 17:06:22 +09:00
minjaesong
66e77e0a01 writing config to disk 2021-09-19 15:15:42 +09:00
minjaesong
b741d463bb hiding UIs for not-a-goal feature 2021-09-19 01:57:52 +09:00
minjaesong
c94babdf04 fixed a bug where spawned fixture's x-position is not wrapped as it should do 2021-09-19 00:03:34 +09:00
minjaesong
e68d82f280 cut wires are also power-cut 2021-09-18 23:30:45 +09:00
minjaesong
9e8bd5e4a9 working wire cutter (drops no wire) 2021-09-18 21:01:06 +09:00
minjaesong
097689f49f wirecutter wip 2021-09-18 17:58:02 +09:00
minjaesong
9bec90ca52 bits of icelandic translation 2021-09-18 16:07:21 +09:00
minjaesong
43d9785db8 quick and dirty solution deployed for the load screen dereferencing the dead pointer 2021-09-18 11:55:38 +09:00
minjaesong
2f19d2cd51 error trap to inform players wtf went wrong 2021-09-18 10:57:59 +09:00
minjaesong
e22518530d fixed a bug where text buttons won't respond immediately/esc menu text button to unintentionally "click" the newly-appeared button (ESC -> Return to Main Menu -> Cancel -> Return to ... ) 2021-09-17 23:52:10 +09:00
minjaesong
575ed4410b sprites can be rendered across the world seam 2021-09-17 22:54:55 +09:00
minjaesong
58be058b86 turns out actors still have the camera artefacts... 2021-09-17 19:48:31 +09:00
minjaesong
4ab9a18ff6 exporting font work files to its repo 2021-09-17 10:06:51 +09:00
minjaesong
6e9b388534 removed visual artefacts caused by the new camera coords 2021-09-17 00:47:34 +09:00
minjaesong
c3481fd47d smoothcam that's only noticeable when the character climbs up the stairs 2021-09-16 22:22:36 +09:00
minjaesong
51a6cb5d5d font update 2021-09-16 22:22:15 +09:00
minjaesong
61d269dcc3 control symbol for key setup ui 2021-09-16 22:21:58 +09:00
minjaesong
d01f90ccd2 COPYING update 2021-09-16 00:06:28 +09:00
minjaesong
73306e675e fixed a bug where bulgarian and serbian texts were not form-changed 2021-09-15 23:11:04 +09:00
minjaesong
f391d16a37 keyboards for control setup ui 2021-09-15 22:09:18 +09:00
minjaesong
35e2b6a0a9 language menu to highlight current language on startup 2021-09-15 18:46:45 +09:00
minjaesong
4ac3df0d85 keyboard config wip 2021-09-15 18:00:05 +09:00
minjaesong
fdd07debf4 language config now in two columns 2021-09-15 17:40:31 +09:00
minjaesong
ae29f7ebea game save ui completely locked while saving in progress 2021-09-15 11:34:13 +09:00
minjaesong
22190be6d8 fixed a bug where list of savefiles won't sort by last play date 2021-09-15 10:04:19 +09:00
minjaesong
16a0b28696 able to "lock" the toggle key of the UI to prevent them from being closed while saving 2021-09-14 23:24:21 +09:00
minjaesong
1b71aa1760 save progress wheel itself is working but still wip 2021-09-14 22:57:03 +09:00
minjaesong
ff250ff192 saving wip 2021-09-14 21:52:12 +09:00
minjaesong
39a4f8b8cb some texture updates 2021-09-14 20:47:46 +09:00
minjaesong
0683561d88 titlescreen continue/load wont appear if there are no savegames available 2021-09-14 20:07:27 +09:00
minjaesong
6c1df609a9 loading circle spritesheet 2021-09-14 18:08:48 +09:00
minjaesong
b1b5769a5f d e s i g n 2021-09-14 17:52:54 +09:00
minjaesong
ce19a85a93 saving performed on separate thread so that save-in-progress UI would work 2021-09-14 14:28:38 +09:00
minjaesong
b084f9e5a9 CHUNK ORDERING CHANGED/chunk loading screen 2021-09-14 11:05:01 +09:00
minjaesong
ecc13d4c09 some touchups 2021-09-14 00:25:29 +09:00
minjaesong
de62b41a69 Using "rudimentary" loading scene for loading from savegame 2021-09-14 00:15:02 +09:00
minjaesong
d731812e4e "Continue" button on the titlescreen is working 2021-09-13 14:20:55 +09:00
minjaesong
af954b8c39 this seems to be optimal font cache size for the game 2021-09-13 02:11:29 +09:00
minjaesong
7d927b7392 tighter cell gap 2021-09-13 01:40:17 +09:00
minjaesong
a9eb67ab61 turns out uiitemtextbuttonlist colouring bug was because of the gamefont 2021-09-13 01:20:16 +09:00
minjaesong
921d47c465 confirmation added for exit game and return to main menu 2021-09-13 00:14:48 +09:00
minjaesong
39714153cf save load window scroll using scroll wheel 2021-09-12 23:26:09 +09:00
minjaesong
b99d1a760e save load screen 2021-09-12 22:47:31 +09:00
minjaesong
cdf82270dc blur can be turned off using config file 2021-09-12 12:54:12 +09:00
minjaesong
c9956f6c8b fixed a bug where lightmap would flicker when cameraX rolls from small negative number to zero 2021-09-11 22:46:50 +09:00
minjaesong
784f5fd2ec recording and retrieving timestamps for save meta and world 2021-09-11 22:24:13 +09:00
minjaesong
4e0d1e0c9d more natural occlusion texture 2021-09-11 20:53:44 +09:00
minjaesong
b080852c7c sort savefiles by making last played coming first 2021-09-11 20:35:22 +09:00
minjaesong
c9753a118d load game ui to show human-readable timestamp 2021-09-11 19:14:23 +09:00
minjaesong
b4813a1ebe able to load chunked world save 2021-09-11 18:44:05 +09:00
minjaesong
9fa0e7debe longer filename for savegame container 2021-09-11 13:02:59 +09:00
minjaesong
83c3c22b51 chunked world output/deploying custom format of TVD 2021-09-11 02:19:10 +09:00
minjaesong
36c413eb15 tevd update 2021-09-10 18:47:32 +09:00
minjaesong
5050935847 ingame uis will blur the background 2021-09-09 22:44:24 +09:00
minjaesong
edd454e1d5 using pascal's triangle for gaussian coefficients, just as it should be 2021-09-09 18:34:46 +09:00
minjaesong
3f2d2902d2 screen blur moved to a single function 2021-09-09 17:55:50 +09:00
minjaesong
1a0c48987d dat blur 2021-09-09 16:39:29 +09:00
minjaesong
94a97193f9 title screen panner to track the ground better 2021-09-09 14:38:47 +09:00
minjaesong
9b53402ce0 game load ui wip 2021-09-09 11:51:33 +09:00
minjaesong
7386181cff fake gradient background for menu buttons on titlescreen to increase contrast 2021-09-09 10:08:29 +09:00
minjaesong
8f834fe869 Renamed AppLoader into App 2021-09-09 09:48:33 +09:00
minjaesong
c3dd005fb2 png filesize reduction; grad texture for titlescreen uis 2021-09-08 23:09:03 +09:00
minjaesong
fc40ec48f1 savegame to save with the thumbnail 2021-09-08 20:36:49 +09:00
minjaesong
966e7ce26f minor adjustments 2021-09-08 18:49:15 +09:00
minjaesong
43ba6f8d1c camera follows the terrain more smoothly 2021-09-08 17:51:29 +09:00
minjaesong
b8e181915e bringing back old animating titlescreen 2021-09-08 16:22:25 +09:00
minjaesong
7c38e9a7fd console: actor id shower to only show up when the console is authorised 2021-09-07 20:47:47 +09:00
minjaesong
bbd7878630 tooltip and notifier moved to the base ingame 2021-09-07 17:15:35 +09:00
minjaesong
85ba7a357c i'm not very confident with this... 2021-09-07 15:44:34 +09:00
minjaesong
176a2d8cc7 deserialisable droppeditem 2021-09-07 15:03:00 +09:00
minjaesong
fcd1dd2ff2 kay it works 2021-09-06 20:39:54 +09:00
minjaesong
169fad9563 commit 2021-09-06 17:51:11 +09:00
minjaesong
1accf985e7 save/load kinda mostly working but fixtures are not getting their sprites back 2021-09-06 17:31:37 +09:00
minjaesong
ec08f8d07e extra fields for something-props 2021-09-06 10:39:31 +09:00
minjaesong
6b86f65681 will store codices gzipped in the savegame 2021-09-05 01:52:46 +09:00
minjaesong
a7026167b4 wippie 2021-09-04 22:18:51 +09:00
minjaesong
21a7a38477 codices serialised into the savegame 2021-09-04 20:45:57 +09:00
minjaesong
6bea9c9f07 moved Codices out of the singleton so they can be serialised 2021-09-04 17:55:37 +09:00
minjaesong
57e4b83649 game load wip 2021-09-03 17:54:10 +09:00
minjaesong
42ea79bcc2 savegame cracker update 2021-09-03 09:31:43 +09:00
minjaesong
8c0a9193bb savegame cracker 2021-09-02 13:52:12 +09:00
minjaesong
f427d1fe6f removing non-working gradle script 2021-09-02 12:53:30 +09:00
minjaesong
f771793490 in-console savegame cracker wip 2021-09-02 11:51:38 +09:00
minjaesong
f08296b3be bytearray64reader: read length of zero and EOF are properly distinguished (gdx is somewhat pedantic); changed an ascii85 charset; working meta (de)serialisation 2021-09-01 17:23:12 +09:00
minjaesong
07f26a7716 ByteArray64Writer to handle the UTF-8 correctly 2021-09-01 11:43:01 +09:00
minjaesong
3b37e91e4a save/load with fixed entry id 2021-08-31 17:24:44 +09:00
minjaesong
32144fc241 working ByteArray64Reader (UTF-8 compliant with proper surrogate pairing) 2021-08-31 11:27:40 +09:00
minjaesong
909c381572 bytearray64reader wip 2021-08-30 23:43:51 +09:00
minjaesong
fb140ce2da more world save and virtualdisk lib update 2021-08-30 13:57:54 +09:00
minjaesong
7ae862dd05 tevd update; seemingly working savefile export 2021-08-30 01:16:15 +09:00
minjaesong
c610bd1ac6 console command dictionary is now automatically filled using reflection 2021-08-29 20:36:37 +09:00
minjaesong
3fc6e28c4d read/writeactor to process all subclasses of Actor, not just a player; actor possession confirmed working 2021-08-29 13:07:44 +09:00
minjaesong
c247f99e0e big smoke texture 2021-08-28 23:12:05 +09:00
minjaesong
02f5abe763 i dont think this should be transient 2021-08-28 21:53:11 +09:00
minjaesong
bf1b203633 implementation of #44 2021-08-28 21:48:35 +09:00
minjaesong
3a6100107e all potentially serialisable actors now have no-arg constructor 2021-08-28 18:58:46 +09:00
minjaesong
043bd3a1db inventory ui: getting actor is now dynamic 2021-08-28 17:10:36 +09:00
minjaesong
b84a0a770b loading player from json file 2021-08-28 16:31:06 +09:00
minjaesong
29cccea19b working blocklayer gzip writer and reader 2021-08-27 01:58:11 +09:00
minjaesong
c2fdb4b26a tile damage and wire layers are now save/loaded 2021-08-26 23:11:03 +09:00
minjaesong
e5c25c5a10 fixed a bug where player input can be ignored when framerate is significantly faster than update rate, which causes gameupdate to be called less often 2021-08-26 17:27:52 +09:00
minjaesong
2099213e18 finally fixed the long-broken colour codes 2021-08-26 16:00:35 +09:00
minjaesong
c1cbc13caf yep, it works when unzipped, except for the wires dammit 2021-08-25 21:57:13 +09:00
minjaesong
29c5599746 things are not quite working yet but here's more descriptive error message for ya 2021-08-25 20:55:21 +09:00
minjaesong
9a8bd8d6ec trying to load a world 2021-08-25 15:30:46 +09:00
minjaesong
8499746ad0 using gdx's preferred way to generate world json 2021-08-25 11:16:21 +09:00
minjaesong
6b74f3a9c4 ba64 outputting functions 2021-08-24 17:29:19 +09:00
minjaesong
ee5e10dd8c actor serialiser 2021-08-24 17:11:41 +09:00
minjaesong
126a4325d2 let's compress everything because we can 2021-08-24 16:35:48 +09:00
minjaesong
cb73a9fea2 serialiser for world 2021-08-24 14:33:04 +09:00
minjaesong
67091d0c84 much simpler way of composing savegame.json 2021-08-24 11:29:21 +09:00
minjaesong
dd51cfbe52 u forgot dis 2021-08-23 23:04:35 +09:00
minjaesong
3894c5177b csvs are compressed within savegame 2021-08-23 20:59:45 +09:00
minjaesong
93abfe05a6 writeworld wip 2021-08-23 17:52:53 +09:00
minjaesong
e15d5c9b05 completely abolishing GSON; new save format impl wip 2021-08-23 16:55:51 +09:00
minjaesong
df1ebdf93d more updates that looks for worldchangequeue 2021-08-22 18:06:54 +09:00
minjaesong
b8e24d556e wire actors to only update when wire change queue is not empty 2021-08-22 00:42:52 +09:00
minjaesong
d315d61f68 seemingly working #41 2021-08-21 21:43:52 +09:00
minjaesong
ca72a6fbe5 trying to write a new ingamecontroller so that its update can be manually controlled 2021-08-21 21:03:39 +09:00
minjaesong
bb95444067 reducing number of warnings on the codebase 2021-08-20 23:28:59 +09:00
minjaesong
69075ad6da staircase climbing seemingly working 2021-08-20 20:31:25 +09:00
minjaesong
64271dc9ba wires are now visible when not selected, but gets covered by the terrain to make them appear natural 2021-08-20 15:48:20 +09:00
minjaesong
d318f0114c staircases no longer count as 'wall' for phys 2021-08-20 13:53:10 +09:00
minjaesong
4175f80918 now accepts all the value punched into the creature raw 2021-08-20 13:48:40 +09:00
minjaesong
c0b4a929ad first working staircasing but barely 2021-08-20 11:35:15 +09:00
minjaesong
467e1dd252 todo! 2021-08-19 17:59:21 +09:00
minjaesong
07b1e2f2b7 prep for staircase climbing 2021-08-19 17:14:43 +09:00
minjaesong
0faa77cb16 comment 2021-08-19 11:53:54 +09:00
minjaesong
4b7cee3fb7 fixing issue #38 2021-08-19 11:15:38 +09:00
minjaesong
eb179f72a0 i suck at math 2021-08-18 19:13:15 +09:00
minjaesong
c0ef84412b fixed a bug where only the first wire item of same 'accepts' property would be chosen for signals be propagated 2021-08-18 15:27:37 +09:00
minjaesong
f764448d06 intTilewiseHitbox is now being updated in sync with other variables instead of getter 2021-08-18 11:25:03 +09:00
minjaesong
9a271b1b9e bigger torch flame sprite; basic physics on particles 2021-08-17 20:51:25 +09:00
minjaesong
a2b3334692 taller tiki torch 2021-08-17 18:37:54 +09:00
minjaesong
0f03eafc84 tiki torch now spawns smoke particles and flames are randomly animated 2021-08-17 16:50:13 +09:00
minjaesong
42c09640d0 vanishing particle test 2021-08-17 15:31:00 +09:00
minjaesong
74ae35e9a9 fixed a bug where wires were actually drawn upside-down; 10base2 wires are now terminated 2021-08-16 20:55:10 +09:00
minjaesong
d611638851 ethernet cable is replaced with 10base2 2021-08-16 13:04:40 +09:00
minjaesong
1059b4e097 more wires moved from work_files into assets 2021-08-16 00:27:28 +09:00
minjaesong
16376b229a according to the opengl wiki this should be more optimised 2021-08-15 22:25:27 +09:00
minjaesong
b2805ba09f new wire property: branching 2021-08-15 00:55:56 +09:00
minjaesong
a064275cfb light update for every three frames because why not *shrug* 2021-08-15 00:40:32 +09:00
minjaesong
deb2dcf28b extending light draw size so that 'lagging-behind' update won't exhibit 'camera seam' 2021-08-15 00:29:16 +09:00
minjaesong
3d5bb55514 confirmation that some tricks would not work 2021-08-14 17:02:54 +09:00
minjaesong
168e4f08b5 lightmap to update every other frame, and rendering needs fix minor jitter 2021-08-14 12:52:47 +09:00
minjaesong
479dc5c3fb new and sane graph traversal; only works for first of the multiple wires tho 2021-08-13 14:39:20 +09:00
minjaesong
a6d082fb7d wire branching traversal itself works, but fetches wrong signal status 2021-08-12 11:38:48 +09:00
minjaesong
884c129837 more timers 2021-08-11 22:07:15 +09:00
minjaesong
740eab3e84 fix: fixtures not placing actorblocks 2021-08-11 18:01:34 +09:00
minjaesong
7bb921321f wire: off-to-on traversal of nonbranching wire connection 2021-08-11 16:45:39 +09:00
minjaesong
bfdfa17e3e some variable renaming 2021-08-10 18:41:43 +09:00
minjaesong
c8b5578a91 i dont even know what am i doing :/ 2021-08-10 17:43:44 +09:00
minjaesong
f1cece1064 multiblock fixtures can now emit/consume multiple wiring types 2021-08-10 16:56:22 +09:00
minjaesong
43ae93e982 signal emitter: wires are now visible while holding the item 2021-08-09 21:42:38 +09:00
minjaesong
1754c619f5 wire pieces will be 'lit' when it receives power (power propagation not implemented) 2021-08-09 17:28:27 +09:00
minjaesong
a9f46613a2 first working instance of wire signal source block 2021-08-09 17:00:02 +09:00
minjaesong
4c4817f2fb some refactoring 2021-08-09 14:36:32 +09:00
minjaesong
c1bb504ccb more conventional sortedarraylist 2021-08-09 13:26:17 +09:00
minjaesong
995d02d966 signal emitter is now a fixture 2021-08-08 21:38:38 +09:00
minjaesong
5888b92071 texture for wire power source block 2021-08-07 23:15:55 +09:00
minjaesong
d8516f4ad1 changes on wire receive state 2021-08-07 18:03:38 +09:00
minjaesong
db45557c19 unequipping already equipping item when the game tries to equip a new item on the same slot 2021-08-07 17:32:32 +09:00
minjaesong
e4542af75c fixed a bug where wire graphs would not laid down correctly 2021-08-07 16:23:42 +09:00
minjaesong
4112dc333f tooltip ui update 2021-08-07 14:21:27 +09:00
minjaesong
de2be74fb1 referencing ranges for wire overlay; more pronounced torch flicker 2021-08-07 00:53:17 +09:00
minjaesong
ce9b86d637 hit q to close the storage chest gui 2021-08-07 00:27:32 +09:00
minjaesong
f7ce911c9e fixed a bug where inventory's cat icons would unloaded when you load the ingame second time 2021-08-07 00:14:33 +09:00
minjaesong
4b50b0cff1 pickaxe to drop a tile defined in 'drop' property 2021-08-06 22:01:59 +09:00
minjaesong
ecce123299 spawning of dropped item 2021-08-06 21:43:50 +09:00
minjaesong
edc3d53f4e refactoring around 2021-08-06 13:34:17 +09:00
minjaesong
9578488962 wire sim wip 2021-08-05 18:41:40 +09:00
minjaesong
828ef6a0df precedence of the elvis operator is still confusing :( 2021-08-05 18:29:09 +09:00
minjaesong
c6c8d02118 better drop shadow for tooltip 2021-08-04 17:20:10 +09:00
minjaesong
7b029126f3 new lantern graphic and things 2021-08-04 15:02:48 +09:00
minjaesong
6891d6b840 building wire graph PER TILE 2021-08-03 16:27:56 +09:00
minjaesong
1ae3e34392 slight elaboration on world wire changed event 2021-08-03 13:52:00 +09:00
minjaesong
7624e37bda making wire actor's hitbox bigger so their disappearance on the screen edge won't be visible 2021-07-31 19:13:29 +09:00
minjaesong
5311158ad8 actually enforcing limit on how many wire pieces can be rendered 2021-07-31 16:39:47 +09:00
minjaesong
930cc55353 wires now appear connected in game 2021-07-31 16:33:40 +09:00
minjaesong
b10fb0a30b wire actor renders; functionality still wip 2021-07-31 14:18:52 +09:00
minjaesong
f64574db80 wire actor wip 2021-07-30 17:48:25 +09:00
minjaesong
4f52b26590 oops walls were too light 2021-07-29 17:41:10 +09:00
minjaesong
0e3bfbb782 fixed a bug where wall item can be consumend indefinitely because checking for what's already there was not working 2021-07-29 16:23:18 +09:00
minjaesong
47e6ac6572 better natural block template -- no jagged sides but even more three-dimensional 2021-07-29 15:09:00 +09:00
minjaesong
26ee7498e2 closing issue #39 2021-07-29 12:56:25 +09:00
minjaesong
e19187eea9 first working wall occlusion (issue #39) 2021-07-29 12:25:56 +09:00
minjaesong
870e165cf6 renaiming debug timers 2021-07-29 10:23:32 +09:00
minjaesong
6f09040174 resources for issue #39 2021-07-28 21:04:32 +09:00
minjaesong
caa38cca10 mask for fake corner occlusion wip 2021-07-28 17:56:02 +09:00
minjaesong
29f6034fdc wires are now separated from blocks 2021-07-28 16:10:03 +09:00
minjaesong
5aacbe84b8 wire is back! but not the render 2021-07-28 14:22:13 +09:00
minjaesong
8cb3fc2d33 moving things around between packages 2021-07-28 10:11:18 +09:00
minjaesong
c67a10c9a8 re-ordering initialisation for lwjgl3 so that the gdx window would actually pop up 2021-07-27 22:28:16 +09:00
minjaesong
2013e41d38 copyright message: renaming Torvald into CuriousTorvald 2021-07-27 16:22:51 +09:00
minjaesong
67a5e2e1e6 tilesize declaration refactoring 2021-07-27 16:17:54 +09:00
minjaesong
cb11267202 fatjar artifact configuration 2021-07-27 15:21:40 +09:00
minjaesong
a91156ac21 gdx 1.10/lwjgl3 migration; removing old Lua stuffs 2021-07-27 12:43:01 +09:00
minjaesong
f75b5da0e1 eyes-sclera should not glow; changing hitbox width to 22 px 2021-07-08 11:33:09 +09:00
minjaesong
1b1b1641ff enabling sprite glow again (dunno why it was disabled tho) 2021-07-07 23:17:36 +09:00
minjaesong
93854c92a2 adjusting the shape of bodyparts so that they look more natural when walk animation is set 2021-07-07 22:35:37 +09:00
minjaesong
0fa395acd5 the new sprite fully assembled 2021-07-07 16:52:07 +09:00
minjaesong
567fe668dc redrawn so that the character would look proportional (and improved digitigrade) 2021-07-06 23:20:41 +09:00
minjaesong
1cd43cac15 screw the isdev thing 2021-07-06 16:48:51 +09:00
minjaesong
eb48f15ac0 work. 2021-07-06 01:27:54 +09:00
minjaesong
68f009f638 digitigrade reworked 2021-07-06 01:11:48 +09:00
minjaesong
d84c194b3b template sprite improved shading 2021-07-05 23:09:39 +09:00
minjaesong
ad1fda6842 template sprite improved shading 2021-07-05 21:46:44 +09:00
minjaesong
c24c7b5ac1 template for large werebeast 2021-07-05 21:29:41 +09:00
minjaesong
9838c957bc Merge branch 'master' of github.com:curioustorvald/Terrarum 2021-04-03 20:49:12 +09:00
minjaesong
6bb33e5c3d more sensible way of obtaining and using colorbuffertexture 2021-04-03 20:48:14 +09:00
minjaesong
09aeae39a2 changed render order so that chest name won't show grey (for some reason) 2021-03-18 10:51:57 +09:00
minjaesong
bae438c2df storage chest ui to display its name and player encumbrance meter 2021-03-16 17:57:30 +09:00
minjaesong
5f7db4cf19 storage chest compact mode buttons now work together 2021-03-16 16:22:16 +09:00
minjaesong
953e44c8d7 working storage chest impl 2021-03-16 15:57:09 +09:00
minjaesong
0fa889bc55 storagechests (actually all fixtures) now has their own inventory 2021-03-16 15:01:17 +09:00
minjaesong
76f5d0a924 two column inventory for storagechest wip 2021-03-16 11:51:32 +09:00
minjaesong
0496366057 blocks are now 'drag-painted' again, but in better way bc fixtures won't 2021-03-16 10:52:31 +09:00
minjaesong
8f5a89e415 i was dealing with wrong function xD 2021-03-16 10:35:35 +09:00
minjaesong
00298190a4 hangul font long overdue update 2021-03-15 19:52:23 +09:00
minjaesong
5330a2be96 modularised inventory cell behaviour 2021-03-13 17:35:07 +09:00
minjaesong
c25e9f92be storage chest still wip 2021-03-13 15:48:14 +09:00
minjaesong
d093c2cb30 new item texture only 2021-03-12 17:08:55 +09:00
minjaesong
b57486e9d7 storage chest wip 2021-03-12 12:44:27 +09:00
minjaesong
bd89ca67fb inventory ui itemgrid:removed inventoryfull dependency 2021-03-12 10:38:53 +09:00
minjaesong
ae3bf663e0 new tile mask 2021-03-09 14:51:01 +09:00
minjaesong
a8ab6de39c patching holes in the grass texture 2021-03-09 14:35:32 +09:00
minjaesong
ed2a99f90d techtree wip 2021-03-09 00:28:35 +09:00
minjaesong
45129d5b0f package declaration for Ascii85.kt 2021-03-08 13:10:41 +09:00
minjaesong
fa4b5df19c finally decided the world size of small/normal/large/huge 2021-03-01 14:56:53 +09:00
minjaesong
7900309f30 slate layer; new stone 'marble' 2021-02-28 16:33:12 +09:00
minjaesong
37c6ffd062 new cobblestone texture, layer transition dithering with buffer layer 2021-02-28 11:30:10 +09:00
minjaesong
6cf8553ac2 terragen now works column-wise (wip soil-rock layer dithering) 2021-02-28 09:44:40 +09:00
minjaesong
7928dd1573 Ascii85 encoder for future savegame impl 2021-02-27 13:49:32 +09:00
minjaesong
615e3035b4 savegame: just json it 2021-02-26 17:07:26 +09:00
minjaesong
3b48814b9c merging branch the-flattening into master 2021-02-25 17:42:37 +09:00
minjaesong
4122c81a68 wires texture 2021-02-12 14:14:43 +09:00
2363 changed files with 209509 additions and 37844 deletions

8
.gitattributes vendored
View File

@@ -7,3 +7,11 @@
*.zip filter=lfs diff=lfs merge=lfs -text
*.kra filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.icns filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.btxbook filter=lfs diff=lfs merge=lfs -text
*.btxform filter=lfs diff=lfs merge=lfs -text
*.tga binary diff=hex
*.kra binary diff=hex

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
github: [curioustorvald]
custom: ["https://paypal.me/curioustorvald"]

99
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,99 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
schedule:
- cron: '41 4 * * 0'
jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read
strategy:
fail-fast: false
matrix:
include:
- language: java-kotlin
build-mode: none
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
# or others). This is typically only required for manual builds.
# - name: Setup runtime (example)
# uses: actions/setup-example@v1
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- name: Run manual build steps
if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"

22
.gitignore vendored
View File

@@ -1,9 +1,19 @@
# Build-related
out/*
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/
bin/*
build/*
assets_release/*
.gradle/*
TerrarumBuild.jar
buildapp/out/Terrarum*
buildapp/TerrarumLinux.*
buildapp/TerrarumMac.*
buildapp/TerrarumWindows.*
assets/mods/*/*.jar
work_files/skylight/hosek_model_source/*.bin
# Java native errors
hs_err_pid*
@@ -29,6 +39,7 @@ workspace.xml
.tmp*
tmp_*
*.bak
*-autosave.kra
## Microsoft Office
~$*
## Generic temp files in Linux
@@ -36,10 +47,3 @@ tmp_*
## Vim temp files
*.swp
*.swo
# Eclipse MAT heap files
*.hprof
*.bin
*.index
*.threads
*_Leak_Suspects.zip

1
.idea/.name generated
View File

@@ -1 +0,0 @@
Terrarum_renewed

View File

@@ -1,9 +0,0 @@
<component name="ArtifactManager">
<artifact type="jar" name="ModuleBasegame">
<output-path>$PROJECT_DIR$/out/artifacts/ModuleBasegame</output-path>
<root id="archive" name="ModuleBasegame.jar">
<element id="module-output" name="ingamemodule_basegame" />
<element id="library" level="project" name="lib" />
</root>
</artifact>
</component>

10
.idea/artifacts/ModuleComputers.xml generated Normal file
View File

@@ -0,0 +1,10 @@
<component name="ArtifactManager">
<artifact type="jar" name="ModuleComputers">
<output-path>$PROJECT_DIR$/assets/mods/dwarventech</output-path>
<root id="archive" name="ModuleComputers.jar">
<element id="module-output" name="ModuleComputers" />
<element id="extracted-dir" path="$PROJECT_DIR$/ModuleComputers/lib/TerrarumTSVM.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/ModuleComputers/lib/TerranVirtualDisk.jar" path-in-jar="/" />
</root>
</artifact>
</component>

8
.idea/artifacts/MusicPlayer.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<component name="ArtifactManager">
<artifact type="jar" name="MusicPlayer">
<output-path>$PROJECT_DIR$/assets/mods/musicplayer</output-path>
<root id="archive" name="MusicPlayer.jar">
<element id="module-output" name="MusicPlayer" />
</root>
</artifact>
</component>

96
.idea/artifacts/SpriteAssemblerApp.xml generated Normal file
View File

@@ -0,0 +1,96 @@
<component name="ArtifactManager">
<artifact type="jar" name="SpriteAssemblerApp">
<output-path>$PROJECT_DIR$/out</output-path>
<root id="archive" name="SpriteAssemblerApp.jar">
<element id="directory" name="META-INF">
<element id="file-copy" path="$PROJECT_DIR$/src/net/torvald/terrarum/spriteassembler/META-INF/MANIFEST.MF" />
</element>
<element id="module-output" name="TerrarumBuild" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/Terrarum_Joise.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-csv-1.8.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/TerrarumSansBitmap.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-controllers-core-2.2.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/GetCpuName.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/prtree.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-codec-1.15.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jxinput-1.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-controllers-desktop-2.2.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.21/kotlin-stdlib-jdk7-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.21/kotlin-stdlib-common-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.21/kotlin-stdlib-jdk8-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk8.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk7.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-reflect.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/polyglot-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-language-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-scriptengine-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/regex-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-api-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-runtime-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-compiler-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/compiler-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/compiler-management-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/icu4j-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/collections-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/word-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/nativeimage-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jniutils-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-1.12.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.12.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jlayer-1.0.1-gdx.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jorbis-0.0.17.jar" path-in-jar="/" />
</root>
</artifact>
</component>

View File

@@ -1,14 +1,100 @@
<component name="ArtifactManager">
<artifact type="jar" name="TerrarumBuild">
<output-path>$PROJECT_DIR$/</output-path>
<output-path>$PROJECT_DIR$/out</output-path>
<root id="archive" name="TerrarumBuild.jar">
<element id="directory" name="META-INF">
<element id="file-copy" path="$PROJECT_DIR$/src/META-INF/MANIFEST.MF" />
</element>
<element id="library" level="project" name="KotlinJavaRuntime" />
<element id="library" level="project" name="lib" />
<element id="module-output" name="ingamemodule_basegame" />
<element id="module-output" name="terrarum" />
<element id="module-output" name="TerrarumBuild" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jlayer-1.0.1-gdx.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jorbis-0.0.17.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-codec-1.15.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-controllers-core-2.2.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-controllers-desktop-2.2.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/GetCpuName.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jxinput-1.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-csv-1.8.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/prtree.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/Terrarum_Joise.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/TerrarumSansBitmap.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/polyglot-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-language-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-scriptengine-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/regex-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-api-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-runtime-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-compiler-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/compiler-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/compiler-management-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/icu4j-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/collections-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/word-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/nativeimage-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jniutils-23.1.10.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-math3-3.6.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/JTransforms-3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/JLargeArrays-1.5.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-1.12.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.12.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.12.1-natives-arm64-v8a.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.12.1-natives-desktop.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.12.1-natives-x86_64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/TerranVirtualDisk.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/2.0.0/kotlin-stdlib-jdk8-2.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/2.0.0/kotlin-stdlib-2.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/2.0.0/kotlin-stdlib-jdk7-2.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/GetBatteryStatus.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/aircompressor-2.0.2.jar" path-in-jar="/" />
</root>
</artifact>
</component>

View File

@@ -1,41 +1,19 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<option name="RIGHT_MARGIN" value="999" />
<JetCodeStyleSettings>
<option name="ALIGN_IN_COLUMNS_CASE_BRANCH" value="true" />
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<MarkdownNavigatorCodeStyleSettings>
<option name="RIGHT_MARGIN" value="72" />
</MarkdownNavigatorCodeStyleSettings>
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
<codeStyleSettings language="JAVA">
<option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
<option name="ELSE_ON_NEW_LINE" value="true" />
<option name="CATCH_ON_NEW_LINE" value="true" />
<option name="FINALLY_ON_NEW_LINE" value="true" />
<option name="ALIGN_MULTILINE_CHAINED_METHODS" value="true" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_TERNARY_OPERATION" value="true" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
<option name="METHOD_PARAMETERS_WRAP" value="1" />
<option name="THROWS_LIST_WRAP" value="1" />
<option name="TERNARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="KEEP_SIMPLE_CLASSES_IN_ONE_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="5" />
<option name="ARRAY_INITIALIZER_WRAP" value="5" />
<option name="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE" value="true" />
<option name="WRAP_ON_TYPING" value="0" />
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="5" />
<option name="KEEP_BLANK_LINES_IN_CODE" value="5" />
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
<option name="ELSE_ON_NEW_LINE" value="true" />
<option name="CATCH_ON_NEW_LINE" value="true" />
<option name="FINALLY_ON_NEW_LINE" value="true" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
</codeStyleSettings>
</code_scheme>
</component>

3
.idea/compiler.xml generated
View File

@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="BUILD_PROCESS_HEAP_SIZE" value="2048" />
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
</annotationProcessing>
<bytecodeTargetLevel target="8" />
<bytecodeTargetLevel target="17" />
</component>
<component name="JavacSettings">
<option name="PREFER_TARGET_JDK_COMPILER" value="false" />

View File

@@ -5,6 +5,9 @@
<inspection_tool class="ConstantConditionIf" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="CsvValidation" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="ExplicitThis" enabled="false" level="INFORMATION" enabled_by_default="false" />
<inspection_tool class="JsonStandardCompliance" enabled="true" level="ERROR" enabled_by_default="true">
<option name="myWarnAboutComments" value="false" />
</inspection_tool>
<inspection_tool class="KotlinDoubleNegation" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NullChecksToSafeCall" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="RedundantCompanionReference" enabled="false" level="WARNING" enabled_by_default="false" />

10
.idea/kotlinc.xml generated
View File

@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Kotlin2JsCompilerArguments">
<option name="sourceMapEmbedSources" />
</component>
<component name="Kotlin2JvmCompilerArguments">
<option name="jvmTarget" value="1.8" />
</component>
<component name="KotlinCommonCompilerArguments">
<option name="apiVersion" value="2.0" />
<option name="languageVersion" value="2.0" />
</component>
<component name="KotlinJpsPluginSettings">
<option name="version" value="2.0.0" />
</component>
</project>

9
.idea/libraries/GetBatteryStatus.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="GetBatteryStatus">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/GetBatteryStatus.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

11
.idea/libraries/GetCpuName_src.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="GetCpuName-src">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/GetCpuName.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/GetCpuName-src.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,18 +1,23 @@
<component name="libraryTable">
<library name="KotlinJavaRuntime">
<library name="KotlinJavaRuntime" type="repository">
<properties maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0" />
<CLASSES>
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-stdlib.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-reflect.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-test.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlinx-coroutines-core-1.0.1.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlinx-coroutines-io-jvm-0.1.1.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlinx-coroutines-jdk8-1.0.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/2.0.0/kotlin-stdlib-jdk8-2.0.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/2.0.0/kotlin-stdlib-2.0.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/2.0.0/kotlin-stdlib-jdk7-2.0.0.jar!/" />
</CLASSES>
<JAVADOC />
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/2.0.0/kotlin-stdlib-jdk8-2.0.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/2.0.0/kotlin-stdlib-2.0.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/2.0.0/kotlin-stdlib-jdk7-2.0.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-stdlib-sources.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-reflect-sources.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-test-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/2.0.0/kotlin-stdlib-jdk8-2.0.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/2.0.0/kotlin-stdlib-2.0.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/2.0.0/kotlin-stdlib-jdk7-2.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

10
.idea/libraries/ModuleComputersLib.xml generated Normal file
View File

@@ -0,0 +1,10 @@
<component name="libraryTable">
<library name="ModuleComputersLib">
<CLASSES>
<root url="file://$PROJECT_DIR$/ModuleComputers/lib" />
</CLASSES>
<JAVADOC />
<SOURCES />
<jarDirectory url="file://$PROJECT_DIR$/ModuleComputers/lib" recursive="false" />
</library>
</component>

11
.idea/libraries/TerranVirtualDisk.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="TerranVirtualDisk">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/TerranVirtualDisk.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/TerranVirtualDisk-src.jar!/" />
</SOURCES>
</library>
</component>

11
.idea/libraries/TerrarumSansBitmap.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="TerrarumSansBitmap">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/TerrarumSansBitmap.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/TerrarumSansBitmap.jar!/" />
</SOURCES>
</library>
</component>

11
.idea/libraries/Terrarum_Joise.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Terrarum_Joise">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/Terrarum_Joise.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/Terrarum_Joise.jar!/" />
</SOURCES>
</library>
</component>

14
.idea/libraries/apache_commons_math3.xml generated Normal file
View File

@@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="apache.commons.math3" type="repository">
<properties maven-id="org.apache.commons:commons-math3:3.6.1" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/commons-math3-3.6.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/commons-math3-3.6.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/commons-math3-3.6.1-sources.jar!/" />
</SOURCES>
</library>
</component>

17
.idea/libraries/badlogicgames_gdx.xml generated Normal file
View File

@@ -0,0 +1,17 @@
<component name="libraryTable">
<library name="badlogicgames.gdx" type="repository">
<properties maven-id="com.badlogicgames.gdx:gdx:1.12.1" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-1.12.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/gdx-1.12.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/gdx-1.12.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,170 @@
<component name="libraryTable">
<library name="badlogicgames.gdx.backend.lwjgl3" type="repository">
<properties maven-id="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.12.1" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.12.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.12.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.12.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.12.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.12.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.12.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,53 +0,0 @@
<component name="libraryTable">
<library name="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.9.10" type="repository">
<properties maven-id="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.9.10" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.9.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.9.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.9.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,41 +0,0 @@
<component name="libraryTable">
<library name="com.badlogicgames.gdx:gdx-backend-lwjgl:1.9.10" type="repository">
<properties maven-id="com.badlogicgames.gdx:gdx-backend-lwjgl:1.9.10" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl-1.9.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-2.9.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-platform-2.9.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-platform-2.9.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-platform-2.9.3-natives-osx.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jinput-2.0.5.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jutils-1.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jinput-platform-2.0.5-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jinput-platform-2.0.5-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jinput-platform-2.0.5-natives-osx.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl_util-2.9.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl-1.9.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-2.9.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jinput-2.0.5-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jutils-1.0.0-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl_util-2.9.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl-1.9.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-2.9.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jinput-2.0.5-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jutils-1.0.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl_util-2.9.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,20 +0,0 @@
<component name="libraryTable">
<library name="com.badlogicgames.gdx:gdx-controllers-desktop:1.9.10" type="repository">
<properties maven-id="com.badlogicgames.gdx:gdx-controllers-desktop:1.9.10" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-desktop-1.9.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-1.9.10.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-desktop-1.9.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-1.9.10-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-desktop-1.9.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-1.9.10-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,18 +0,0 @@
<component name="libraryTable">
<library name="com.badlogicgames.gdx:gdx-controllers-platform:1.9.10" type="repository">
<properties maven-id="com.badlogicgames.gdx:gdx-controllers-platform:1.9.10" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-platform-1.9.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-1.9.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-1.9.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-1.9.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.9.10-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,10 +0,0 @@
<component name="libraryTable">
<library name="com.badlogicgames.gdx:gdx-platform:1.9.10" type="repository">
<properties maven-id="com.badlogicgames.gdx:gdx-platform:1.9.10" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-platform-1.9.10.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="commons-codec:commons-codec:1.15" type="repository">
<properties maven-id="commons-codec:commons-codec:1.15" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/commons-codec-1.15.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/commons-codec-1.15-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/commons-codec-1.15-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="gdx-controllers-core-2.2.1">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-core-2.2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-core-2.2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-core-2.2.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="gdx-controllers-desktop-2.2.1">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-desktop-2.2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-desktop-2.2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/gdx-controllers-desktop-2.2.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="gdx-platform-1.12.1-natives-arm64-v8a">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-platform-1.12.1-natives-arm64-v8a.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-platform-1.12.1-natives-desktop.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-platform-1.12.1-natives-x86_64.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="github.wendykierp.JTransforms" type="repository">
<properties maven-id="com.github.wendykierp:JTransforms:3.1" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/JTransforms-3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/JLargeArrays-1.5.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/JTransforms-3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/JLargeArrays-1.5-sources.jar!/" />
</SOURCES>
</library>
</component>

52
.idea/libraries/graalvm_js_22_3_1.xml generated Normal file
View File

@@ -0,0 +1,52 @@
<component name="libraryTable">
<library name="graalvm-js 23.1.10">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/polyglot-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/icu4j-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-language-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-scriptengine-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/regex-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-api-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-runtime-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-compiler-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/compiler-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/compiler-management-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/collections-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/word-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/nativeimage-23.1.10.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jniutils-23.1.10.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/polyglot-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/icu4j-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-language-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-scriptengine-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/regex-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-api-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-runtime-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-compiler-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/compiler-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/compiler-management-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/collections-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/word-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/nativeimage-23.1.10-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jniutils-23.1.10-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/polyglot-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/icu4j-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-language-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-scriptengine-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/regex-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-api-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-runtime-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-compiler-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/compiler-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/compiler-management-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/collections-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/word-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/nativeimage-23.1.10-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jniutils-23.1.10-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="io.airlift.aircompressor" type="repository">
<properties maven-id="io.airlift:aircompressor:2.0.2" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/aircompressor-2.0.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/aircompressor-2.0.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/aircompressor-2.0.2-sources.jar!/" />
</SOURCES>
</library>
</component>

14
.idea/libraries/io_github_classgraph.xml generated Normal file
View File

@@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="io.github.classgraph" type="repository">
<properties maven-id="io.github.classgraph:classgraph:4.8.157" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/classgraph-4.8.157.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/classgraph-4.8.157-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/classgraph-4.8.157-sources.jar!/" />
</SOURCES>
</library>
</component>

13
.idea/libraries/jxinput_1_0_0.xml generated Normal file
View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="jxinput-1.0.0">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/jxinput-1.0.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/jxinput-1.0.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/jxinput-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,20 +0,0 @@
<component name="libraryTable">
<library name="lib">
<CLASSES>
<root url="file://$PROJECT_DIR$/lib" />
</CLASSES>
<JAVADOC>
<root url="http://libgdx.badlogicgames.com/nightlies/docs/api/" />
<root url="https://libgdx.badlogicgames.com/ci/nightlies/docs/api/" />
</JAVADOC>
<NATIVE>
<root url="file://$PROJECT_DIR$/lib" />
</NATIVE>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/Terrarum_Joise.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/TerrarumSansBitmap.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/prtree.jar!/" />
</SOURCES>
<jarDirectory url="file://$PROJECT_DIR$/lib" recursive="false" />
</library>
</component>

View File

@@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="org.apache.commons:commons-csv:1.8" type="repository">
<properties maven-id="org.apache.commons:commons-csv:1.8" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/commons-csv-1.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/commons-csv-1.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/commons-csv-1.8-sources.jar!/" />
</SOURCES>
</library>
</component>

11
.idea/libraries/prtree.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="prtree">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/prtree.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/prtree.jar!/" />
</SOURCES>
</library>
</component>

5
.idea/misc.xml generated
View File

@@ -38,7 +38,10 @@
<property name="caretWidth" class="java.lang.Integer" />
</properties>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="1.8.0_242" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="SuppressKotlinCodeStyleNotification">
<option name="disableForAll" value="true" />
</component>
</project>

8
.idea/modules.xml generated
View File

@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ModuleRenamingHistory">
<module old-name="terrarum" new-name="TerrarumBuild" />
</component>
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/ingamemodule_basegame/ingamemodule_basegame.iml" filepath="$PROJECT_DIR$/ingamemodule_basegame/ingamemodule_basegame.iml" />
<module fileurl="file://$PROJECT_DIR$//terrarum.iml" filepath="$PROJECT_DIR$//terrarum.iml" group="terrarum" />
<module fileurl="file://$PROJECT_DIR$/ModuleComputers/ModuleComputers.iml" filepath="$PROJECT_DIR$/ModuleComputers/ModuleComputers.iml" />
<module fileurl="file://$PROJECT_DIR$/MusicPlayer/MusicPlayer.iml" filepath="$PROJECT_DIR$/MusicPlayer/MusicPlayer.iml" />
<module fileurl="file://$PROJECT_DIR$/TerrarumBuild.iml" filepath="$PROJECT_DIR$/TerrarumBuild.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,10 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Build Version Number" type="Application" factoryName="Application">
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<option name="MAIN_CLASS_NAME" value="net.torvald.terrarum.PrebuildKt" />
<module name="TerrarumBuild" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>

19
.idea/runConfigurations/Principii.xml generated Normal file
View File

@@ -0,0 +1,19 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Principii" type="Application" factoryName="Application" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="net.torvald.terrarum.Principii" />
<module name="TerrarumBuild" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="net.torvald.terrarum.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="BuildArtifacts" enabled="true">
<artifact name="ModuleComputers" />
<artifact name="TerrarumBuild" />
</option>
<option name="Make" enabled="true" />
</method>
</configuration>
</component>

View File

@@ -0,0 +1,10 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="QuickDirtyLint" type="Application" factoryName="Application">
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<option name="MAIN_CLASS_NAME" value="net.torvald.terrarum.QuickDirtyLintKt" />
<module name="TerrarumBuild" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>

View File

@@ -0,0 +1,14 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="SpriteAssemblerApp" type="JarApplication">
<option name="JAR_PATH" value="$PROJECT_DIR$/out/SpriteAssemblerApp.jar" />
<option name="VM_PARAMETERS" value="-ea --upgrade-module-path=lib/compiler-23.1.10.jar:lib/compiler-management-23.1.10.jar:lib/truffle-compiler-23.1.10.jar:lib/truffle-api-23.1.10.jar:lib/truffle-runtime-23.1.10.jar:lib/polyglot-23.1.10.jar:lib/collections-23.1.10.jar:lib/word-23.1.10.jar:lib/nativeimage-23.1.10.jar:lib/jniutils-23.1.10.jar -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --add-exports=java.base/jdk.internal.misc=jdk.internal.vm.compiler" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<module name="TerrarumBuild" />
<method v="2">
<option name="BuildArtifacts" enabled="true">
<artifact name="SpriteAssemblerApp" />
</option>
</method>
</configuration>
</component>

18
.idea/runConfigurations/Terrarum.xml generated Normal file
View File

@@ -0,0 +1,18 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Terrarum" type="JarApplication">
<option name="JAR_PATH" value="$PROJECT_DIR$/out/TerrarumBuild.jar" />
<option name="VM_PARAMETERS" value="-ea --upgrade-module-path=lib/compiler-23.1.10.jar:lib/compiler-management-23.1.10.jar:lib/truffle-compiler-23.1.10.jar:lib/truffle-api-23.1.10.jar:lib/truffle-runtime-23.1.10.jar:lib/polyglot-23.1.10.jar:lib/collections-23.1.10.jar:lib/word-23.1.10.jar:lib/nativeimage-23.1.10.jar:lib/jniutils-23.1.10.jar -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --add-exports=java.base/jdk.internal.misc=jdk.internal.vm.compiler -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<module name="TerrarumBuild" />
<method v="2">
<option name="RunConfigurationTask" enabled="true" run_configuration_name="Build Version Number" run_configuration_type="Application" />
<option name="BuildArtifacts" enabled="true">
<artifact name="ModuleComputers" />
<artifact name="MusicPlayer" />
<artifact name="TerrarumBuild" />
</option>
<option name="RunConfigurationTask" enabled="false" run_configuration_name="QuickDirtyLint" run_configuration_type="Application" />
</method>
</configuration>
</component>

View File

@@ -0,0 +1,17 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Terrarum (no DEV MODE)" type="JarApplication">
<option name="JAR_PATH" value="$PROJECT_DIR$/out/TerrarumBuild.jar" />
<option name="VM_PARAMETERS" value="--upgrade-module-path=lib/compiler-23.1.10.jar:lib/compiler-management-23.1.10.jar:lib/truffle-compiler-23.1.10.jar:lib/truffle-api-23.1.10.jar:lib/truffle-runtime-23.1.10.jar:lib/polyglot-23.1.10.jar:lib/collections-23.1.10.jar:lib/word-23.1.10.jar:lib/nativeimage-23.1.10.jar:lib/jniutils-23.1.10.jar -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --add-exports=java.base/jdk.internal.misc=jdk.internal.vm.compiler -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<module name="TerrarumBuild" />
<method v="2">
<option name="RunConfigurationTask" enabled="true" run_configuration_name="Build Version Number" run_configuration_type="Application" />
<option name="BuildArtifacts" enabled="true">
<artifact name="ModuleComputers" />
<artifact name="TerrarumBuild" />
</option>
<option name="RunConfigurationTask" enabled="true" run_configuration_name="QuickDirtyLint" run_configuration_type="Application" />
</method>
</configuration>
</component>

View File

@@ -0,0 +1,16 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Terrarum (no prebuild, release-mode assets)" type="JarApplication">
<option name="JAR_PATH" value="$PROJECT_DIR$/out/TerrarumBuild.jar" />
<option name="VM_PARAMETERS" value="-ea --upgrade-module-path=lib/compiler-23.1.10.jar:lib/compiler-management-23.1.10.jar:lib/truffle-compiler-23.1.10.jar:lib/truffle-api-23.1.10.jar:lib/truffle-runtime-23.1.10.jar:lib/polyglot-23.1.10.jar:lib/collections-23.1.10.jar:lib/word-23.1.10.jar:lib/nativeimage-23.1.10.jar:lib/jniutils-23.1.10.jar -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI --add-exports=java.base/jdk.internal.misc=jdk.internal.vm.compiler -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd" />
<option name="PROGRAM_PARAMETERS" value="--assets buildapp/out/assets.tevd" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<module name="TerrarumBuild" />
<method v="2">
<option name="BuildArtifacts" enabled="true">
<artifact name="TerrarumBuild" />
</option>
<option name="RunConfigurationTask" enabled="false" run_configuration_name="QuickDirtyLint" run_configuration_type="Application" />
</method>
</configuration>
</component>

1
.idea/vcs.xml generated
View File

@@ -2,5 +2,6 @@
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/Terrarum.wiki" vcs="Git" />
</component>
</project>

176
CLAUDE.md Normal file
View File

@@ -0,0 +1,176 @@
# Terrarum
A modular 2D side-scrolling tilemap platformer engine and game, built on LibGDX with Kotlin/Java. GPL-3.0.
## Build & Run
- **IDE**: IntelliJ IDEA (project files: `Terrarum_renewed.iml`, `TerrarumBuild.iml`)
- **JDK**: 21
- **Language**: Kotlin + Java mixed; Kotlin is primary, `App.java` and `FrameBufferManager.java` are Java
- **Dependencies**: All libraries are in `lib/` (fat-jar approach, no Maven/Gradle). Includes LibGDX, GraalVM JS (modified), dyn4j (Vector2 only), custom bitmap font lib
- **Entry point**: `net.torvald.terrarum.Principii.main()` (Java) which launches `App` (the LibGDX `ApplicationListener`)
- **Distribution**: `buildapp/` scripts produce per-platform bundles with jlink'd runtimes
- **Assets**: `assets/` for development, `assets_release/` for distribution. Custom `.tevd` archive format for release assets (`AssetCache.kt`)
## Project Structure
```
src/net/torvald/terrarum/
App.java -- Main application class (LibGDX ApplicationListener). GL thread, render loop, splash screen
CommonResourcePool.kt -- Thread-safe GL resource loading with dispatch queues
ModMgr.kt -- Module manager. Scans/loads game modules, provides getGdxFile/getJavaClass
IngameInstance.kt -- Base class for game screens (show/hide/render/resize lifecycle)
Terrarum.kt -- Game-level singleton (ingame instance management, extension functions)
GameUpdateGovernor.kt -- Update/render tick governors (ConsistentUpdateRate, Anarchy)
MusicService.kt -- Music playback management
modulebasegame/
EntryPoint.kt -- Basegame module entry point (registers items, fixtures, blocks, weather)
TitleScreen.kt -- Title screen (demo world rendering, async loading)
TerrarumIngame.kt -- Main gameplay screen
IngameRenderer.kt -- World rendering pipeline (FBO composition, lightmap, blur, shadows)
BuildingMaker.kt -- Building editor screen
worlddrawer/
WorldCamera.kt -- Camera position tracking (follows player, interpolated movement)
LightmapRenderer.kt -- Per-tile RGB+UV light calculation and rasterisation
BlocksDrawer.kt -- Tile rendering
FeaturesDrawer.kt -- Wire/feature overlay rendering
gamecontroller/
IME.kt -- Input Method Engine (GraalVM JS keyboard layouts, loaded on daemon thread)
weather/
WeatherMixer.kt -- Weather state machine, skybox rendering
SkyboxModelHosek.kt -- Physically-based sky model
```
## Architecture: Threading & GL Dispatch
All OpenGL calls (Texture, ShaderProgram, FrameBuffer creation) **must** happen on the GL thread. The codebase uses a dispatch mechanism to safely create GL resources from background threads.
### CommonResourcePool (the dispatch hub)
```
Background Thread GL Thread (App.render)
| |
|-- addToLoadingList("name", { Texture() })|
|-- loadAll() |
| | |
| +-- if on GL thread: run directly |
| +-- if not: enqueue to |
| glDispatchQueue + latch.await() |
| CommonResourcePool.update()
| |-- poll glDispatchQueue
| | run loadfun, latch.countDown()
| |-- poll glRunnableQueue
| | run block, latch.countDown()
| |-- poll slowLoadingQueue (one per tick)
| |
+-- latch released, continues <------------+
```
Key methods:
- `loadAll()` -- batch load; blocks background thread until GL thread processes
- `loadAllSlowly()` -- timesliced; one resource per tick via `update()`
- `runOnGLThread { }` -- run arbitrary block on GL thread, blocking caller
- `update()` -- called every tick from `App.render()`, processes all queues
- `getOrPut(name, loadfun, killfun)` -- thread-safe get-or-create with GL dispatch
### App.java Boot Sequence
```
create()
-> postInit() [GL thread, synchronous]
|-- load shaders, fonts, audio device, IME
|-- CommonResourcePool.setGLThread(currentThread)
|-- spawn Terrarum-PostInitLoader thread:
| ModMgr.invoke() // module entry points (dispatched to GL via runOnGLThread)
| CommonResourcePool.loadAllSlowly() // timesliced resource loading
| loadingThreadDone = true
+-- return (non-blocking)
render() loop [GL thread]
while currentScreen == null:
|-- drawSplash()
|-- CommonResourcePool.update() // process GL dispatch queues
|-- when loadingThreadDone && loaded:
| postLoadInit() // tile atlas, audio mixer, Terrarum.initialise()
| setScreen(titleScreen) // transitions to title screen
```
### TitleScreen Async Loading
`TitleScreen.show()` returns immediately after starting a background thread. The splash screen continues displaying until all loading completes.
```
show()
|-- quick GL setup (viewport, input processor, FBO, savegame list)
|-- spawn Terrarum-TitleScreenLoader thread:
| load demo world, compute camera nodes, bogoflops, audio reset
| backgroundLoadDone = true
+-- return
renderImpl() [GL thread, every frame]
if !loadDone:
|-- App.drawSplash()
|-- processGLLoadStep() // state machine, one step per frame:
| 0: wait for backgroundLoadDone
| 1: SkyboxModelHosek.loadlut()
| 2: IngameRenderer.setRenderedWorld + WeatherMixer init
| 3: load halfgrad texture
| 4: UIFakeGradOverlay
| 5: UIFakeBlurOverlay
| 6: UIRemoCon
| 7: MusicService.enterScene, gameUpdateGovernor.reset(), loadDone=true
else:
normal title screen rendering (world + UI via IngameRenderer)
```
### IME Loading
`IME.kt` object `init {}` spawns a `Terrarum-IMELoader` daemon thread for GraalVM JS context binding and key layout/IME file scanning. Icon texture loading remains synchronous (requires GL thread).
### ModMgr Class Initialisation
`ModMgr.kt` object `init {}` only does metadata loading and class instantiation (fast). The heavy `invoke()` method runs entry points wrapped in `CommonResourcePool.runOnGLThread { }` to avoid GL calls on the wrong thread. This separation prevents `<clinit>` lock deadlocks where a background thread holding the class init lock blocks on a GL dispatch latch while the GL thread tries to access the same class.
## Architecture: Rendering Pipeline
### IngameRenderer
Singleton object. Lazily initialised on first `invoke()` call via `invokeInit()`.
Render path (per frame):
1. `LightmapRenderer.recalculate()` -- every 3 frames, computes per-tile RGBA light values
2. `prepLightmapRGBA()` -- Kawase blur on lightmap into `lightmapFbo`
3. `BlocksDrawer.renderData()` -- prepare tile draw data
4. `drawToRGB()` -- render world tiles + actors into `fboRGB` (with shadow FBOs)
5. `drawToA()` -- render alpha/glow channel
6. Composite: sky -> world -> light multiply -> emissive blend -> vibrancy -> UI
7. Output to `App.renderFBO`, then `TerrarumPostProcessor.draw()` applies final effects
**Critical ordering in `resize()`**: `BlocksDrawer.resize()` and `LightmapRenderer.resize()` must be called **before** `lightmapFbo` creation, because `lightmapFbo` dimensions derive from `LightmapRenderer.lightBuffer` size.
### WorldCamera
Follows an `ActorWithBody` (player or camera actor). Position interpolated per frame. `WorldCamera.x/y` = top-left corner of visible area. `gdxCamX/Y` = centre of visible area. `moveCameraToWorldCoord()` positions the IngameRenderer camera for world-space drawing; `setCameraPosition(0,0)` positions it for screen-space drawing.
### FBO Extension Functions
- `FrameBuffer.inAction(camera, batch) { }` -- bind FBO, set camera to FBO dimensions (Y-down), run block, restore camera to screen dimensions
- `FrameBuffer.inActionF(camera, batch) { }` -- same but Y-up (for flipped FBO content)
Both save/restore `camera.position` and call `setToOrtho` with `App.scr.wf/hf` on exit.
## Key Conventions
- **GL thread safety**: Any code creating `Texture`, `TextureRegion`, `TextureRegionPack`, `ShaderProgram`, `FrameBuffer`, or `Pixmap` must run on the GL thread. Use `CommonResourcePool.runOnGLThread { }` when on a background thread.
- **Kotlin `object` singletons**: First access triggers `<clinit>`. Keep `init {}` blocks fast (no blocking, no GL dispatch). Defer heavy work to explicit `invoke()` methods.
- **`ConcurrentHashMap` cannot store null values**. Use `HashMap` for maps that need nullable values (e.g. `poolKillFun`).
- **`@Volatile`** for cross-thread boolean flags (`loadDone`, `backgroundLoadDone`, etc.)
- **`lateinit var` guards**: Use `::prop.isInitialized` checks in `resize()` and `dispose()` for properties set during async loading steps.
- **`ConsistentUpdateRate`**: Accumulates delta time; may call `updateFunction` multiple times before `renderFunction`. Call `.reset()` before transitioning to active rendering to avoid catch-up storms.
- **Textures**: Use TGA format. Images with semitransparency must be TGA; opaque images may be PNG.
- **Coordinate system**: Y-down (camera `setToOrtho(true, ...)`). `setCameraPosition(0, 0)` places origin at screen top-left, which is not LibGDX nor OpenGL works natively, hence the existence of `FlippingSpriteBatch`. If the user reports renders are flipped vertically, try draw()/drawFlipped() accordingly.
- **ROUNDWORLD**: World wraps horizontally. `WorldCamera.x` uses `fmod worldWidth`. Lightmap and tile drawing account for wrapping.

View File

@@ -1,6 +1,4 @@
*Terrarum*
Copyright (C) 2013-2021 Minjae Song ("CuriousTorvald")
Copyright (C) 2013-2024 Minjae Song ("CuriousTorvald")
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -14,199 +12,3 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
----
*Terrarum Sans Bitmap*
Copyright (c) 2017-2020 Minjae Song ("CuriousTorvald") and the contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
----
*Simplex Noise Generator*, version 2012-03-09 by Stefan Gustavson
Released as public domain
----
*Joise*
Copyright (C) 2013 Jason Taylor
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*Accidental Noise Library*
Joise is a derivative work based on Josua Tippetts' C++ library:
<http://accidentalnoise.sourceforge.net/index.html>
Copyright (C) 2011 Joshua Tippetts
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
----
*Vector2.java*, *Epsilon.java*
Copyright (c) 2010-2015 William Bittle <http://www.dyn4j.org/>
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
and the following disclaimer in the documentation and/or other materials provided with the
distribution.
* Neither the name of dyn4j nor the names of its contributors may be used to endorse or
promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kotlin translated and modified code Copyright (C) 2016 Minjae Song ("CuriousTorvald")
----
Ambient sound recordings:
ambient_forest_01.ogg
ambient_meadow_01.ogg
ambient_windy_01.ogg
ambient_woods_01.ogg
crickets_01.ogg
crickets_02.ogg
Copyright (C) 2012, 2013, 2015, 2016, 2017 Klankbeeld
Sound from <http://www.freesound.org/people/klankbeeld/>
----
LuaJ
Copyright (c) 2007 LuaJ. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
----
PRTree, a Priority R-Tree, a spatial index for java code
Copyright (c) 2008-2012 Robert Olofsson.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the authors nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
----
Some of the resources were created by _raxod502_.
Copyright (c) 2016 Radon Rosborough
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="ModuleComputersLib" level="project" />
<orderEntry type="module" module-name="TerrarumBuild" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="graalvm-js 23.1.10" level="project" />
<orderEntry type="library" scope="PROVIDED" name="TerrarumSansBitmap" level="project" />
<orderEntry type="library" scope="PROVIDED" name="badlogicgames.gdx" level="project" />
<orderEntry type="library" scope="PROVIDED" name="badlogicgames.gdx.backend.lwjgl3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="io.airlift.aircompressor" level="project" />
<orderEntry type="library" name="gdx-platform-1.12.1-natives-arm64-v8a" level="project" />
<orderEntry type="library" name="TerranVirtualDisk" level="project" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
</component>
</module>

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,11 @@
/**
* Created by minjaesong on 2022-02-27.
*/
module ModuleComputers {
requires gdx;
requires Terrarum;
requires TerrarumSansBitmap;
requires kotlin.stdlib;
requires kotlin.coroutines.core;
requires TerrarumTSVM;
}

View File

@@ -0,0 +1,33 @@
package net.torvald.terrarum.modulecomputers
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.ItemSheet
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.ModuleEntryPoint
/**
* Created by minjaesong on 2021-12-03.
*/
class EntryPoint : ModuleEntryPoint() {
private val moduleName = "dwarventech"
override fun invoke() {
// load common resources to the AssetsManager
CommonResourcePool.addToLoadingList("$moduleName.items") {
ItemSheet(ModMgr.getGdxFile(moduleName, "items/items.tga"))
}
CommonResourcePool.loadAll()
ModMgr.GameItemLoader.invoke(moduleName)
ModMgr.GameBlockLoader.invoke(moduleName)
ModMgr.GameWatchdogLoader.register(moduleName, NetFrameWatchdog())
println("[${moduleName[0].toUpperCase()}${moduleName.substring(1)}] Dirtboard(tm) go drrrrr")
}
override fun dispose() {
}
}

View File

@@ -0,0 +1,17 @@
package net.torvald.terrarum.modulecomputers
import net.torvald.terrarum.App
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.modulebasegame.TerrarumWorldWatchdog
import net.torvald.terrarum.modulebasegame.gameworld.NetRunner
/**
* Created by minjaesong on 2025-03-02.
*/
class NetFrameWatchdog : TerrarumWorldWatchdog(App.TICK_SPEED * 60) {
override fun invoke(world: GameWorld) {
(world.extraFields["tokenring"] as? NetRunner)?.let {
it.purgeDeadFrames()
}
}
}

View File

@@ -0,0 +1,35 @@
package net.torvald.terrarum.modulecomputers.console
import com.badlogic.gdx.Gdx
import net.torvald.gdx.graphics.PixmapIO2
import net.torvald.spriteanimation.SpriteAnimation
import net.torvald.terrarum.App
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
* Created by minjaesong on 2022-02-27.
*/
internal object Dumpsprite : ConsoleCommand {
override fun execute(args: Array<String>) {
val player = Terrarum.ingame!!.actorNowPlaying!!.sprite!!
val field = SpriteAnimation::class.java.getDeclaredField("textureRegion")
field.isAccessible = true
val textureRegion = field.get(player) as TextureRegionPack
val texture = textureRegion.texture.textureData
val pixmap = texture.consumePixmap()
PixmapIO2.writeTGA(Gdx.files.absolute("${App.defaultDir}/Exports/PlayerTexture.tga"), pixmap, false)
}
override fun printUsage() {
Echo("A spear to test the ingame's shield")
}
}

View File

@@ -0,0 +1,135 @@
package net.torvald.terrarum.modulecomputers.gameactors
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.BlockBox
import net.torvald.terrarum.modulebasegame.gameactors.Electric
import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
* Created by minjaesong on 2025-03-30.
*/
class FixtureComputerConsole : Electric {
@Transient override val spawnNeedsStableFloor = true
@Transient override val spawnNeedsWall = false
constructor() : super(
BlockBox(BlockBox.ALLOW_MOVE_DOWN, 2, 2),
nameFun = { Lang["ITEM_COMPUTER_CONSOLE"] }
)
init {
val itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_operator_terminal.tga")
makeNewSprite(TextureRegionPack(itemImage.texture, 2*TILE_SIZE, 2*TILE_SIZE)).let {
it.setRowsAndFrames(1,1)
}
setWireSinkAt(0, 1, "io_bus")
setWireSinkAt(1, 1, "power_low")
}
}
/**
* Created by minjaesong on 2025-03-30.
*/
class FixtureComputerProcessor : Electric {
@Transient override val spawnNeedsStableFloor = true
@Transient override val spawnNeedsWall = false
constructor() : super(
BlockBox(BlockBox.ALLOW_MOVE_DOWN, 2, 3),
nameFun = { Lang["ITEM_COMPUTER_PROCESSOR"] }
)
init {
val itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_cpu.tga")
makeNewSprite(TextureRegionPack(itemImage.texture, 2*TILE_SIZE, 3*TILE_SIZE)).let {
it.setRowsAndFrames(1,1)
}
setWireSinkAt(0, 0, "memory_bus")
setWireSinkAt(0, 1, "serial")
setWireSinkAt(1, 1, "serial")
setWireSinkAt(0, 2, "io_bus")
setWireSinkAt(1, 2, "power_low")
}
}
/**
* Created by minjaesong on 2025-04-01.
*/
class FixtureNetworkInterface : Electric {
@Transient override val spawnNeedsStableFloor = true
@Transient override val spawnNeedsWall = false
constructor() : super(
BlockBox(BlockBox.ALLOW_MOVE_DOWN, 2, 3),
nameFun = { Lang["ITEM_NETWORK_INTERFACE"] }
)
init {
val itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_network_interface.tga")
makeNewSprite(TextureRegionPack(itemImage.texture, 2*TILE_SIZE, 3*TILE_SIZE)).let {
it.setRowsAndFrames(1,1)
}
setWireSinkAt(0, 0, "token_ring")
setWireSinkAt(1, 0, "token_ring")
setWireSinkAt(0, 2, "serial")
setWireSinkAt(1, 2, "power_low")
}
}
/**
* Created by minjaesong on 2025-04-01.
*/
class FixtureNetworkBridge : Electric {
@Transient override val spawnNeedsStableFloor = true
@Transient override val spawnNeedsWall = false
constructor() : super(
BlockBox(BlockBox.ALLOW_MOVE_DOWN, 2, 3),
nameFun = { Lang["ITEM_NETWORK_BRIDGE"] }
)
init {
val itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_network_bridge.tga")
makeNewSprite(TextureRegionPack(itemImage.texture, 2*TILE_SIZE, 3*TILE_SIZE)).let {
it.setRowsAndFrames(1,1)
}
setWireSinkAt(0, 0, "token_ring")
setWireSinkAt(1, 0, "token_ring")
setWireSinkAt(0, 1, "token_ring")
setWireSinkAt(1, 1, "token_ring")
setWireSinkAt(1, 2, "power_low")
}
}
/**
* Created by minjaesong on 2025-04-01.
*/
class FixtureMemoryCabinet : Electric {
@Transient override val spawnNeedsStableFloor = true
@Transient override val spawnNeedsWall = false
constructor() : super(
BlockBox(BlockBox.ALLOW_MOVE_DOWN, 2, 3),
nameFun = { Lang["ITEM_MEMORY_CABINET"] }
)
init {
val itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_memory_stack_1.tga")
makeNewSprite(TextureRegionPack(itemImage.texture, 1*TILE_SIZE, 3*TILE_SIZE)).let {
it.setRowsAndFrames(1,1)
}
setWireSinkAt(0, 0, "memory_bus")
}
}

View File

@@ -0,0 +1,125 @@
package net.torvald.terrarum.modulecomputers.gameactors
import com.badlogic.gdx.utils.Disposable
import net.torvald.terrarum.*
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.modulebasegame.gameactors.BlockBox
import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
import net.torvald.terrarum.modulecomputers.ui.UIHomeComputer
import net.torvald.tsvm.*
import net.torvald.tsvm.peripheral.AdapterConfig
import net.torvald.tsvm.peripheral.GraphicsAdapter
import net.torvald.tsvm.peripheral.VMProgramRom
/**
* Created by minjaesong on 2021-12-04.
*/
class FixtureHomeComputer : FixtureBase {
// TODO: write serialiser for TSVM && allow mods to have their own serialiser
private val vm = VM(ModMgr.getGdxFile("dwarventech", "bios").path(), 0x200000, TheRealWorld(), arrayOf(
VMProgramRom(ModMgr.getGdxFile("dwarventech", "bios/tsvmbios.js").path())
))
@Transient private lateinit var vmRunner: VMRunner
// @Transient private lateinit var coroutineJob: Job
@Transient private var vmStarted = false
@Transient private lateinit var disposableObj: Disposable
constructor() : super(
BlockBox(BlockBox.NO_COLLISION, 1, 1),
mainUI = UIHomeComputer(),
inventory = FixtureInventory(40, FixtureInventory.CAPACITY_MODE_COUNT),
nameFun = { "Computer" }
) {
density = 1400.0
setHitboxDimension(TerrarumAppConfiguration.TILE_SIZE, TerrarumAppConfiguration.TILE_SIZE, 0, 0)
makeNewSprite(FixtureBase.getSpritesheet("dwarventech", "sprites/fixtures/desktop_computer.tga", TILE_SIZE, TILE_SIZE)).let {
it.setRowsAndFrames(1,1)
}
actorValue[AVKey.BASEMASS] = 20.0
val gpu = GraphicsAdapter(ModMgr.getGdxFile("dwarventech", "gui").path(), vm, GRAPHICSCONFIG)
// vm.getIO().blockTransferPorts[0].attachDevice(TestDiskDrive(vm, 0, ...))
vm.peripheralTable[1] = PeripheralEntry(
gpu,
GraphicsAdapter.VRAM_SIZE,
16,
0
)
vm.getPrintStream = { gpu.getPrintStream() }
vm.getErrorStream = { gpu.getErrorStream() }
vm.getInputStream = { gpu.getInputStream() }
(mainUI as UIHomeComputer).vm = vm
(mainUI as UIHomeComputer).fixture = this
vmRunner = VMRunnerFactory(ModMgr.getGdxFile("dwarventech", "bios").path(), vm, "js")
}
fun startVM() {
/*if (!vmStarted) {
vmStarted = true
coroutineJob = GlobalScope.launch {
vmRunner.executeCommand(vm.roms[0]!!.readAll())
}
disposableObj = Disposable {
vmRunner.close()
coroutineJob.cancel("fixture disposal")
vm.dispose()
}
INGAME.disposables.add(disposableObj)
}*/
}
fun stopVM() {
/*if (vmStarted) {
vmStarted = false
vmRunner.close()
coroutineJob.cancel("fixture disposal")
vm.dispose()
INGAME.disposables.remove(disposableObj)
}*/
}
override fun reload() {
super.reload()
val gpu = GraphicsAdapter(ModMgr.getGdxFile("dwarventech", "gui").path(), vm, GRAPHICSCONFIG)
// vm.getIO().blockTransferPorts[0].attachDevice(TestDiskDrive(vm, 0, ...))
vm.peripheralTable[1] = PeripheralEntry(
gpu,
GraphicsAdapter.VRAM_SIZE,
16,
0
)
vm.getPrintStream = { gpu.getPrintStream() }
vm.getErrorStream = { gpu.getErrorStream() }
vm.getInputStream = { gpu.getInputStream() }
(mainUI as UIHomeComputer).vm = vm
(mainUI as UIHomeComputer).fixture = this
vmRunner = VMRunnerFactory(ModMgr.getGdxFile("dwarventech", "bios").path(), vm, "js")
}
companion object {
val GRAPHICSCONFIG = AdapterConfig(
"crt_color",
560, 448, 80, 32, 253, 255, 256 shl 10, "FontROM7x14.tga", 0.0f, GraphicsAdapter.TEXT_TILING_SHADER_COLOUR
)
}
}

View File

@@ -0,0 +1,289 @@
package net.torvald.terrarum.modulecomputers.gameactors
import com.badlogic.gdx.utils.Queue
import net.torvald.random.HQRNG
import net.torvald.terrarum.INGAME
import net.torvald.terrarum.Point2i
import net.torvald.terrarum.modulebasegame.gameactors.BlockBox
import net.torvald.terrarum.modulebasegame.gameactors.Electric
import net.torvald.terrarum.modulebasegame.gameworld.NetFrame
import net.torvald.terrarum.modulebasegame.gameworld.NetRunner
import net.torvald.terrarum.ui.UICanvas
import org.dyn4j.geometry.Vector2
import kotlin.math.sign
/**
* Created by minjaesong on 2025-03-01.
*/
open class FixtureRingBusCore : Electric {
@Transient private val rng = HQRNG()
val mac = rng.nextInt()
companion object {
const val INITIAL_LISTENING_TIMEOUT = 300
const val SIGNAL_TOO_WEAK_THRESHOLD = 1.0 / 16.0
}
private constructor() : super()
private var portEmit = Point2i(0, 0)
private var portSink = Point2i(1, 0)
constructor(portEmit: Point2i, portSink: Point2i, blockBox: BlockBox, nameFun: () -> String) : super(
blockBox0 = blockBox,
nameFun = nameFun,
) {
this.portEmit = portEmit
this.portSink = portSink
}
private fun setEmitterAndSink() {
clearStatus()
setWireEmitterAt(portEmit.x, portEmit.y, "10base2")
setWireSinkAt(portSink.x, portSink.y, "10base2")
}
init {
setEmitterAndSink()
if (!INGAME.world.extraFields.containsKey("tokenring")) {
INGAME.world.extraFields["tokenring"] = NetRunner()
}
}
override fun reload() {
super.reload()
setEmitterAndSink()
if (!INGAME.world.extraFields.containsKey("tokenring")) {
INGAME.world.extraFields["tokenring"] = NetRunner()
}
}
internal val msgQueue = Queue<Pair<Int, ByteArray>>()
internal val msgLog = Queue<Pair<Int, NetFrame>>()
private var statusAbort = false
private var activeMonitorStatus = 0 // 0: unknown, 1: known and not me, 2: known and it's me
private var lastAccessTime = -1L
open protected val ringBusFirmware = RingBusFirmware(0)
private enum class RingBusState {
NORMAL,
ABORT, // will "eat away" any receiving frames unless the frame is a ballot frame
ELECTING,
IVE_GOT_ELECTED
}
private var currentState = RingBusState.NORMAL
override fun updateSignal() {
val time_t = INGAME.world.worldTime.TIME_T
if (lastAccessTime == -1L) lastAccessTime = time_t
// monitor the input port
val inn = getWireStateAt(1, 0, "10base2")
// if a signal is there
if (inn.x >= SIGNAL_TOO_WEAK_THRESHOLD) {
lastAccessTime = time_t
val frameNumber = (inn.y + (0.5 * inn.y.sign)).toInt()
if (frameNumber != 0) { // frame number must be non-zero
processFrameBasedOnState(frameNumber)
} else {
setWireEmissionAt(portEmit.x, portEmit.y, Vector2())
}
} else {
handleNoSignal(time_t)
}
}
private fun processFrameBasedOnState(frameNumber: Int) {
try {
val frame = getFrameByNumber(frameNumber)
when (currentState) {
RingBusState.NORMAL -> handleNormalState(frame, frameNumber)
RingBusState.ABORT -> handleAbortState(frame, frameNumber)
RingBusState.ELECTING -> handleElectingState(frame, frameNumber)
RingBusState.IVE_GOT_ELECTED -> handleIveGotElectedState(frame, frameNumber)
}
} catch (e: NullPointerException) {
handleFrameLoss()
}
}
private fun handleNormalState(frame: NetFrame, frameNumber: Int) {
if (msgQueue.notEmpty() || frame.shouldIintercept(mac)) {
val newFrame = doSomethingWithFrame(frame) ?: frameNumber
setWireEmissionAt(portEmit.x, portEmit.y, Vector2(1.0, newFrame.toDouble()))
if (newFrame != frameNumber) {
frame.discardFrame()
}
} else {
setWireEmissionAt(portEmit.x, portEmit.y, Vector2(1.0, frameNumber.toDouble()))
}
}
private fun handleAbortState(frame: NetFrame, frameNumber: Int) {
if (frame.getFrameType() == "token") {
currentState = RingBusState.NORMAL
setWireEmissionAt(portEmit.x, portEmit.y, Vector2(1.0, frameNumber.toDouble()))
} else if (frame.getFrameType() == "abort") {
setWireEmissionAt(portEmit.x, portEmit.y, Vector2(1.0, frameNumber.toDouble()))
} else {
setWireEmissionAt(portEmit.x, portEmit.y, Vector2())
}
}
private fun handleElectingState(frame: NetFrame, frameNumber: Int) {
if (frame.getFrameType() == "ballot") {
if (frame.getBallot() < mac) {
frame.setBallot(mac)
}
if (frame.getSender() == mac && frame.getBallot() == mac) {
currentState = RingBusState.IVE_GOT_ELECTED
// elected Active Monitor sends out the first token
val newFrame = emitNewFrame(NetFrame.makeToken(mac))
setWireEmissionAt(portEmit.x, portEmit.y, Vector2(1.0, newFrame.toDouble()))
} else {
setWireEmissionAt(portEmit.x, portEmit.y, Vector2(1.0, frameNumber.toDouble()))
}
} else {
setWireEmissionAt(portEmit.x, portEmit.y, Vector2(1.0, frameNumber.toDouble()))
}
}
private fun handleIveGotElectedState(frame: NetFrame, frameNumber: Int) {
if (frame.getFrameType() == "abort") {
// immediately return to normal state
val newFrame = emitNewFrame(NetFrame.makeToken(mac))
currentState = RingBusState.NORMAL
setWireEmissionAt(portEmit.x, portEmit.y, Vector2(1.0, newFrame.toDouble()))
} else {
// make sure to skip a turn after the election, even if the NIC has something to send out
currentState = RingBusState.NORMAL
setWireEmissionAt(portEmit.x, portEmit.y, Vector2())
}
}
private fun handleFrameLoss() {
emitNewFrame(NetFrame.makeAbort(mac))
currentState = RingBusState.ABORT
}
private fun handleNoSignal(time_t: Long) {
setWireEmissionAt(portEmit.x, portEmit.y, Vector2())
if (time_t - lastAccessTime > INITIAL_LISTENING_TIMEOUT) {
currentState = RingBusState.ELECTING
emitNewFrame(NetFrame.makeBallot(mac))
lastAccessTime = time_t
}
}
protected fun doSomethingWithFrame(incomingFrame: NetFrame): Int? {
return when (incomingFrame.getFrameType()) {
"token" -> doSomethingWithToken(incomingFrame)
"data" -> doSomethingWithData(incomingFrame)
"ack" -> doSomethingWithAck(incomingFrame)
"ballot" -> doSomethingWithBallot(incomingFrame)
"abort" -> 0
else -> null /* returns the frame untouched */
}
}
private fun getFrameByNumber(number: Int) = (INGAME.world.extraFields["tokenring"] as NetRunner)[number]
private fun emitNewFrame(frame: NetFrame): Int {
return (INGAME.world.extraFields["tokenring"] as NetRunner).addFrame(frame).also {
setWireEmissionAt(portEmit.x, portEmit.y, Vector2(1.0, it.toDouble()))
}
}
protected fun doSomethingWithToken(incomingFrame: NetFrame): Int? {
if (msgQueue.isEmpty) return null
val (recipient, msgByte) = msgQueue.removeFirst()
return emitNewFrame(NetFrame.makeData(mac, recipient, msgByte))
}
protected fun doSomethingWithData(incomingFrame: NetFrame): Int? {
val rec = incomingFrame.getDataRecipient()
// if the message is for me, put incoming message into queue, then send out ack
if (rec == mac) {
msgLog.addLast(rec to incomingFrame)
val datagramme = incomingFrame.getDataContents()
val (ret, nextMsg) = if (datagramme == null) (-1 to null) else ringBusFirmware.workWithDataFrame(mac, datagramme)
// make ack
return emitNewFrame(NetFrame.makeAck(mac, incomingFrame.getSender(), ret))
}
else return null
}
protected fun doSomethingWithAck(incomingFrame: NetFrame): Int? {
if (msgQueue.isEmpty) return null
val topMsg = msgQueue.first()
// if the ACK is sent to me...
if (incomingFrame.getDataRecipient() == mac && incomingFrame.getSender() == topMsg.first) {
// ack or nak?
val successful = (incomingFrame.getAckStatus() == 0)
// if successful, remove the message from the queue, then send out empty token
// if failed, keep the message, then send out empty token anyway
if (successful) {
msgQueue.removeFirst()
}
// make an empty token
return emitNewFrame(NetFrame.makeToken(mac))
}
else return null
}
protected fun doSomethingWithBallot(incomingFrame: NetFrame): Int? {
val ballotStatus = incomingFrame.getFrameNumber()
// frame is in election phase
if (ballotStatus == 0) {
// if i'm also in the election phase, participate
if (activeMonitorStatus == 0) {
if (incomingFrame.getBallot() < mac) {
incomingFrame.setBallot(mac)
}
// check if the election must be finished
if (incomingFrame.getSender() == mac && incomingFrame.getBallot() == mac) {
activeMonitorStatus = 2
// send out first empty token
return emitNewFrame(NetFrame.makeToken(mac))
}
}
// if i'm in the winner announcement phase, kill the frame
else {
incomingFrame.discardFrame()
return 0
}
}
// frame is in winner announcement phase
else if (ballotStatus == 1) {
activeMonitorStatus = 1
}
return null
}
}

View File

@@ -0,0 +1,62 @@
package net.torvald.terrarum.modulecomputers.gameactors
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.App
import net.torvald.terrarum.Point2i
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.BlockBox
import net.torvald.terrarum.modulebasegame.gameworld.NetFrame.Companion.toMAC
import net.torvald.terrarum.modulecomputers.ui.UIRingBusAnalyser
import net.torvald.terrarum.modulecomputers.ui.UIRingBusExerciser
/**
* Created by minjaesong on 2025-03-03.
*/
class FixtureRingBusExerciser : FixtureRingBusCore {
constructor() : super(
portEmit = Point2i(0, 0),
portSink = Point2i(1, 0),
blockBox = BlockBox(BlockBox.NO_COLLISION, 2, 2),
nameFun = { Lang["ITEM_DEBUG_RING_BUS_EXERCISER"] }
) {
this.mainUI = UIRingBusExerciser(this)
}
override fun drawBody(frameDelta: Float, batch: SpriteBatch) {
super.drawBody(frameDelta, batch)
// draw its own MAC address
drawUsingDrawFunInGoodPosition(frameDelta) { x, y ->
App.fontSmallNumbers.draw(batch, super.mac.toMAC(), x, y + 2*TILE_SIZE - 12)
}
}
}
/**
* Created by minjaesong on 2025-03-03.
*/
class FixtureRingBusAnalyser : FixtureRingBusCore {
constructor() : super(
portEmit = Point2i(0, 0),
portSink = Point2i(1, 0),
blockBox = BlockBox(BlockBox.NO_COLLISION, 2, 1),
nameFun = { Lang["ITEM_DEBUG_RING_BUS_ANALYSER"] },
) {
this.mainUI = UIRingBusAnalyser(this)
}
override fun drawBody(frameDelta: Float, batch: SpriteBatch) {
super.drawBody(frameDelta, batch)
// draw its own MAC address
drawUsingDrawFunInGoodPosition(frameDelta) { x, y ->
App.fontSmallNumbers.draw(batch, super.mac.toMAC(), x, y + 1*TILE_SIZE - 12)
}
}
}

View File

@@ -0,0 +1,60 @@
package net.torvald.terrarum.modulecomputers.gameactors
import net.torvald.terrarum.serialise.*
open class RingBusFirmware(val devtype: Int) {
fun workWithDataFrame(hostMAC: Int, datagramme: ByteArray): Pair<Int, ByteArray?> {
if (datagramme.size < 12) return -1 to null
val protocol = datagramme[0].toUint()
val mode = datagramme[1].toUint()
val arg1 = datagramme.toBigInt16(2)
val recipient = datagramme.toBigInt32(4)
val sender = datagramme.toBigInt32(8)
val body = datagramme.sliceArray(12 until datagramme.size)
return invoke(hostMAC, protocol, mode, arg1, recipient, sender, body, datagramme)
}
open fun invoke(hostMAC: Int, protocol: Int, mode: Int, arg1: Int, recipient: Int, sender: Int, body: ByteArray, datagramme: ByteArray): Pair<Int, ByteArray?> {
return when (protocol) {
1 -> 0 to echo(recipient, sender, body)
2 -> 0 to blockTransfer(arg1, recipient, sender, body)
4 -> 0 to deviceDiscovery(hostMAC, datagramme)
else -> -1 to null
}
}
open fun echo(recipient: Int, sender: Int, body: ByteArray): ByteArray {
return ByteArray(8 + body.size).makeEmptyPacket(1, 1, 0, recipient, sender).also {
it.writeBigInt48(System.currentTimeMillis(), 12)
System.arraycopy(body, 6, this, 6, body.size - 6)
}
}
open fun blockTransfer(sequence: Int, recipient: Int, sender: Int, body: ByteArray): ByteArray {
return ByteArray(12).makeEmptyPacket(2, 1, sequence, recipient, sender) // always ACK
}
open fun deviceDiscovery(host: Int, wholeMessage: ByteArray): ByteArray {
return ByteArray(wholeMessage.size + 6).also {
System.arraycopy(wholeMessage, 0, it, 0, wholeMessage.size)
it[it.size - 5] = devtype.toByte()
it.writeBigInt32(host, it.size - 4)
}
}
private fun ByteArray.makeEmptyPacket(protocol: Int, mode: Int, arg1: Int, recipient: Int, sender: Int): ByteArray {
this[0] = protocol.toByte()
this[1] = mode.toByte()
this.writeBigInt16(arg1, 2)
this.writeBigInt32(recipient, 4)
this.writeBigInt32(sender, 8)
return this
}
}

View File

@@ -0,0 +1,89 @@
package net.torvald.terrarum.modulecomputers.gameitems
import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
/**
* Created by minjaesong on 2025-03-30.
*/
class ItemComputerConsole(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulecomputers.gameactors.FixtureComputerConsole") {
override var dynamicID: ItemID = originalID
override var baseMass = 80.0
override val canBeDynamic = false
override val materialId = "STAL"
init {
itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_operator_terminal.tga")
}
override var baseToolSize: Double? = baseMass
override var originalName = "ITEM_COMPUTER_CONSOLE"
}
/**
* Created by minjaesong on 2025-03-30.
*/
class ItemComputerProcessor(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulecomputers.gameactors.FixtureComputerProcessor") {
override var dynamicID: ItemID = originalID
override var baseMass = 200.0
override val canBeDynamic = false
override val materialId = "STAL"
init {
itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_cpu.tga")
}
override var baseToolSize: Double? = baseMass
override var originalName = "ITEM_COMPUTER_PROCESSOR"
}
/**
* Created by minjaesong on 2025-04-01.
*/
class ItemNetworkInterface(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulecomputers.gameactors.FixtureNetworkInterface") {
override var dynamicID: ItemID = originalID
override var baseMass = 200.0
override val canBeDynamic = false
override val materialId = "STAL"
init {
itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_network_interface.tga")
}
override var baseToolSize: Double? = baseMass
override var originalName = "ITEM_NETWORK_INTERFACE"
}
/**
* Created by minjaesong on 2025-04-01.
*/
class ItemNetworkBridge(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulecomputers.gameactors.FixtureNetworkBridge") {
override var dynamicID: ItemID = originalID
override var baseMass = 200.0
override val canBeDynamic = false
override val materialId = "STAL"
init {
itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_network_bridge.tga")
}
override var baseToolSize: Double? = baseMass
override var originalName = "ITEM_NETWORK_BRIDGE"
}
/**
* Created by minjaesong on 2025-04-01.
*/
class ItemMemoryCabinet(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulecomputers.gameactors.FixtureMemoryCabinet") {
override var dynamicID: ItemID = originalID
override var baseMass = 80.0
override val canBeDynamic = false
override val materialId = "STAL"
init {
itemImage = FixtureItemBase.getItemImageFromSingleImage("dwarventech", "sprites/fixtures/computer_memory_stack_1.tga")
}
override var baseToolSize: Double? = baseMass
override var originalName = "ITEM_MEMORY_CABINET"
}

View File

@@ -0,0 +1,29 @@
package net.torvald.terrarum.modulecomputers.gameitems
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.TerrarumAppConfiguration
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.gameitems.mouseInInteractableRange
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
import net.torvald.terrarum.modulecomputers.gameactors.FixtureHomeComputer
/**
* Created by minjaesong on 2021-12-04.
*/
class ItemHomeComputer(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulecomputers.gameactors.FixtureHomeComputer") {
override var dynamicID: ItemID = originalID
override var baseMass = 20.0
override val canBeDynamic = false
override val materialId = ""
init {
itemImage = FixtureItemBase.getItemImageFromSheet("dwarventech", "sprites/fixtures/desktop_computer.tga", TerrarumAppConfiguration.TILE_SIZE, TerrarumAppConfiguration.TILE_SIZE)
}
override var baseToolSize: Double? = baseMass
override var originalName = "ITEM_DESKTOP_COMPUTER"
}

View File

@@ -0,0 +1,150 @@
package net.torvald.terrarum.modulecomputers.gameitems
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.g2d.TextureRegion
import com.badlogic.gdx.utils.Disposable
import net.torvald.terrarum.*
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
import net.torvald.terrarum.modulecomputers.tsvmperipheral.WorldRadar
import net.torvald.terrarum.ui.Toolkit
import net.torvald.terrarum.ui.UICanvas
import net.torvald.tsvm.*
import net.torvald.tsvm.peripheral.ExtDisp
import net.torvald.tsvm.peripheral.VMProgramRom
/**
* Created by minjaesong on 2021-12-03.
*/
class ItemWearableWorldRadar(originalID: String) {// : GameItem(originalID) {
/*
override var dynamicID: ItemID = originalID
override val originalName = "ITEM_COMPUTER_DIRTBOARD_FAKETM"
override var baseMass = 2.0
override var stackable = true
override var inventoryCategory = Category.TOOL
override val isUnique = false
override val isDynamic = true
override val materialId = ""
init {
itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/signal_source.tga")
}
override var baseToolSize: Double? = baseMass
private val vm = VM(ModMgr.getGdxFile("dwarventech", "bios").path(), 73728, TheRealWorld(), arrayOf(
VMProgramRom(ModMgr.getGdxFile("dwarventech", "bios/pipboot.rom").path()),
VMProgramRom(ModMgr.getGdxFile("dwarventech", "bios/pipcode.bas").path())
))
private val ui = WearableWorldRadarUI(vm)
// FIXME initialise computer stuff when the Item is first used, not when it's registered by the Modmgr
init {
super.equipPosition = EquipPosition.HAND_GRIP
}
private var booted = false
private var disposed = false
private lateinit var vmRunner: VMRunner
private lateinit var coroutineJob: Job
init {
App.disposables.add(ui)
}
private fun boot() {
vm.getIO().blockTransferPorts[1].attachDevice(WorldRadar())
vm.peripheralTable[1] = PeripheralEntry(
ExtDisp(vm, 160, 140), 32768, 1, 0
)
// MMIO stops working when somethingStream is not defined
vm.getPrintStream = { System.out }
vm.getErrorStream = { System.err }
vm.getInputStream = { System.`in` }
vmRunner = VMRunnerFactory(ModMgr.getGdxFile("dwarventech", "bios").path(), vm, "js")
coroutineJob = GlobalScope.launch {
vmRunner.executeCommand(vm.roms[0]!!.readAll())
}
INGAME.disposables.add(Disposable {
closeVM()
})
booted = true
}
private fun closeVM() {
if (!disposed) {
vmRunner.close()
coroutineJob.cancel("item disposal")
vm.dispose()
}
disposed = true
booted = false
}
override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) {
if (!booted) {
booted = true
boot()
}
(Terrarum.ingame!! as TerrarumIngame).wearableDeviceUI = ui
}
override fun effectOnUnequip(actor: ActorWithBody, delta: Float) {
(Terrarum.ingame!! as TerrarumIngame).wearableDeviceUI = null
closeVM()
}
*/
}
class WearableWorldRadarUI(val device: VM) : UICanvas() {
override var width = 160
override var height = 140
override var openCloseTime = 0f
override fun updateImpl(delta: Float) {
device.update(delta)
}
override fun renderImpl(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera) {
batch.end()
batch.color = Color.WHITE
(device.peripheralTable[1].peripheral as? ExtDisp)?.render(batch, posX.toFloat(), posY.toFloat())
batch.begin()
batch.color = Toolkit.Theme.COL_INACTIVE
Toolkit.drawBoxBorder(batch, posX - 1, posY - 1, width + 2, height + 2)
}
override fun doOpening(delta: Float) {
}
override fun doClosing(delta: Float) {
}
override fun endOpening(delta: Float) {
}
override fun endClosing(delta: Float) {
}
override fun dispose() {
}
}

View File

@@ -0,0 +1,79 @@
package net.torvald.terrarum.modulecomputers.gameitems
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.WireCodex
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameitems.FixtureInteractionBlocked
import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.modulebasegame.gameitems.BlockBase
/**
* Created by minjaesong on 2025-03-30.
*/
class WirePieceNetworkBus(originalID: ItemID, private val atlasID: String, private val sheetX: Int, private val sheetY: Int)
: GameItem(originalID), FixtureInteractionBlocked {
override var dynamicID: ItemID = originalID
override var baseMass = 0.001
override var baseToolSize: Double? = null
override var inventoryCategory = Category.WIRE
override val canBeDynamic = false
override val materialId = ""
init {
itemImage = CommonResourcePool.getAsItemSheet(atlasID).get(sheetX, sheetY)
}
init {
equipPosition = GameItem.EquipPosition.HAND_GRIP
originalName = "ITEM_NETWORK_BUS_WIRE"
tags.addAll(WireCodex[originalID].tags)
}
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
return BlockBase.wireStartPrimaryUse(actor,this, delta)
}
override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) {
BlockBase.wireEffectWhenEquipped(this, delta)
}
override fun effectOnUnequip(actor: ActorWithBody) {
BlockBase.wireEffectWhenUnequipped(this)
}
}
/**
* Created by minjaesong on 2025-03-30.
*/
class WirePieceIOBus(originalID: ItemID, private val atlasID: String, private val sheetX: Int, private val sheetY: Int)
: GameItem(originalID), FixtureInteractionBlocked {
override var dynamicID: ItemID = originalID
override var baseMass = 0.001
override var baseToolSize: Double? = null
override var inventoryCategory = Category.WIRE
override val canBeDynamic = false
override val materialId = ""
init {
itemImage = CommonResourcePool.getAsItemSheet(atlasID).get(sheetX, sheetY)
}
init {
equipPosition = GameItem.EquipPosition.HAND_GRIP
originalName = "ITEM_IO_BUS_WIRE"
tags.addAll(WireCodex[originalID].tags)
}
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
return BlockBase.wireStartPrimaryUse(actor,this, delta)
}
override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) {
BlockBase.wireEffectWhenEquipped(this, delta)
}
override fun effectOnUnequip(actor: ActorWithBody) {
BlockBase.wireEffectWhenUnequipped(this)
}
}

View File

@@ -0,0 +1,137 @@
package net.torvald.terrarum.modulecomputers.tsvmperipheral
import net.torvald.terrarum.Point2i
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.blockproperties.Block
import net.torvald.tsvm.VM
import net.torvald.tsvm.peripheral.BlockTransferInterface
import net.torvald.tsvm.peripheral.TestDiskDrive
import net.torvald.tsvm.peripheral.trimNull
import java.io.ByteArrayOutputStream
/**
* Created by minjaesong on 2021-12-02.
*/
class WorldRadar : BlockTransferInterface(false, true) {
private val W = 160
private val H = 140
private val AIR_OUT = 0.toByte()
private val GRASS_OUT = 2.toByte()
private val DIRT_OUT = 4.toByte()
private val STONE_OUT = 7.toByte()
init {
statusCode = TestDiskDrive.STATE_CODE_STANDBY
}
private val messageComposeBuffer = ByteArrayOutputStream(BLOCK_SIZE) // always use this and don't alter blockSendBuffer please
private var blockSendBuffer = ByteArray(1)
private var blockSendCount = 0
private fun resetBuf() {
blockSendCount = 0
messageComposeBuffer.reset()
}
override fun hasNext(): Boolean {
return (blockSendCount * BLOCK_SIZE < blockSendBuffer.size)
}
override fun startSendImpl(recipient: BlockTransferInterface): Int {
if (blockSendCount == 0) {
blockSendBuffer = messageComposeBuffer.toByteArray()
}
val sendSize = if (blockSendBuffer.size - (blockSendCount * BLOCK_SIZE) < BLOCK_SIZE)
blockSendBuffer.size % BLOCK_SIZE
else BLOCK_SIZE
recipient.writeout(ByteArray(sendSize) {
blockSendBuffer[blockSendCount * BLOCK_SIZE + it]
})
blockSendCount += 1
return sendSize
}
private var oldCmdbuf = HashMap<Int,Byte>(1024)
private fun getNearbyTilesPos(x: Int, y: Int): Array<Point2i> {
return arrayOf(
Point2i(x + 1, y),
Point2i(x, y + 1),
Point2i(x - 1, y),
Point2i(x, y - 1),
)
}
override fun writeoutImpl(inputData: ByteArray) {
val inputString = inputData.trimNull().toString(VM.CHARSET)
// prepare draw commands
/*
* draw command format:
*
* <Y> <X> <COL>
*
* marking rules:
*
* : exposed = has at least 1 nonsolid on 4 sides
*
* 1. exposed grass -> 2
* 2. exposed dirt -> 4
* 3. exposed stone -> 7
* 4. stone exposed to dirt/grass -> 7
*/
if (inputString.startsWith("POLL")) {
resetBuf()
val cmdbuf = HashMap<Int,Byte>(1024)
Terrarum.ingame?.let { ingame -> ingame.actorNowPlaying?.let {
val px = it.intTilewiseHitbox.canonicalX.toInt()
val py = it.intTilewiseHitbox.canonicalY.toInt()
for (yy in 1..H) {
for (xx in 1..W) {
val tx = px - (W/2) + xx
val ty = py - (H/2) + yy
val yx = (yy - 1).shl(8) or xx
val nearby = getNearbyTilesPos(tx, ty).map { ingame.world.getTileFromTerrain(it.x, it.y) } // up, left, right, down
val block = ingame.world.getTileFromTerrain(tx, ty)
val blockprop = Terrarum.blockCodex[block]
if (blockprop.isSolid) {
// TODO create extension function nearby.contains { predicate :: ItemID -> Boolean }
// for some reason I can't use material?
if (block == Block.GRASS && nearby.contains(Block.AIR)) {
cmdbuf[yx] = GRASS_OUT
}
else if (block == Block.DIRT && nearby.contains(Block.AIR)) {
cmdbuf[yx] = DIRT_OUT
}
else if (block == Block.STONE && (nearby.contains(Block.AIR) || nearby.contains(Block.GRASS) || nearby.contains(Block.DIRT))) {
cmdbuf[yx] = STONE_OUT
}
}
}
}
(oldCmdbuf.keys union cmdbuf.keys).sorted().forEach { key ->
val value = (cmdbuf[key] ?: AIR_OUT).toInt()
val x = key % 256
val y = key / 256
messageComposeBuffer.write(y)
messageComposeBuffer.write(x)
messageComposeBuffer.write(value)
}
oldCmdbuf = cmdbuf
}}
}
}
}

View File

@@ -0,0 +1,90 @@
package net.torvald.terrarum.modulecomputers.ui
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.Input
import com.badlogic.gdx.graphics.*
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import net.torvald.terrarum.*
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulecomputers.gameactors.FixtureHomeComputer
import net.torvald.terrarum.ui.Toolkit
import net.torvald.terrarum.ui.UICanvas
import net.torvald.tsvm.VM
import net.torvald.tsvm.peripheral.GraphicsAdapter
import net.torvald.unicode.*
internal class UIHomeComputer : UICanvas(
toggleKeyLiteral = null,
toggleButtonLiteral = "control_gamepad_start",
) {
override var width = 640
override var height = 480
override var openCloseTime = 0f
private val drawOffX = (width - 560).div(2).toFloat()
private val drawOffY = (height - 448).div(2).toFloat()
private var batch: FlippingSpriteBatch
private var camera: OrthographicCamera
internal lateinit var vm: VM
internal lateinit var fixture: FixtureHomeComputer
init {
batch = FlippingSpriteBatch()
camera = OrthographicCamera(width.toFloat(), height.toFloat())
//val m = Matrix4()
//m.setToOrtho2D(0f, 0f, width.toFloat(), height.toFloat())
batch.projectionMatrix = camera.combined
}
private val fbo = FrameBuffer(Pixmap.Format.RGBA8888, width, height, false)
private val controlHelp =
"${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}\u3000 " +
"$KEYCAP_CTRL$KEYCAP_SHIFT$KEYCAP_T$KEYCAP_R Terminate\u3000" +
"$KEYCAP_CTRL$KEYCAP_SHIFT$KEYCAP_R$KEYCAP_S Reset\u3000" +
"$KEYCAP_CTRL$KEYCAP_SHIFT$KEYCAP_R$KEYCAP_Q SysRq"
override fun updateImpl(delta: Float) {
}
override fun renderImpl(frameDelta: Float, otherBatch: SpriteBatch, otherCamera: OrthographicCamera) {
otherBatch.end()
fbo.inAction(camera, batch) {
Gdx.gl.glClearColor(0f,0f,0f,1f)
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT) // to hide the crap might be there
(vm.peripheralTable[1].peripheral as? GraphicsAdapter)?.let { gpu ->
val clearCol = gpu.getBackgroundColour()
Gdx.gl.glClearColor(clearCol.r, clearCol.g, clearCol.b, clearCol.a)
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
gpu.render(Gdx.graphics.deltaTime, batch, drawOffX, drawOffY, true, fbo) // gpu.render will internally end() the fbo then begin() again before using the batch I've fed in
}
}
otherBatch.begin()
otherBatch.shader = null
blendNormalStraightAlpha(otherBatch)
otherBatch.color = Color.WHITE
otherBatch.draw(fbo.colorBufferTexture, posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
otherBatch.color = Toolkit.Theme.COL_INACTIVE
Toolkit.drawBoxBorder(otherBatch, posX - 1, posY - 1, width + 2, height + 2)
App.fontGame.draw(otherBatch, controlHelp, posX, posY + height + 4)
}
override fun doOpening(delta: Float) {
super.doOpening(delta)
fixture.startVM()
}
override fun dispose() {
fbo.dispose()
}
}

View File

@@ -0,0 +1,101 @@
package net.torvald.terrarum.modulecomputers.ui
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.App
import net.torvald.terrarum.ifNaN
import net.torvald.terrarum.modulecomputers.gameactors.FixtureRingBusCore
import net.torvald.terrarum.ui.UICanvas
import net.torvald.terrarum.ui.UIItemVertSlider
import net.torvald.terrarum.ui.Toolkit
import kotlin.math.roundToInt
class UIRingBusAnalyser(val host: FixtureRingBusCore) : UICanvas() {
override var width = Toolkit.drawWidth
override var height = App.scr.height
private val analyserPosX = 10
private val analyserPosY = 10
private val analyserWidth = width - 20
private val analyserHeight = height - 20
private val TEXT_LINE_HEIGHT = 24
private var analysisTextBuffer = ArrayList<String>()
private val analyserScroll = UIItemVertSlider(this,
analyserPosX - 18,
analyserPosY + 1,
0.0, 0.0, 1.0, analyserHeight - 2, analyserHeight - 2
)
init {
addUIitem(analyserScroll)
refreshAnalysis()
}
private fun refreshAnalysis() {
analysisTextBuffer.clear()
host.msgLog.forEach { frame ->
analysisTextBuffer.add(frame.toString())
}
// update scrollbar
analyserScroll.handleHeight = if (analysisTextBuffer.isEmpty())
analyserHeight
else
(analyserHeight.toFloat() / analysisTextBuffer.size.times(TEXT_LINE_HEIGHT))
.times(analyserHeight)
.roundToInt()
.coerceIn(12, analyserHeight)
}
private fun drawAnalysis(batch: SpriteBatch) {
val scroll = (analyserScroll.value * analysisTextBuffer.size.times(TEXT_LINE_HEIGHT)
.minus(analyserHeight - 3))
.ifNaN(0.0)
.roundToInt()
.coerceAtLeast(0)
analysisTextBuffer.forEachIndexed { index, s ->
App.fontGame.draw(batch, s,
analyserPosX + 6f,
analyserPosY + 3f + index * TEXT_LINE_HEIGHT - scroll
)
}
}
override fun updateImpl(delta: Float) {
refreshAnalysis()
uiItems.forEach { it.update(delta) }
}
override fun renderImpl(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera) {
// Draw background box
batch.color = Color(0x7F)
Toolkit.fillArea(batch, analyserPosX, analyserPosY, analyserWidth, analyserHeight)
batch.color = Toolkit.Theme.COL_INACTIVE
Toolkit.drawBoxBorder(batch, analyserPosX, analyserPosY, analyserWidth, analyserHeight)
// Draw text content
batch.color = Color.WHITE
drawAnalysis(batch)
// Draw UI elements
uiItems.forEach { it.render(frameDelta, batch, camera) }
}
override fun doOpening(delta: Float) {
refreshAnalysis()
}
override fun doClosing(delta: Float) {
// nothing needed
}
override fun dispose() {
}
}

View File

@@ -0,0 +1,101 @@
package net.torvald.terrarum.modulecomputers.ui
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.App
import net.torvald.terrarum.ifNaN
import net.torvald.terrarum.modulecomputers.gameactors.FixtureRingBusCore
import net.torvald.terrarum.ui.UICanvas
import net.torvald.terrarum.ui.UIItemVertSlider
import net.torvald.terrarum.ui.Toolkit
import kotlin.math.roundToInt
class UIRingBusExerciser(val host: FixtureRingBusCore) : UICanvas() {
override var width = Toolkit.drawWidth
override var height = App.scr.height
private val analyserPosX = 10
private val analyserPosY = 10
private val analyserWidth = width - 20
private val analyserHeight = height - 20
private val TEXT_LINE_HEIGHT = 24
private var analysisTextBuffer = ArrayList<String>()
private val analyserScroll = UIItemVertSlider(this,
analyserPosX - 18,
analyserPosY + 1,
0.0, 0.0, 1.0, analyserHeight - 2, analyserHeight - 2
)
init {
addUIitem(analyserScroll)
refreshAnalysis()
}
private fun refreshAnalysis() {
analysisTextBuffer.clear()
host.msgLog.forEach { frame ->
analysisTextBuffer.add(frame.toString())
}
// update scrollbar
analyserScroll.handleHeight = if (analysisTextBuffer.isEmpty())
analyserHeight
else
(analyserHeight.toFloat() / analysisTextBuffer.size.times(TEXT_LINE_HEIGHT))
.times(analyserHeight)
.roundToInt()
.coerceIn(12, analyserHeight)
}
private fun drawAnalysis(batch: SpriteBatch) {
val scroll = (analyserScroll.value * analysisTextBuffer.size.times(TEXT_LINE_HEIGHT)
.minus(analyserHeight - 3))
.ifNaN(0.0)
.roundToInt()
.coerceAtLeast(0)
analysisTextBuffer.forEachIndexed { index, s ->
App.fontGame.draw(batch, s,
analyserPosX + 6f,
analyserPosY + 3f + index * TEXT_LINE_HEIGHT - scroll
)
}
}
override fun updateImpl(delta: Float) {
refreshAnalysis()
uiItems.forEach { it.update(delta) }
}
override fun renderImpl(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera) {
// Draw background box
batch.color = Color(0x7F)
Toolkit.fillArea(batch, analyserPosX, analyserPosY, analyserWidth, analyserHeight)
batch.color = Toolkit.Theme.COL_INACTIVE
Toolkit.drawBoxBorder(batch, analyserPosX, analyserPosY, analyserWidth, analyserHeight)
// Draw text content
batch.color = Color.WHITE
drawAnalysis(batch)
// Draw UI elements
uiItems.forEach { it.render(frameDelta, batch, camera) }
}
override fun doOpening(delta: Float) {
refreshAnalysis()
}
override fun doClosing(delta: Float) {
// nothing needed
}
override fun dispose() {
}
}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="TerrarumBuild" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="badlogicgames.gdx" level="project" />
<orderEntry type="library" scope="PROVIDED" name="io.airlift.aircompressor" level="project" />
<orderEntry type="library" scope="PROVIDED" name="TerrarumSansBitmap" level="project" />
<orderEntry type="library" scope="PROVIDED" name="apache.commons.math3" level="project" />
<orderEntry type="library" name="gdx-platform-1.12.1-natives-arm64-v8a" level="project" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
</component>
</module>

View File

@@ -0,0 +1,18 @@
package net.torvald.terrarum.musicplayer
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.ModuleEntryPoint
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.musicplayer.gui.MusicPlayerControl
/**
* Created by minjaesong on 2023-12-23.
*/
class EntryPoint : ModuleEntryPoint() {
override fun invoke() {
ModMgr.GameExtraGuiLoader.register { ingame: TerrarumIngame -> MusicPlayerControl(ingame) }
}
override fun dispose() {
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,72 +1,50 @@
## Aperçu ##
This project is to create a side-view flatformer game, an attempt to create friendlier *Dwarf Fortress* adventurer mode, with more rogue-like stuff such as permanent death, randomness and *lots of fun*.
The goal of this project is to create a modular game engine that accommodates a 2D side-scrolling tilemap platformer, and a game that runs on top of it.
Backend used is LWJGL/Slick2D, frontend — the Engine — is custom-built. The repository contains both frontend and the actual game, as well as documentation for the backends.
The project is divided into two parts: **Terrarum the Game Engine** and **Terrarum the actual game**.
This project mainly uses Kotlin as a main language and Python/Lua for tools.
## Terrarum the Game Engine ##
Documentations and resources for work (such as .psd) are also included in the repository. You will need Mac computer to read and edit documentations in .gcx and .numbers format. (we're planning to change them)
This game engine aims to provide following features:
Any contribution in this project must be made sorely in English, Korean part is just there for my Korean friend; so be sure to use English in codes, comments, etc.
- Tiled lighting simulation with transmittance sim in full RGB and UV for fluorescence
- Corner Occlusion
- 2D Skeletal Sprite
- Built-in Mod support
- Simple AABB Physics
- Fluid simulation based on Cellular Automata
- Built-in multilingual font — please refer to [its own Repository](https://github.com/curioustorvald/Terrarum-sans-bitmap)
## Setup ##
## Terrarum the Actual Game ##
* Requirements:
- JDK 8 or higher
- Working copy of IntelliJ IDEA from JetBrains s.r.o., community edition is okay to use.
* Required libraries are included in the repository.
*Terrarum* is a side-view tilemap platformer-adventure-sandbox game.
## Player Setup ##
## The Engine ##
### System Requirements ###
Requires 64 bit processor and operation system.
| | Minimum | Recommended |
|---|---|---|
|OS|Windows 7/macOS Sierra/Ubuntu 16.04|Windows 10/macOS Big Sur/Linux with Kernel 5.4|
|CPU|AMD Phenom X4 9600/Intel Core 2 Duo E8400|AMD Ryzen 5 1500X/Intel Core i7-4770K/Apple M1|
|Memory|4 GB RAM|8 GB RAM|
|OpenGL|3.3|4.0|
|Graphics|GeForce 9600 GT|Anything that supports OpenGL 4.0|
|Storage|2 GB available|2 GB available but faster|
Please refer to [```THE_ENGINE.md```](THE_ENGINE.md).
- Playing the game on the Minimum Requirement is ill advised: framerate will be sub-20 and the world generation will take more than 10 minutes
## Development Environment ##
## Contribution guidelines ##
- Requirements:
- JDK 17 or higher
- IntelliJ IDEA Community Edition
Please refer to [```CONTRIBUTING.md```](CONTRIBUTING.md).
## Who do I talk to? ##
* Repo owner or admin
* Other community or team contact
## Tags ##
* Rogue-like
* Adventure
* Procedural Generation
* Open World
* Sandbox
* Survival
* (Crafting)
* 2D
* Singleplayer
* Platformer
* (Atmospheric)
* Indie
* Pixel Graphics
## Disclaim ##
Just in case, use this software at your own risk.
Kotlin runtimes must be downloaded using the IntelliJ IDEA. All other libraries are included in the repository.
The project uses GraalVM 23.1.10 for JavaScript execution (with the Graal JIT compiler enabled via `--upgrade-module-path`).
## Copyright ##
Copyright 2015-2016 Torvald (skyhi14 _at_ icloud _dot_ com). All rights reserved. This game is proprietary until things are completed enough to be playable.
## 개요 ##
이 변변한 이름 없는 프로젝트는 사이드뷰 발판 게임 형식으로 더 친절한 〈드워프 포트리스〉의 모험가 모드를 지향하는 게임 제작 프로젝트입니다. 영구 사망, 무작위성, __넘쳐나는 재미__와 같이 ‘로그라이크’스러운 요소를 지닙니다.
이 프로젝트는 주 언어로 코틀린을 사용하며 파이선·루아 등으로 작성된 툴을 이용합니다.
개발 문서와 작업용 리소스(psd 등) 또한 이 저장소에 포함되어 있습니다. gcx와 numbers 형식으로 된 문서를 읽고 수정하기 위해 맥 컴퓨터가 필요할 수 있습니다.
이 프로젝트에 대한 기여는 영어로 이루어져야 합니다. 따라서 코드나 주석 등을 작성할 때는 영어를 사용해 주십시오.
Please refer to [```COPYING.md```](COPYING.md) but it's mostly GPL 3.

View File

@@ -9,8 +9,9 @@ where Prefix is predefined (see below), Integer ID is arbitrarily chosen within
### Prefixes
|Name|Description|
|----|-----------|
|wall|Wall, only used by the Inventory to differentiate walls from blocks (therefore wall shares same "ID Space" with blocks/fluids/wires)|
|item|Item (Static), uses different "ID Space" with blocks/walls/fluids/wires|
|wall|Wall, only used by the Inventory to differentiate walls from blocks (therefore wall shares same "ID Space" with blocks)|
|item|Item (Static)|
|wire|Wires|
Notes:
- BlockCodex and ItemCodex will not store prefix part of the ID, as blocks and walls are identical in properties
@@ -43,7 +44,9 @@ Actor range in-depth
|0x1000_0000..0x1FFF_FFFF|Rendered behind (e.g. tapestries)|
|0x2000_0000..0x4FFF_FFFF|Regular actors (e.g. almost all of them)|
|0x5000_0000..0x5FFF_FFFF|Special (e.g. weapon swung, bullets, dropped item, particles)|
|0x6000_0000..0x6FFF_FFFF|Rendered front (e.g. fake tile)|
|0x6000_0000..0x6EFF_FFFF|Rendered front (e.g. fake tile)|
|0x6F00_0000..0x6FFE_FFFF|unassigned|
|0x6FFF_0000..0x6FFF_FFFF|Rendered front--wires|
|0x7000_0000..0x7FFF_FFFF|Rendered as screen overlay, not affected by light nor environment overlays|
Actor IDs are assigned in 256 groups, single actor can have 256 sub-actors
Actor IDs are assigned in 256 groups, single actor can have 256 sub-actors

View File

@@ -1,74 +0,0 @@
## Format ##
Contain everything on [TEVD](github.com/minjaesong/TerranVirtualDisk)
* Save meta
- binary
- Filename : world (with no extension)
|Type |Mnemonic |Description |
|----------|-----------|-----------------------------|
|Byte[4] |TESV |Magic |
|Byte[n] |name |Savegame name, UTF-8 |
|Byte |NULL |String terminator |
|Byte[8] |terraseed |Terrain seed |
|Byte[8] |rogueseed |Randomiser seed |
|Byte[4] |crc1 |CRC-32 of worldinfo1 entry |
|Byte[4] |crc2 |CRC-32 of worldinfo2 entry |
|Byte[4] |crc3 |CRC-32 of worldinfo3 entry |
|Byte[4] |crc4 |CRC-32 of worldinfo4 entry |
|Byte[32] |hash4321 |SHA-256 of crc4..crc3..crc2..crc1|
|Int |refid |Reference ID of the player |
|Long |time_t |Current world's time_t |
|Byte[6] |t_create |Creation time of the savefile in time_t|
|Byte[6] |t_lastacc |Last play time in time_t |
|Int |t_wasted |Total playtime in time_t |
Endianness: Big
each entry on the disk contains CRC of its data, we can compare CRC saved in meta && CRC of entry header && CRC of actual content
* Actor/Faction data
- GSON
- Filename : (refid) (with no extension)
* Prop data
- CSV
- Filename : (with no extension)
worldinfo2 -- tileprop
worldinfo3 -- itemprop
worldinfo4 -- materialprop
worldinfo5 -- modules loadorder
* Human-readable
- Tiles_list.txt -- list of tiles in csv
- Items_list.txt -- list of items in csv
- Materials_list.txt -- list of materials in csv
- load_order.txt -- module load order
## How it works ##
* If hash discrepancy has detected, (hash of csv in save dir != stored hash || hash of TEMD != stored hash), printout "Save file corrupted. Continue?" with prompt "Yes/No"
Directory:
+--- <save1.tevd>
--- 2a93bc5f (item ID) Actor/DynamicItem/Faction/etc. data (JSON)
--- 423bdc83 (item ID) Actor/DynamicItem/Faction/etc. data (JSON)
--- Items_list.txt Human-readable
--- Materials_list.txt Human-readable
--- Tiles_list.txt Human-readable
--- world save meta (binary)
--- worldinfo1 TEMD (binary)
--- worldinfo2 tileprop (CSV)
--- worldinfo3 itemprop (CSV)
--- worldinfo4 materialprop (CSV)
+--- computers
--- (UUID) virtual disk
+--- tapestries
--- (random Int) tapestry
Alongside with save1.tevd (extension should not exist in real game), keep save1.backup.tevd as a last-working save.

View File

@@ -1,26 +0,0 @@
## Minimum requirements ##
* Processor with 2.4 GHz speed
* GeForce MX 150
* 4 GB of RAM
* 4 GB of free disk space
* Windows Vista/Mac OS X Lion or higher (Mac OS X Snow Leopard is incompatible with a shader the game uses)
* PC: Java 8
## Recommended requirements ##
* Processor with 3.0 GHz speed, 4 threads available
* GPU that can support OpenGL 2.1, is capable of 4K texture
* 8 GB of RAM
* 8 GB of free disk space
* Windows Vista/Mac OS X Lion or higher
* PC: Java 8
## Tested environments ##
(to devs: please extend this list with your test results!)
* MacBookPro9,2 (MacBook Pro 13 inch mid-2012) -- shader don't work
* Intel 6700K, nVidia GTX970, Windows 10 -- fully works
* Intel 6600, nVidia GT 710, Windows 8 -- unplayable framerate
* Intel 8265U, Intel UHD620/nVidia MX 250, Windows 10 -- fully works with Intel iGPU (24 fps), fully works with MX 250 (66 fps)

32
TerrarumBuild.iml Normal file
View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/net/torvald/terrarum/tests" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="GetCpuName-src" level="project" />
<orderEntry type="library" name="prtree" level="project" />
<orderEntry type="library" name="Terrarum_Joise" level="project" />
<orderEntry type="library" name="TerrarumSansBitmap" level="project" />
<orderEntry type="library" name="commons-codec:commons-codec:1.15" level="project" />
<orderEntry type="library" name="org.apache.commons:commons-csv:1.8" level="project" />
<orderEntry type="library" name="gdx-controllers-core-2.2.1" level="project" />
<orderEntry type="library" name="gdx-controllers-desktop-2.2.1" level="project" />
<orderEntry type="library" name="jxinput-1.0.0" level="project" />
<orderEntry type="library" name="graalvm-js 23.1.10" level="project" />
<orderEntry type="library" name="badlogicgames.gdx" level="project" />
<orderEntry type="library" name="badlogicgames.gdx.backend.lwjgl3" level="project" />
<orderEntry type="library" name="io.github.classgraph" level="project" />
<orderEntry type="library" name="apache.commons.math3" level="project" />
<orderEntry type="library" name="github.wendykierp.JTransforms" level="project" />
<orderEntry type="library" name="io.airlift.aircompressor" level="project" />
<orderEntry type="library" name="gdx-platform-1.12.1-natives-arm64-v8a" level="project" />
<orderEntry type="library" name="TerranVirtualDisk" level="project" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
<orderEntry type="library" name="GetBatteryStatus" level="project" />
</component>
</module>

View File

@@ -1,14 +0,0 @@
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
void main(void) {
vec4 color = texture2D(u_texture, v_texCoords).rgba;
color.r = floor(15.0 * color.r + 0.5) / 15.0;
color.g = floor(15.0 * color.g + 0.5) / 15.0;
color.b = floor(15.0 * color.b + 0.5) / 15.0;
// a: passthrough
gl_FragColor = color;
}

View File

@@ -1,14 +0,0 @@
attribute vec4 a_position;
attribute vec4 a_color;
attribute vec2 a_texCoord0;
uniform mat4 u_projTrans;
varying vec4 v_color;
varying vec2 v_texCoords;
void main() {
v_color = a_color;
v_texCoords = a_texCoord0;
gl_Position = u_projTrans * a_position;
}

View File

@@ -1,86 +0,0 @@
#version 120
#ifdef GL_ES
precision mediump float;
#endif
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
// "steps" of R, G and B. Must be integer && equal or greater than 2
uniform float rcount = 64.0;
uniform float gcount = 64.0;
uniform float bcount = 64.0;
uniform float acount = 1.0;
/*int bayer[7 * 7] = int[](
32,42,10,27,37,5,15,
1,18,28,45,13,23,40,
26,36,4,14,31,48,9,
44,12,22,39,0,17,34,
20,30,47,8,25,35,3,
38,6,16,33,43,11,21,
7,24,41,2,19,29,46
); // I kind of accidentally create it...
float bayerSize = 7.0;*/
/*int bayer[9 * 9] = int[](
50,71,2,23,44,56,77,17,29,
72,12,33,45,66,6,18,39,60,
22,43,55,76,16,28,49,70,1,
53,65,5,26,38,59,80,11,32,
75,15,27,48,69,0,21,42,54,
25,37,58,79,10,31,52,64,4,
47,68,8,20,41,62,74,14,35,
78,9,30,51,63,3,24,36,57,
19,40,61,73,13,34,46,67,7
); // I kind of accidentally create it...
float bayerSize = 9.0;*/
//int bayer[25 * 25] = int[](165,530,106,302,540,219,477,100,231,417,314,223,424,37,207,434,326,22,448,338,111,454,523,278,579,334,19,410,495,57,352,158,318,598,109,509,157,524,282,606,83,225,539,163,234,607,313,206,71,470,251,608,216,135,275,609,415,29,451,204,397,21,373,107,462,348,482,120,362,508,33,147,572,388,142,447,77,345,565,439,104,215,546,279,69,567,311,585,258,177,17,266,601,55,428,270,461,331,26,560,164,271,486,186,16,336,457,150,342,471,245,161,56,396,496,555,385,146,321,190,526,97,182,511,297,429,553,49,374,536,263,575,43,501,124,368,538,450,121,309,84,210,449,561,79,356,610,256,378,58,105,315,156,244,423,118,183,408,220,611,15,198,293,596,221,375,581,39,238,500,287,14,437,139,595,227,403,590,478,68,612,295,517,87,312,413,515,78,433,13,476,134,340,414,160,466,213,547,324,456,542,141,12,335,214,357,11,381,242,469,159,265,383,176,545,285,197,503,108,576,51,387,98,200,34,358,489,277,570,96,441,554,123,534,52,556,112,605,330,70,392,613,28,288,361,232,602,300,502,267,102,195,399,152,484,264,166,289,427,192,298,407,25,249,520,114,233,444,543,170,498,131,452,66,562,310,586,54,531,346,42,614,354,23,588,491,151,468,353,187,483,369,153,85,425,10,276,371,174,420,32,459,222,304,136,421,103,458,230,339,67,260,578,93,544,9,280,594,327,248,582,472,50,615,254,537,359,91,600,475,212,525,168,558,128,455,370,179,301,405,209,467,48,442,127,355,184,332,481,126,286,175,436,273,31,377,306,36,412,294,616,8,473,60,603,116,347,532,191,568,61,522,90,218,391,592,62,514,122,552,149,617,241,513,81,202,272,557,333,226,507,255,72,305,402,229,418,296,551,7,411,317,236,416,337,480,64,389,132,350,487,404,89,162,435,44,419,618,113,505,20,604,138,465,188,493,133,580,6,169,259,320,548,193,593,40,178,512,364,591,144,319,196,386,261,351,205,384,76,269,38,349,208,504,440,99,490,5,426,243,322,574,281,4,237,460,527,3,549,155,577,47,533,316,619,394,519,82,268,325,566,199,299,119,529,75,400,125,492,344,86,217,308,463,80,395,284,474,117,201,95,235,422,620,143,45,372,597,453,343,185,479,247,569,171,409,584,129,365,239,488,94,224,438,559,283,541,18,194,401,516,262,148,41,250,621,24,329,92,446,27,291,485,35,622,180,535,379,30,341,443,145,363,494,246,101,445,550,390,499,115,432,521,211,623,253,528,189,430,307,53,323,130,624,172,46,589,292,63,599,328,203,74,290,181,376,274,140,393,59,367,88,380,137,506,252,571,431,240,497,382,228,464,167,398,2,573,366,518,1,583,73,563,303,510,154,564,257,587,65,406,173,0,360,110);
int bayer[14 * 14] = int[](131,187,8,78,50,18,134,89,155,102,29,95,184,73,22,86,113,171,142,105,34,166,9,60,151,128,40,110,168,137,45,28,64,188,82,54,124,189,80,13,156,56,7,61,186,121,154,6,108,177,24,100,38,176,93,123,83,148,96,17,88,133,44,145,69,161,139,72,30,181,115,27,163,47,178,65,164,14,120,48,5,127,153,52,190,58,126,81,116,21,106,77,173,92,191,63,99,12,76,144,4,185,37,149,192,39,135,23,117,31,170,132,35,172,103,66,129,79,3,97,57,159,70,141,53,94,114,20,49,158,19,146,169,122,183,11,104,180,2,165,152,87,182,118,91,42,67,25,84,147,43,85,125,68,16,136,71,10,193,112,160,138,51,111,162,26,194,46,174,107,41,143,33,74,1,101,195,15,75,140,109,90,32,62,157,98,167,119,179,59,36,130,175,55,0,150);
float bayerSize = 14.0;
float bayerDivider = bayerSize * bayerSize;
vec4 gammaIn(vec4 col) {
return pow(col, vec4(2.2));
}
vec4 gammaOut(vec4 col) {
return pow(col, vec4(1.0 / 2.2));
}
vec4 nearestColour(vec4 incolor) {
vec4 rgbaCounts = vec4(rcount, gcount, bcount, acount);
vec4 color = incolor;
color.r = floor((rgbaCounts.r - 1.0) * color.r + 0.5) / (rgbaCounts.r - 1.0);
color.g = floor((rgbaCounts.g - 1.0) * color.g + 0.5) / (rgbaCounts.g - 1.0);
color.b = floor((rgbaCounts.b - 1.0) * color.b + 0.5) / (rgbaCounts.b - 1.0);
color.a = 1.0;//floor((rgbaCounts.a - 1.0) * color.a + 0.5) / (rgbaCounts.a - 1.0);
return color;
}
void main(void) {
float spread = 1.0 / (0.299 * (rcount - 1.0) + 0.587 * (gcount - 1.0) + 0.114 * (bcount - 1.0)); // this spread value is optimised one -- try your own values for various effects!
// create texture coordinates based on pixelSize //
vec4 inColor = (texture2D(u_texture, v_texCoords));
vec2 entry = mod(gl_FragCoord.xy, vec2(bayerSize, bayerSize));
gl_FragColor = nearestColour(inColor + spread * (bayer[int(entry.y) * int(bayerSize) + int(entry.x)] / bayerDivider - 0.5));
//gl_FragColor = nearestColour(inColor);
//gl_FragColor = inColor;
}

View File

@@ -1,100 +0,0 @@
#version 120
#ifdef GL_ES
precision mediump float;
#endif
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
uniform vec3 topColor;
uniform vec3 bottomColor;
uniform float parallax = 0.0; // +1.0: all top col, -1.0: all bototm col, 0.0: normal grad
uniform float parallax_size = 1.0/3.0; // 0: no parallax
// "steps" of R, G and B. Must be integer && equal or greater than 2
uniform float rcount = 64.0; // it even works on 256.0!
uniform float gcount = 64.0; // using 64: has less banding and most monitors are internally 6-bit
uniform float bcount = 64.0;
// inverted zoom; this value must set to (1f/zoom)
uniform float zoomInv = 1.0;
/*int bayer[7 * 7] = int[](
32,42,10,27,37,5,15,
1,18,28,45,13,23,40,
26,36,4,14,31,48,9,
44,12,22,39,0,17,34,
20,30,47,8,25,35,3,
38,6,16,33,43,11,21,
7,24,41,2,19,29,46
); // I kind of accidentally create it...
float bayerSize = 7.0;*/
/*int bayer[9 * 9] = int[](
50,71,2,23,44,56,77,17,29,
72,12,33,45,66,6,18,39,60,
22,43,55,76,16,28,49,70,1,
53,65,5,26,38,59,80,11,32,
75,15,27,48,69,0,21,42,54,
25,37,58,79,10,31,52,64,4,
47,68,8,20,41,62,74,14,35,
78,9,30,51,63,3,24,36,57,
19,40,61,73,13,34,46,67,7
); // I kind of accidentally create it...
float bayerSize = 9.0;*/
//int bayer[25 * 25] = int[](165,530,106,302,540,219,477,100,231,417,314,223,424,37,207,434,326,22,448,338,111,454,523,278,579,334,19,410,495,57,352,158,318,598,109,509,157,524,282,606,83,225,539,163,234,607,313,206,71,470,251,608,216,135,275,609,415,29,451,204,397,21,373,107,462,348,482,120,362,508,33,147,572,388,142,447,77,345,565,439,104,215,546,279,69,567,311,585,258,177,17,266,601,55,428,270,461,331,26,560,164,271,486,186,16,336,457,150,342,471,245,161,56,396,496,555,385,146,321,190,526,97,182,511,297,429,553,49,374,536,263,575,43,501,124,368,538,450,121,309,84,210,449,561,79,356,610,256,378,58,105,315,156,244,423,118,183,408,220,611,15,198,293,596,221,375,581,39,238,500,287,14,437,139,595,227,403,590,478,68,612,295,517,87,312,413,515,78,433,13,476,134,340,414,160,466,213,547,324,456,542,141,12,335,214,357,11,381,242,469,159,265,383,176,545,285,197,503,108,576,51,387,98,200,34,358,489,277,570,96,441,554,123,534,52,556,112,605,330,70,392,613,28,288,361,232,602,300,502,267,102,195,399,152,484,264,166,289,427,192,298,407,25,249,520,114,233,444,543,170,498,131,452,66,562,310,586,54,531,346,42,614,354,23,588,491,151,468,353,187,483,369,153,85,425,10,276,371,174,420,32,459,222,304,136,421,103,458,230,339,67,260,578,93,544,9,280,594,327,248,582,472,50,615,254,537,359,91,600,475,212,525,168,558,128,455,370,179,301,405,209,467,48,442,127,355,184,332,481,126,286,175,436,273,31,377,306,36,412,294,616,8,473,60,603,116,347,532,191,568,61,522,90,218,391,592,62,514,122,552,149,617,241,513,81,202,272,557,333,226,507,255,72,305,402,229,418,296,551,7,411,317,236,416,337,480,64,389,132,350,487,404,89,162,435,44,419,618,113,505,20,604,138,465,188,493,133,580,6,169,259,320,548,193,593,40,178,512,364,591,144,319,196,386,261,351,205,384,76,269,38,349,208,504,440,99,490,5,426,243,322,574,281,4,237,460,527,3,549,155,577,47,533,316,619,394,519,82,268,325,566,199,299,119,529,75,400,125,492,344,86,217,308,463,80,395,284,474,117,201,95,235,422,620,143,45,372,597,453,343,185,479,247,569,171,409,584,129,365,239,488,94,224,438,559,283,541,18,194,401,516,262,148,41,250,621,24,329,92,446,27,291,485,35,622,180,535,379,30,341,443,145,363,494,246,101,445,550,390,499,115,432,521,211,623,253,528,189,430,307,53,323,130,624,172,46,589,292,63,599,328,203,74,290,181,376,274,140,393,59,367,88,380,137,506,252,571,431,240,497,382,228,464,167,398,2,573,366,518,1,583,73,563,303,510,154,564,257,587,65,406,173,0,360,110);
int bayer[14 * 14] = int[](131,187,8,78,50,18,134,89,155,102,29,95,184,73,22,86,113,171,142,105,34,166,9,60,151,128,40,110,168,137,45,28,64,188,82,54,124,189,80,13,156,56,7,61,186,121,154,6,108,177,24,100,38,176,93,123,83,148,96,17,88,133,44,145,69,161,139,72,30,181,115,27,163,47,178,65,164,14,120,48,5,127,153,52,190,58,126,81,116,21,106,77,173,92,191,63,99,12,76,144,4,185,37,149,192,39,135,23,117,31,170,132,35,172,103,66,129,79,3,97,57,159,70,141,53,94,114,20,49,158,19,146,169,122,183,11,104,180,2,165,152,87,182,118,91,42,67,25,84,147,43,85,125,68,16,136,71,10,193,112,160,138,51,111,162,26,194,46,174,107,41,143,33,74,1,101,195,15,75,140,109,90,32,62,157,98,167,119,179,59,36,130,175,55,0,150);
float bayerSize = 14.0;
float bayerDivider = bayerSize * bayerSize;
vec4 nearestColour(vec4 incolor) {
vec4 rgbaCounts = vec4(rcount, gcount, bcount, 1.0);
vec4 color = incolor;
color.r = floor((rgbaCounts.r - 1.0) * color.r + 0.5) / (rgbaCounts.r - 1.0);
color.g = floor((rgbaCounts.g - 1.0) * color.g + 0.5) / (rgbaCounts.g - 1.0);
color.b = floor((rgbaCounts.b - 1.0) * color.b + 0.5) / (rgbaCounts.b - 1.0);
color.a = 1.0;
return color;
}
void main(void) {
float spread = 1.0 / (0.299 * (rcount - 1.0) + 0.587 * (gcount - 1.0) + 0.114 * (bcount - 1.0)); // this spread value is optimised one -- try your own values for various effects!
float scale = v_texCoords.y * (1.0 - parallax_size) + (parallax_size / 2.0) + (parallax * parallax_size / 2.0);
float zoomSamplePoint = (1.0 - zoomInv) / 2.0; // will never quite exceed 0.5
// I don't even know if it works, and also not sure if I actually want it
vec3 newBottom = mix(bottomColor, topColor, zoomSamplePoint);
vec3 newTop = mix(topColor, bottomColor, zoomSamplePoint);
vec4 inColor = vec4(mix(newBottom, newTop, scale), 1.0);
vec2 entry = mod(gl_FragCoord.xy, vec2(bayerSize, bayerSize));
gl_FragColor = nearestColour(inColor + spread * (bayer[int(entry.y) * int(bayerSize) + int(entry.x)] / bayerDivider - 0.5));
}
/*
UV mapping coord.y
-+ <- 1.0 =
D| = // parallax of +1
i| = =
s| = // parallax of 0
p| = =
.| = // parallax of -1
-+ <- 0.0 =
*/

View File

@@ -1,8 +0,0 @@
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
void main(void) {
vec3 alpha = texture2D(u_texture, v_texCoords).aaa;
gl_FragColor = vec4(alpha, 1.0);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,18 +0,0 @@
#version 120
#ifdef GL_ES
precision mediump float;
#endif
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture; // world texture, has alpha value that is meaningful
uniform sampler2D tex1; // glow texture, SHOULD contain alpha of all 1.0
void main(void) {
vec4 colorTex0 = texture2D(u_texture, v_texCoords); // lightmap (RGB) pre-mixed
vec4 colorTex1 = texture2D(tex1, v_texCoords); // lightmap (A) pre-mixed
gl_FragColor = vec4(max(colorTex0.rgb, colorTex1.rgb), colorTex0.a);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

BIN
assets/clut/skybox.png LFS Normal file

Binary file not shown.

BIN
assets/clut/skyboxavr.png LFS Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More