Compare commits

...

572 Commits

Author SHA1 Message Date
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
1189 changed files with 63274 additions and 28440 deletions

1
.gitignore vendored
View File

@@ -29,6 +29,7 @@ workspace.xml
.tmp* .tmp*
tmp_* tmp_*
*.bak *.bak
*-autosave.kra
## Microsoft Office ## Microsoft Office
~$* ~$*
## Generic temp files in Linux ## Generic temp files in Linux

View File

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

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

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

View File

@@ -1,14 +1,71 @@
<component name="ArtifactManager"> <component name="ArtifactManager">
<artifact type="jar" name="TerrarumBuild"> <artifact type="jar" name="TerrarumBuild">
<output-path>$PROJECT_DIR$/</output-path> <output-path>$PROJECT_DIR$/out</output-path>
<root id="archive" name="TerrarumBuild.jar"> <root id="archive" name="TerrarumBuild.jar">
<element id="directory" name="META-INF"> <element id="directory" name="META-INF">
<element id="file-copy" path="$PROJECT_DIR$/src/META-INF/MANIFEST.MF" /> <element id="file-copy" path="$PROJECT_DIR$/src/META-INF/MANIFEST.MF" />
</element> </element>
<element id="library" level="project" name="KotlinJavaRuntime" /> <element id="module-output" name="terrarum.terrarum" />
<element id="library" level="project" name="lib" /> <element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.10.0.jar" path-in-jar="/" />
<element id="module-output" name="ingamemodule_basegame" /> <element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-1.10.0.jar" path-in-jar="/" />
<element id="module-output" name="terrarum" /> <element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.2.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.2.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-macos.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/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/gdx-platform-1.10.0-natives-desktop.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-test.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/graal-sdk-21.1.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/icu4j-68.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-21.1.0-edit.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-scriptengine-21.1.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-api-21.1.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/regex-21.1.0-edit.jar" path-in-jar="/" />
</root> </root>
</artifact> </artifact>
</component> </component>

2
.idea/compiler.xml generated
View File

@@ -4,7 +4,7 @@
<annotationProcessing> <annotationProcessing>
<profile default="true" name="Default" enabled="true" /> <profile default="true" name="Default" enabled="true" />
</annotationProcessing> </annotationProcessing>
<bytecodeTargetLevel target="8" /> <bytecodeTargetLevel target="11" />
</component> </component>
<component name="JavacSettings"> <component name="JavacSettings">
<option name="PREFER_TARGET_JDK_COMPILER" value="false" /> <option name="PREFER_TARGET_JDK_COMPILER" value="false" />

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

@@ -4,15 +4,16 @@
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-stdlib.jar!/" /> <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-reflect.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-test.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/kotlin-stdlib-jdk7.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlinx-coroutines-io-jvm-0.1.1.jar!/" /> <root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk8.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlinx-coroutines-jdk8-1.0.1.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES> <SOURCES>
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-stdlib-sources.jar!/" /> <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-reflect-sources.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-test-sources.jar!/" /> <root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-test-sources.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk7-sources.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk8-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
</component> </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>

View File

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

View File

@@ -0,0 +1,128 @@
<component name="libraryTable">
<library name="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.10.0" type="repository">
<properties maven-id="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.10.0" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.10.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.10.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-natives-macos.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-windows.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-windows-x86.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-linux.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-linux-arm32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-natives-linux-arm64.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-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.10.0-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.10.0-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.10.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/gdx-1.10.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-glfw-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-jemalloc-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-opengl-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/lwjgl-openal-3.2.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jlayer-1.0.1-gdx-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jorbis-0.0.17-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,23 @@
<component name="libraryTable">
<library name="jetbrains.kotlinx.coroutines.core" type="repository">
<properties maven-id="org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.1" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/kotlinx-coroutines-core-1.4.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/kotlin-stdlib-1.4.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/annotations-13.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/kotlin-stdlib-common-1.4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/kotlinx-coroutines-core-1.4.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/kotlin-stdlib-1.4.0-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/annotations-13.0-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/kotlin-stdlib-common-1.4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/kotlinx-coroutines-core-1.4.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/kotlin-stdlib-1.4.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/annotations-13.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/kotlin-stdlib-common-1.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>

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

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

View File

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

View File

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

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

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

5
.idea/misc.xml generated
View File

@@ -38,7 +38,10 @@
<property name="caretWidth" class="java.lang.Integer" /> <property name="caretWidth" class="java.lang.Integer" />
</properties> </properties>
</component> </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" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
<component name="SuppressKotlinCodeStyleNotification">
<option name="disableForAll" value="true" />
</component>
</project> </project>

7
.idea/modules.xml generated
View File

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

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" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<module name="terrarum.terrarum" />
<method v="2">
<option name="BuildArtifacts" enabled="true">
<artifact name="ModuleComputers" />
<artifact name="TerrarumBuild" />
</option>
</method>
</configuration>
</component>

View File

@@ -0,0 +1,15 @@
<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="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<option name="ALTERNATIVE_JRE_PATH" value="17" />
<module name="terrarum.terrarum" />
<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* *Terrarum*
Copyright (C) 2013-2021 Minjae Song ("CuriousTorvald") Copyright (C) 2013-2022 Minjae Song ("CuriousTorvald")
This program is free software: you can redistribute it and/or modify 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 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* *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 Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal 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, 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 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. 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. 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") 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: 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 Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
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 The GNU General Public License (GPL)
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.
---- 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. Everyone is permitted to copy and distribute verbatim copies of this license
All rights reserved. document, but changing it is not allowed.
Redistribution and use in source and binary forms, with or without Preamble
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright The licenses for most software are designed to take away your freedom to share
notice, this list of conditions and the following disclaimer. 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 When we speak of free software, we are referring to freedom, not price. Our
notice, this list of conditions and the following disclaimer in the General Public Licenses are designed to make sure that you have the freedom to
documentation and/or other materials provided with the distribution. 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 To protect your rights, we need to make restrictions that forbid anyone to deny
may be used to endorse or promote products derived from this software you these rights or to ask you to surrender the rights. These restrictions
without specific prior written permission. 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 For example, if you distribute copies of such a program, whether gratis or for
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE a fee, you must give the recipients all the rights that you have. You must
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE make sure that they, too, receive or can get the source code. And you must
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE show them these terms so they know their rights.
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.
---- 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 The precise terms and conditions for copying, distribution and modification
of this software and associated documentation files (the "Software"), to deal follow.
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 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 0. This License applies to any program or other work which contains a notice
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, placed by the copyright holder saying it may be distributed under the terms of
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE this General Public License. The "Program", below, refers to any such program
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER or work, and a "work based on the Program" means either the Program or any
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, derivative work under copyright law: that is to say, a work containing the
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN Program or a portion of it, either verbatim or with modifications and/or
THE SOFTWARE. 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,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="ModuleComputersLib" level="project" />
<orderEntry type="module" module-name="terrarum.terrarum" />
<orderEntry type="library" name="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.10.0" level="project" />
<orderEntry type="library" name="com.badlogicgames.gdx:gdx:1.10.0" level="project" />
<orderEntry type="library" name="graalvm-js-21.1.0 and graalvm-js-scriptengine-21.1.0" level="project" />
<orderEntry type="library" name="jetbrains.kotlinx.coroutines.core" level="project" />
<orderEntry type="library" name="TerrarumSansBitmap" level="project" />
</component>
</module>

Binary file not shown.

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,156 @@
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 kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
import net.torvald.terrarum.*
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.modulebasegame.gameactors.BlockBox
import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
import net.torvald.terrarum.ui.Toolkit
import net.torvald.terrarum.ui.UICanvas
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
import net.torvald.tsvm.*
import net.torvald.tsvm.peripheral.GraphicsAdapter
import net.torvald.tsvm.peripheral.ReferenceGraphicsAdapter
import net.torvald.tsvm.peripheral.VMProgramRom
/**
* Created by minjaesong on 2021-12-04.
*/
class FixtureHomeComputer : FixtureBase {
private val vm = VM(0x200000, TheRealWorld(), arrayOf(
VMProgramRom(ModMgr.getPath("dwarventech", "bios/tsvmbios.js"))
))
private val vmRunner: VMRunner
private val coroutineJob: Job
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(TextureRegionPack(CommonResourcePool.getAsTextureRegion("dwarventech-sprites-fixtures-desktop_computer.tga").texture, TerrarumAppConfiguration.TILE_SIZE, TerrarumAppConfiguration.TILE_SIZE))
sprite!!.setRowsAndFrames(1, 1)
actorValue[AVKey.BASEMASS] = 20.0
val gpu = ReferenceGraphicsAdapter(ModMgr.getPath("dwarventech", "gui"), vm)
// 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
vmRunner = VMRunnerFactory(ModMgr.getPath("dwarventech", "bios"), vm, "js")
coroutineJob = GlobalScope.launch {
vmRunner.executeCommand(vm.roms[0]!!.readAll())
}
INGAME.disposables.add(Disposable {
vmRunner.close()
coroutineJob.cancel("fixture disposal")
vm.dispose()
})
}
override fun reload() {
super.reload()
(mainUI as UIHomeComputer).vm = vm
}
}
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
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)
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) // 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
blendNormal(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)
}
override fun doOpening(delta: Float) {
}
override fun doClosing(delta: Float) {
}
override fun endOpening(delta: Float) {
}
override fun endClosing(delta: Float) {
}
override fun dispose() {
fbo.dispose()
}
}

View File

@@ -0,0 +1,51 @@
package net.torvald.terrarum.modulecomputers.gameitems
import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.Terrarum
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.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 material = Material()
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsTextureRegion("dwarventech-sprites-fixtures-desktop_computer.tga")
override var baseToolSize: Double? = baseMass
init {
CommonResourcePool.addToLoadingList("dwarventech-sprites-fixtures-desktop_computer.tga") {
// val t = TextureRegion(Texture(ModMgr.getGdxFile("dwarventech", "nonexisting_file!!!")))
val t = TextureRegion(Texture(ModMgr.getGdxFile("dwarventech", "sprites/fixtures/desktop_computer.tga")))
t.flip(false, false)
/*return*/t
}
CommonResourcePool.loadAll()
equipPosition = EquipPosition.HAND_GRIP
}
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = mouseInInteractableRange(actor) {
val item = FixtureHomeComputer()
item.spawn(Terrarum.mouseTileX, Terrarum.mouseTileY - item.blockBox.height + 1)
// return true when placed, false when cannot be placed
}
}

View File

@@ -0,0 +1,125 @@
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 kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
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.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 material = Material()
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsTextureRegion("basegame-sprites-fixtures-signal_source.tga")
override var baseToolSize: Double? = baseMass
private val vm = VM(73728, TheRealWorld(), arrayOf(
VMProgramRom(ModMgr.getPath("dwarventech", "bios/pipboot.rom")),
VMProgramRom(ModMgr.getPath("dwarventech", "bios/pipcode.bas"))
))
private val vmRunner: VMRunner
private val coroutineJob: Job
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
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.getPath("dwarventech", "bios"), vm, "js")
coroutineJob = GlobalScope.launch {
vmRunner.executeCommand(vm.roms[0]!!.readAll())
}
INGAME.disposables.add(Disposable {
vmRunner.close()
coroutineJob.cancel("item disposal")
vm.dispose()
})
App.disposables.add(ui)
}
override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) {
(Terrarum.ingame!! as TerrarumIngame).wearableDeviceUI = ui
}
override fun effectOnUnequip(actor: ActorWithBody, delta: Float) {
(Terrarum.ingame!! as TerrarumIngame).wearableDeviceUI = null
}
}
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

@@ -58,8 +58,7 @@ Just in case, use this software at your own risk.
## Copyright ## ## 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. Please refer to [```COPYING.md```](COPYING.md).
## 개요 ## ## 개요 ##

View File

@@ -9,8 +9,9 @@ where Prefix is predefined (see below), Integer ID is arbitrarily chosen within
### Prefixes ### Prefixes
|Name|Description| |Name|Description|
|----|-----------| |----|-----------|
|wall|Wall, only used by the Inventory to differentiate walls from blocks (therefore wall shares same "ID Space" with blocks/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), uses different "ID Space" with blocks/walls/fluids/wires| |item|Item (Static)|
|wire|Wires|
Notes: Notes:
- BlockCodex and ItemCodex will not store prefix part of the ID, as blocks and walls are identical in properties - 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)| |0x1000_0000..0x1FFF_FFFF|Rendered behind (e.g. tapestries)|
|0x2000_0000..0x4FFF_FFFF|Regular actors (e.g. almost all of them)| |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)| |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| |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 +1,80 @@
## Format ## ## Introduction
Contain everything on [TEVD](github.com/minjaesong/TerranVirtualDisk) On the main game, any player can access any generated worlds, and thus players data and worlds are saved separately.
* Save meta The main game directory is composed of following directories:
- binary
- Filename : world (with no extension)
|Type |Mnemonic |Description | ```
|----------|-----------|-----------------------------| .Terrarum
|Byte[4] |TESV |Magic | + Players
|Byte[n] |name |Savegame name, UTF-8 | - "${PlayerName}-${UUID}", TVDA {
|Byte |NULL |String terminator | [-1] player JSON,
|Byte[8] |terraseed |Terrain seed | [-2] spritedef,
|Byte[8] |rogueseed |Randomiser seed | [-3] optional spritedef-glow,
|Byte[4] |crc1 |CRC-32 of worldinfo1 entry | [-1025] sprite-bodypart-name-to-entry-number-map.properties,
|Byte[4] |crc2 |CRC-32 of worldinfo2 entry | [-1026] spriteglow-bodypart-name-to-entry-number-map.properties,
|Byte[4] |crc3 |CRC-32 of worldinfo3 entry | [1+] optional bodyparts tga.gz
|Byte[4] |crc4 |CRC-32 of worldinfo4 entry | }
|Byte[32] |hash4321 |SHA-256 of crc4..crc3..crc2..crc1| *if file -1025 is not there, read bodyparts from assets directory
|Int |refid |Reference ID of the player | *optionally encrypt the files other than -1
|Long |time_t |Current world's time_t | *disk name is player's name encoded in UTF-8
|Byte[6] |t_create |Creation time of the savefile in time_t| + Shared
|Byte[6] |t_lastacc |Last play time in time_t | - <e.g. Disk GUID>, TEVD { * }
|Int |t_wasted |Total playtime in time_t | - <this directory can have anything>
+ Worlds
Endianness: Big - "${WorldName}-${UUID}", TVDA {
[-1] world JSON with Player Data,
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 [actorID] actors (mainly fixtures) JSON,
[0x1_0000_0000L or (layerNumber shl 24) or chunkNumber] chunk data,
[-2] screenshot.tga.gz taken by the last player
}
*disk name is world's name encoded in UTF-8
```
* Actor/Faction data (TEVD stands for Terrarum Virtual Disk spec version 3, TVDA stands for spec version 254; both have MAGIC header of `TEVd`)
- GSON
- Filename : (refid) (with no extension)
Do not rely on filename to look for a world; players can change the filename
* Prop data ## Handling The Player Data
- CSV
- Filename : (with no extension)
worldinfo2 -- tileprop
worldinfo3 -- itemprop
worldinfo4 -- materialprop
worldinfo5 -- modules loadorder
Some of the "player assets" are stored to the world, such assets include:
- Physical Status (last position and size as in scale)
- Inventory (instance of ActorInventory)
- Actorvalues (only on Multiplayer)
* Human-readable ### Loading Procedure
- 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
1. Load the Actor completely first
2. Load the World
3. Overwrite player data with the World's
If the World has the Actorvalue, World's value will be used; otherwise use incoming Player's
Multiplayer world will initialise Actorvalue pool using incoming value -- or they may choose to use
their own Actorvalue called "gamerules" to either implement their own "gamemode" or prevent cheating)
## How it works ## For Singleplayer, only the xy-position is saved to the world for later load.
* 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: Worlds must overwrite new Actor's position to make them spawn in right place.
+--- <save1.tevd> ### Remarks
--- 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. Making `inventory` transient is impossible as it would render Storage Chests unusable.
## Prerequisites
1. Player ID must not be strictly 9545698 (0x91A7E2)
1. Use classname `net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer` to check
2. Each World and Player has to be uniquely identifiable via GUID
3. `ActorNowPlaying` must be drawn on top of other actors of same RenderOrder
## To-dos After the Initial Implementation
1. Modify Savegame Crackers and Disk Crackers to work with the new scheme
2. Create Player Creator Tool for avatar-makers
## Goals
1. Allow multiple players share the same world
2. Make multiplayer possible
3. Make Players distributable (like VRChat avatars)

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)

View File

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

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

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.

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

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.

Binary file not shown.

View File

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.

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

Binary file not shown.

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

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

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

Binary file not shown.

View File

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

Binary file not shown.

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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