Compare commits

..

1026 Commits

Author SHA1 Message Date
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
1480 changed files with 79185 additions and 33553 deletions

2
.gitattributes vendored
View File

@@ -7,3 +7,5 @@
*.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

7
.gitignore vendored
View File

@@ -2,8 +2,14 @@
out/*
bin/*
build/*
assets_release/*
.gradle/*
TerrarumBuild.jar
buildapp/out/Terrarum*
buildapp/TerrarumLinux.*
buildapp/TerrarumMac.*
buildapp/TerrarumWindows.*
assets/mods/dwarventech/ModuleComputers.jar
# Java native errors
hs_err_pid*
@@ -29,6 +35,7 @@ workspace.xml
.tmp*
tmp_*
*.bak
*-autosave.kra
## Microsoft Office
~$*
## Generic temp files in Linux

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>

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

@@ -0,0 +1,17 @@
<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="/" />
<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/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-common/1.8.21/kotlin-stdlib-common-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="$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-reflect/1.8.21/kotlin-reflect-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-test/1.8.21/kotlin-test-1.8.21.jar" path-in-jar="/" />
</root>
</artifact>
</component>

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

@@ -0,0 +1,88 @@
<component name="ArtifactManager">
<artifact type="jar" name="SpriteAssemblerApp">
<output-path>$PROJECT_DIR$/out</output-path>
<root id="archive" name="terrarum.terrarum.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/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/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="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-macos.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="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-1.11.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.11.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-windows-x86.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="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-windows.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/lwjgl-stb-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-linux-arm32.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="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-linux-arm64.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/lwjgl-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1.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/graal-sdk-22.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/icu4j-71.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-22.3.1-edit.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-scriptengine-22.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/regex-22.3.1-edit.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-api-22.3.1.jar" path-in-jar="/" />
</root>
</artifact>
</component>

View File

@@ -1,14 +1,92 @@
<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="$KOTLIN_BUNDLED$/lib/kotlin-stdlib.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-reflect.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-stdlib-jdk8.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-1.11.0.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/gdx-backend-lwjgl3-1.11.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-arm64-v8a.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-armeabi-v7a.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-desktop.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-x86_64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.8.21/kotlin-reflect-1.8.21.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-common/1.8.21/kotlin-stdlib-common-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="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-test/1.8.21/kotlin-test-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-scriptengine-22.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-api-22.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/icu4j-71.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/regex-22.3.1-edit.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-22.3.1-edit.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/graal-sdk-22.3.1.jar" path-in-jar="/" />
</root>
</artifact>
</component>

View File

@@ -1,41 +1,18 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<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" />

6
.idea/kotlinc.xml generated
View File

@@ -1,9 +1,9 @@
<?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="KotlinJpsPluginSettings">
<option name="version" value="1.8.0" />
</component>
</project>

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,26 @@
<component name="libraryTable">
<library name="KotlinJavaRuntime">
<library name="KotlinJavaRuntime" type="repository">
<properties maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21" />
<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/1.8.21/kotlin-stdlib-jdk8-1.8.21.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.21/kotlin-stdlib-common-1.8.21.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/1.8.21/kotlin-stdlib-jdk7-1.8.21.jar!/" />
</CLASSES>
<JAVADOC />
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.21/kotlin-stdlib-jdk8-1.8.21-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.21/kotlin-stdlib-common-1.8.21-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/1.8.21/kotlin-stdlib-jdk7-1.8.21-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/1.8.21/kotlin-stdlib-jdk8-1.8.21-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.21/kotlin-stdlib-common-1.8.21-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/1.8.21/kotlin-stdlib-jdk7-1.8.21-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/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>

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.11.0" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-1.11.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/gdx-1.11.0-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.11.0-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.11.0" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.11.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.11.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-macos-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-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.11.0-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.11.0-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.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.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.11.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.11.0-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.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-stb-3.3.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,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,12 @@
<component name="libraryTable">
<library name="gdx-platform-1.11.0-natives">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-arm64-v8a.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-armeabi-v7a.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-desktop.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-x86_64.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

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

@@ -0,0 +1,28 @@
<component name="libraryTable">
<library name="graalvm-js 22.3.1">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/graal-sdk-22.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/icu4j-71.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-22.3.1-edit.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-scriptengine-22.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/regex-22.3.1-edit.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-api-22.3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/graal-sdk-22.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/icu4j-71.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-22.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-scriptengine-22.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/regex-22.3.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-api-22.3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/graal-sdk-22.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/icu4j-71.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-22.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/js-scriptengine-22.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/regex-22.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/truffle-api-22.3.1-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>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="jetbrains.kotlin.reflect" type="repository">
<properties maven-id="org.jetbrains.kotlin:kotlin-reflect:1.8.21" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.8.21/kotlin-reflect-1.8.21.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.21/kotlin-stdlib-common-1.8.21.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="jetbrains.kotlin.test" type="repository">
<properties maven-id="org.jetbrains.kotlin:kotlin-test:1.8.21" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-test/1.8.21/kotlin-test-1.8.21.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.21/kotlin-stdlib-common-1.8.21.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar!/" />
</CLASSES>
<JAVADOC />
<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_17" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="SuppressKotlinCodeStyleNotification">
<option name="disableForAll" value="true" />
</component>
</project>

7
.idea/modules.xml generated
View File

@@ -1,9 +1,12 @@
<?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$/TerrarumBuild.iml" filepath="$PROJECT_DIR$/TerrarumBuild.iml" />
</modules>
</component>
</project>

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,15 @@
<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" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<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>

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

@@ -0,0 +1,16 @@
<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 -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<module name="TerrarumBuild" />
<method v="2">
<option name="BuildArtifacts" enabled="true">
<artifact name="ModuleComputers" />
<artifact name="TerrarumBuild" />
</option>
</method>
</configuration>
</component>

View File

@@ -0,0 +1,16 @@
<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="-Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<module name="TerrarumBuild" />
<method v="2">
<option name="BuildArtifacts" enabled="true">
<artifact name="ModuleComputers" />
<artifact name="TerrarumBuild" />
</option>
</method>
</configuration>
</component>

View File

@@ -1,6 +1,6 @@
*Terrarum*
Copyright (C) 2013-2021 Minjae Song ("CuriousTorvald")
Copyright (C) 2013-2023 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
@@ -19,7 +19,7 @@ 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
Copyright (c) 2017-2022 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
@@ -38,12 +38,6 @@ 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
----
@@ -114,7 +108,65 @@ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISI
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")
----
*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.
----
*HUSLColorConverter.java*
Copyright (c) 2016 Alexei Boronine
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.
----
Ambient sound recordings:
@@ -131,82 +183,429 @@ Sound from <http://www.freesound.org/people/klankbeeld/>
----
LuaJ
Product License - GraalVM Community Edition
Copyright (c) 2007 LuaJ. All rights reserved.
This is a release of GraalVM Community Edition. GraalVM Community Edition
consists of multiple modules. The software as a whole, as well as the JVMCI
and VisualVM modules, are released under version 2 of the GNU General Public
License with the “Classpath” Exception.
The text of the foregoing licenses is reproduced below.
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:
Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
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.
The GNU General Public License (GPL)
----
Version 2, June 1991
PRTree, a Priority R-Tree, a spatial index for java code
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Copyright (c) 2008-2012 Robert Olofsson.
All rights reserved.
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
Preamble
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change free software--to make sure the
software is free for all its users. This General Public License applies to
most of the Free Software Foundation's software and to any other program whose
authors commit to using it. (Some other Free Software Foundation software is
covered by the GNU Library General Public License instead.) You can apply it to
your programs, too.
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.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom to
distribute copies of free software (and charge for this service if you wish),
that you receive source code or can get it if you want it, that you can change
the software or use pieces of it in new free programs; and that you know you
can do these things.
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.
To protect your rights, we need to make restrictions that forbid anyone to deny
you these rights or to ask you to surrender the rights. These restrictions
translate to certain responsibilities for you if you distribute copies of the
software, or if you modify it.
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.
For example, if you distribute copies of such a program, whether gratis or for
a fee, you must give the recipients all the rights that you have. You must
make sure that they, too, receive or can get the source code. And you must
show them these terms so they know their rights.
----
We protect your rights with two steps: (1) copyright the software, and (2)
offer you this license which gives you legal permission to copy, distribute
and/or modify the software.
Some of the resources were created by _raxod502_.
Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If the
software is modified by someone else and passed on, we want its recipients to
know that what they have is not the original, so that any problems introduced
by others will not reflect on the original authors' reputations.
Copyright (c) 2016 Radon Rosborough
Finally, any free program is threatened constantly by software patents. We
wish to avoid the danger that redistributors of a free program will
individually obtain patent licenses, in effect making the program proprietary.
To prevent this, we have made it clear that any patent must be licensed for
everyone's free use or not licensed at all.
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 precise terms and conditions for copying, distribution and modification
follow.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
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.
0. This License applies to any program or other work which contains a notice
placed by the copyright holder saying it may be distributed under the terms of
this General Public License. The "Program", below, refers to any such program
or work, and a "work based on the Program" means either the Program or any
derivative work under copyright law: that is to say, a work containing the
Program or a portion of it, either verbatim or with modifications and/or
translated into another language. (Hereinafter, translation is included
without limitation in the term "modification".) Each licensee is addressed as
"you".
Activities other than copying, distribution and modification are not covered by
this License; they are outside its scope. The act of running the Program is
not restricted, and the output from the Program is covered only if its contents
constitute a work based on the Program (independent of having been made by
running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as
you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this License
and to the absence of any warranty; and give any other recipients of the
Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may
at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus
forming a work based on the Program, and copy and distribute such modifications
or work under the terms of Section 1 above, provided that you also meet all of
these conditions:
a) You must cause the modified files to carry prominent notices stating
that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or
in part contains or is derived from the Program or any part thereof, to be
licensed as a whole at no charge to all third parties under the terms of
this License.
c) If the modified program normally reads commands interactively when run,
you must cause it, when started running for such interactive use in the
most ordinary way, to print or display an announcement including an
appropriate copyright notice and a notice that there is no warranty (or
else, saying that you provide a warranty) and that users may redistribute
the program under these conditions, and telling the user how to view a copy
of this License. (Exception: if the Program itself is interactive but does
not normally print such an announcement, your work based on the Program is
not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be reasonably
considered independent and separate works in themselves, then this License, and
its terms, do not apply to those sections when you distribute them as separate
works. But when you distribute the same sections as part of a whole which is a
work based on the Program, the distribution of the whole must be on the terms
of this License, whose permissions for other licensees extend to the entire
whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise the
right to control the distribution of derivative or collective works based on
the Program.
In addition, mere aggregation of another work not based on the Program with the
Program (or with a work based on the Program) on a volume of a storage or
distribution medium does not bring the other work under the scope of this
License.
3. You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of Sections 1 and
2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source
code, which must be distributed under the terms of Sections 1 and 2 above
on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to
give any third party, for a charge no more than your cost of physically
performing source distribution, a complete machine-readable copy of the
corresponding source code, to be distributed under the terms of Sections 1
and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to
distribute corresponding source code. (This alternative is allowed only
for noncommercial distribution and only if you received the program in
object code or executable form with such an offer, in accord with
Subsection b above.)
The source code for a work means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all
the source code for all modules it contains, plus any associated interface
definition files, plus the scripts used to control compilation and installation
of the executable. However, as a special exception, the source code
distributed need not include anything that is normally distributed (in either
source or binary form) with the major components (compiler, kernel, and so on)
of the operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the source
code from the same place counts as distribution of the source code, even though
third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as
expressly provided under this License. Any attempt otherwise to copy, modify,
sublicense or distribute the Program is void, and will automatically terminate
your rights under this License. However, parties who have received copies, or
rights, from you under this License will not have their licenses terminated so
long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the Program
or its derivative works. These actions are prohibited by law if you do not
accept this License. Therefore, by modifying or distributing the Program (or
any work based on the Program), you indicate your acceptance of this License to
do so, and all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program),
the recipient automatically receives a license from the original licensor to
copy, distribute or modify the Program subject to these terms and conditions.
You may not impose any further restrictions on the recipients' exercise of the
rights granted herein. You are not responsible for enforcing compliance by
third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues), conditions
are imposed on you (whether by court order, agreement or otherwise) that
contradict the conditions of this License, they do not excuse you from the
conditions of this License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other pertinent
obligations, then as a consequence you may not distribute the Program at all.
For example, if a patent license would not permit royalty-free redistribution
of the Program by all those who receive copies directly or indirectly through
you, then the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply and
the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or
other property right claims or to contest validity of any such claims; this
section has the sole purpose of protecting the integrity of the free software
distribution system, which is implemented by public license practices. Many
people have made generous contributions to the wide range of software
distributed through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing to
distribute software through any other system and a licensee cannot impose that
choice.
This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original
copyright holder who places the Program under this License may add an explicit
geographical distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus excluded. In
such case, this License incorporates the limitation as if written in the body
of this License.
9. The Free Software Foundation may publish revised and/or new versions of the
General Public License from time to time. Such new versions will be similar in
spirit to the present version, but may differ in detail to address new problems
or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any later
version", you have the option of following the terms and conditions either of
that version or of any later version published by the Free Software Foundation.
If the Program does not specify a version number of this License, you may
choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to the author to ask for
permission. For software which is copyrighted by the Free Software Foundation,
write to the Free Software Foundation; we sometimes make exceptions for this.
Our decision will be guided by the two goals of preserving the free status of
all derivatives of our free software and of promoting the sharing and reuse of
software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible
use to the public, the best way to achieve this is to make it free software
which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach
them to the start of each source file to most effectively convey the exclusion
of warranty; and each file should have at least the "copyright" line and a
pointer to where the full notice is found.
One line to give the program's name and a brief idea of what it does.
Copyright (C) <year> <name of author>
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 the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the 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, write to the Free Software Foundation, Inc., 59
Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it
starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free
software, and you are welcome to redistribute it under certain conditions;
type 'show c' for details.
The hypothetical commands 'show w' and 'show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may be
called something other than 'show w' and 'show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school,
if any, to sign a "copyright disclaimer" for the program, if necessary. Here
is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
'Gnomovision' (which makes passes at compilers) written by James Hacker.
signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General Public
License instead of this License.
"CLASSPATH" EXCEPTION TO THE GPL
Certain source files distributed by Oracle America and/or its affiliates
are subject to the following clarification and special exception to the GPLv2,
based on the GNU Project exception for its Classpath libraries, known as the
GNU Classpath Exception, but only where Oracle has expressly included in the
particular source file's header the words "Oracle designates this particular
file as subject to the "Classpath" exception as provided by Oracle in the
LICENSE file that accompanied this code."
You should also note that Oracle includes multiple, independent programs in
this software package. Some of those programs are provided under licenses
deemed incompatible with the GPLv2 by the Free Software Foundation and others.
For example, the package includes programs licensed under the Apache License,
Version 2.0. Such programs are licensed to you under their original licenses.
Oracle facilitates your further distribution of this package by adding the
Classpath Exception to the necessary parts of its GPLv2 code, which permits you
to use that code in combination with other independent modules not licensed
under the GPLv2. However, note that this would not permit you to commingle code
under an incompatible license with Oracle's GPLv2 licensed code by, for
example, cutting and pasting such code into a file also containing Oracle's
GPLv2 licensed code and then distributing the result.
Additionally, if you were to remove the Classpath Exception from any of the
files to which it applies and distribute the result, you would likely be
required to license some or all of the other code in that distribution under
the GPLv2 as well, and since the GPLv2 is incompatible with the license terms
of some items included in the distribution by Oracle, removing the Classpath
Exception could therefore effectively compromise your ability to further
distribute the package.
Proceed with caution and we recommend that you obtain the advice of a lawyer
skilled in open source matters before removing the Classpath Exception or
making modifications to this package which may subsequently be redistributed
and/or involve the use of third party software.
CLASSPATH EXCEPTION
Linking this library statically or dynamically with other modules is making a
combined work based on this library. Thus, the terms and conditions of the GNU
General Public License version 2 cover the whole combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules, and
to copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the terms and
conditions of the license of that module. An independent module is a module
which is not derived from or based on this library. If you modify this library,
you may extend this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this exception
statement from your version.
===========================================================================
WRITTEN OFFER FOR SOURCE CODE
For any software that you receive from Oracle in binary form which is licensed
under an open source license that gives you the right to receive the source
code for that binary, you can obtain a copy of the applicable source code by
visiting http://www.oracle.com/goto/opensourcecode. If the source code for the
binary was not provided to you with the binary, you can also receive a copy of
the source code on physical media by submitting a written request to the
address listed below or by sending an email to Oracle using the following link:
http://www.oracle.com/goto/opensourcecode/request.
Oracle America, Inc.
Attn: Senior Vice President
Development and Engineering Legal
500 Oracle Parkway, 10th Floor
Redwood Shores, CA 94065
Your request should include:
• The name of the binary for which you are requesting the source code
• The name and version number of the Oracle product containing the binary
• The date you received the Oracle product
• Your name
• Your company name (if applicable)
• Your return mailing address and email, and
• A telephone number in the event we need to reach you.
We may charge you a fee to cover the cost of physical media and processing.
Your request must be sent
a. within three (3) years of the date you received the Oracle product that
included the binary that is the subject of your request, or
b. in the case of code licensed under the GPL v3 for as long as Oracle
offers spare parts or customer support for that product model.
===========================================================================

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" />
<orderEntry type="library" name="graalvm-js 22.3.1" level="project" />
<orderEntry type="library" name="TerrarumSansBitmap" level="project" />
<orderEntry type="library" name="badlogicgames.gdx" level="project" />
<orderEntry type="library" name="badlogicgames.gdx.backend.lwjgl3" level="project" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
<orderEntry type="library" name="jetbrains.kotlin.reflect" level="project" />
<orderEntry type="library" name="jetbrains.kotlin.test" level="project" />
<orderEntry type="library" name="io.github.classgraph" level="project" />
</component>
</module>

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,21 @@
package net.torvald.terrarum.modulecomputers
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() {
ModMgr.GameItemLoader.invoke(moduleName)
println("[${moduleName[0].toUpperCase()}${moduleName.substring(1)}] Dirtboard(tm) go drrrrr")
}
override fun dispose() {
}
}

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,207 @@
package net.torvald.terrarum.modulecomputers.gameactors
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 com.badlogic.gdx.utils.Disposable
import kotlin.coroutines.*
import net.torvald.terrarum.*
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.langpack.Lang
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.ui.Toolkit
import net.torvald.terrarum.ui.UICanvas
import net.torvald.tsvm.*
import net.torvald.tsvm.peripheral.AdapterConfig
import net.torvald.tsvm.peripheral.GraphicsAdapter
import net.torvald.tsvm.peripheral.VMProgramRom
import net.torvald.unicode.*
/**
* 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, -1)
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
)
}
}
internal class UIHomeComputer : UICanvas(
toggleKeyLiteral = Input.Keys.ESCAPE, // FIXME why do I have specify ESC for it to function? ESC should be work as the default key
toggleButtonLiteral = App.getConfigInt("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(App.getConfigInt("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 updateUI(delta: Float) {
}
override fun renderUI(otherBatch: SpriteBatch, otherCamera: Camera) {
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,43 @@
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) : GameItem(originalID) {
override var dynamicID: ItemID = originalID
override val originalName = "Computer"
override var baseMass = 20.0
override var stackable = true
override var inventoryCategory = Category.MISC
override val isUnique = false
override val isDynamic = false
override val materialId = ""
override val itemImage: TextureRegion
get() = FixtureItemBase.getItemImageFromSheet("dwarventech", "sprites/fixtures/desktop_computer.tga", TerrarumAppConfiguration.TILE_SIZE, TerrarumAppConfiguration.TILE_SIZE)
override var baseToolSize: Double? = baseMass
init {
equipPosition = EquipPosition.HAND_GRIP
}
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = mouseInInteractableRange(actor) {
val item = FixtureHomeComputer()
if (item.spawn(Terrarum.mouseTileX, Terrarum.mouseTileY, if (actor is IngamePlayer) actor.uuid else null)) 1L else -1L
// return true when placed, false when cannot be placed
}
}

View File

@@ -0,0 +1,148 @@
package net.torvald.terrarum.modulecomputers.gameitems
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
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 = ""
override val itemImage: TextureRegion
get() = 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 updateUI(delta: Float) {
device.update(delta)
}
override fun renderUI(batch: SpriteBatch, camera: Camera) {
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,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

@@ -1,72 +1,33 @@
## 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*.
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)
## Terrarum the Actual Game ##
*Terrarum* is a side-view tilemap platformer-adventure-sandbox game.
## Setup ##
* 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.
## The Engine ##
Please refer to [```THE_ENGINE.md```](THE_ENGINE.md).
## Contribution guidelines ##
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.
- Requirements:
- JDK 17 or higher
- IntelliJ IDEA Community Edition
Required libraries are included in the repository.
## 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)

29
TerrarumBuild.iml Normal file
View File

@@ -0,0 +1,29 @@
<?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="gdx-platform-1.11.0-natives" level="project" />
<orderEntry type="library" name="graalvm-js 22.3.1" level="project" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
<orderEntry type="library" name="badlogicgames.gdx" level="project" />
<orderEntry type="library" name="badlogicgames.gdx.backend.lwjgl3" level="project" />
<orderEntry type="library" name="jetbrains.kotlin.reflect" level="project" />
<orderEntry type="library" name="jetbrains.kotlin.test" level="project" />
<orderEntry type="library" name="io.github.classgraph" 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

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/graphics/astrum.png LFS Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/graphics/fonts/terrarum-sans-bitmap/ascii_variable.tga LFS Normal file → Executable file

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

BIN
assets/graphics/fonts/terrarum-sans-bitmap/cyrilic_variable.tga LFS Normal file → Executable file

Binary file not shown.

Binary file not shown.

0
assets/graphics/fonts/terrarum-sans-bitmap/futhark.tga Normal file → Executable file
View File

Binary file not shown.

BIN
assets/graphics/fonts/terrarum-sans-bitmap/greek_variable.tga LFS Normal file → Executable file

Binary file not shown.

BIN
assets/graphics/fonts/terrarum-sans-bitmap/hayeren_variable.tga LFS Normal file → Executable file

Binary file not shown.

BIN
assets/graphics/fonts/terrarum-sans-bitmap/ipa_ext_variable.tga LFS Normal file → Executable file

Binary file not shown.

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