From 8daf0a2c38899c05f99af1c558eb3373c31df3e6 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Thu, 21 Jun 2018 17:33:22 +0900 Subject: [PATCH] still wip modularisation, game somehow boots --- .gitignore | 1 + assets/crt.frag | 44 +++ assets/loopey.wav | Bin 0 -> 947372 bytes ....groovy => basegame_groovy_delete_pending} | 0 assets/modules/basegame/items/testpick.nope | 4 +- assets/modules/basegame/metadata.properties | 3 +- .../gdx/backends/lwjgl/audio/OpenALAudio.java | 367 ++++++++++++++++++ src/net/torvald/aa/KDHeapifiedTree.kt | 6 +- src/net/torvald/colourutil/CIEXYZUtil.kt | 132 +++++-- src/net/torvald/point/Point2d.kt | 4 +- src/net/torvald/random/TileableValueNoise.kt | 4 +- .../spriteanimation/SpriteAnimation.kt | 2 +- ...{TerrarumAppLoader.java => AppLoader.java} | 20 +- src/net/torvald/terrarum/ColorLimiterTest.kt | 2 - src/net/torvald/terrarum/DefaultConfig.kt | 2 +- src/net/torvald/terrarum/ErrorDisp.kt | 6 +- .../torvald/terrarum/FuckingWorldRenderer.kt | 13 +- src/net/torvald/terrarum/GlslTilingTest.kt | 7 +- src/net/torvald/terrarum/GsonSerialisable.kt | 13 + src/net/torvald/terrarum/KVHashMap.kt | 21 +- src/net/torvald/terrarum/LoadScreen.kt | 2 +- src/net/torvald/terrarum/ModMgr.kt | 14 +- src/net/torvald/terrarum/ModuleEntryPoint.kt | 8 + src/net/torvald/terrarum/Terrarum.kt | 286 +++++++++++--- src/net/torvald/terrarum/TitleScreen.kt | 19 +- .../torvald/terrarum/UIItemInventoryCatBar.kt | 4 +- .../torvald/terrarum/UIItemInventoryElem.kt | 7 +- .../terrarum/UIItemInventoryElemSimple.kt | 7 +- .../terrarum/audio/SpatialAudioMixer.kt | 128 +++++- .../surroundpanner/SurroundPannerTest.kt | 174 +++++++++ .../terrarum/blockproperties/BlockPropUtil.kt | 9 +- .../torvald/terrarum/blockstats/BlockStats.kt | 5 +- .../torvald/terrarum/console/Authenticator.kt | 2 +- .../torvald/terrarum/console/CheatWarnTest.kt | 13 - .../torvald/terrarum/console/CommandDict.kt | 1 + src/net/torvald/terrarum/console/QuitApp.kt | 2 + src/net/torvald/terrarum/console/Seed.kt | 20 - .../console/SetGlobalLightOverride.kt | 3 +- src/net/torvald/terrarum/console/SetLocale.kt | 11 +- src/net/torvald/terrarum/console/Version.kt | 4 +- src/net/torvald/terrarum/gameactors/Actor.kt | 39 +- .../terrarum/gameactors/ActorWithBody.kt | 2 + .../terrarum/gameactors/ai/AILuaAPI.kt | 23 +- .../torvald/terrarum/gameactors/ai/ActorAI.kt | 5 +- .../terrarum/gameactors/ai/LuaAIWrapper.kt | 13 +- .../torvald/terrarum/gameactors/ai/NullAI.kt | 12 + .../gamecontroller/IngameController.kt | 4 +- .../torvald/terrarum/gameworld/GameWorld.kt | 2 + .../torvald/terrarum/gameworld/MapLayer.kt | 2 +- .../torvald/terrarum/gameworld/MapPoint.kt | 2 - .../torvald/terrarum/imagefont/TinyAlphNum.kt | 2 +- .../terrarum/itemproperties/Calculate.kt | 3 +- .../terrarum/itemproperties/GameItem.kt | 6 +- .../terrarum/itemproperties/ItemCodex.kt | 41 +- .../itemproperties/ItemEffectsLuaAPI.kt | 5 +- src/net/torvald/terrarum/langpack/Lang.kt | 6 +- .../terrarum/modulebasegame/EntryPoint.kt | 106 +++++ .../terrarum/{ => modulebasegame}/Ingame.kt | 203 ++++------ .../{ => modulebasegame}/console/AVTracker.kt | 10 +- .../console/ActorsList.kt | 9 +- .../{ => modulebasegame}/console/CatStdout.kt | 4 +- .../modulebasegame/console/CheatWarnTest.kt | 15 + .../console/CodexEdictis.kt | 6 +- .../{ => modulebasegame}/console/ExportAV.kt | 7 +- .../console/ExportLayerData.kt | 5 +- .../{ => modulebasegame}/console/ExportMap.kt | 14 +- .../{ => modulebasegame}/console/ForceGC.kt | 5 +- .../{ => modulebasegame}/console/GetAV.kt | 37 +- .../console/GetFactioning.kt | 8 +- .../{ => modulebasegame}/console/GetLocale.kt | 4 +- .../{ => modulebasegame}/console/GetTime.kt | 7 +- .../{ => modulebasegame}/console/GsonTest.kt | 7 +- .../{ => modulebasegame}/console/Help.kt | 4 +- .../console/ImportLayerData.kt | 14 +- .../{ => modulebasegame}/console/Inventory.kt | 14 +- .../console/JavaIMTest.kt | 4 +- .../{ => modulebasegame}/console/KillActor.kt | 5 +- .../{ => modulebasegame}/console/LangTest.kt | 4 +- .../{ => modulebasegame}/console/MoneyDisp.kt | 4 +- .../{ => modulebasegame}/console/MusicTest.kt | 4 +- .../console/PrintRandomTips.kt | 6 +- .../terrarum/modulebasegame/console/Seed.kt | 23 ++ .../{ => modulebasegame}/console/SetAV.kt | 8 +- .../console/SetBulletin.kt | 6 +- .../{ => modulebasegame}/console/SetScale.kt | 12 +- .../{ => modulebasegame}/console/SetTime.kt | 16 +- .../console/SetTimeDelta.kt | 14 +- .../console/SpawnPhysTestBall.kt | 15 +- .../console/SpawnPhysTestLunarLander.kt | 10 +- .../console/SpawnTapestry.kt | 6 +- .../console/SpawnTikiTorch.kt | 9 +- .../{ => modulebasegame}/console/Teleport.kt | 12 +- .../console/ToggleNoClip.kt | 9 +- .../{ => modulebasegame}/console/Zoom.kt | 4 +- .../debuggerapp/ActorValueTracker.kt | 11 +- .../{ => modulebasegame}/gameactors/AVKey.kt | 7 +- .../gameactors/ActorHumanoid.kt | 22 +- .../gameactors/ActorInventory.kt | 9 +- .../gameactors/ActorWithPhysics.kt | 89 +---- .../gameactors/CanBeAnItem.kt | 2 +- .../gameactors/CreatureBuilder.kt | 3 +- .../gameactors/DecodeTapestry.kt | 5 +- .../gameactors/DroppedItem.kt | 4 +- .../gameactors/FixtureBase.kt | 4 +- .../gameactors/FixtureTikiTorch.kt | 4 +- .../gameactors/HistoricalFigure.kt | 9 +- .../gameactors/HumanoidNPC.kt | 15 +- .../gameactors/InjectCreatureRaw.kt | 3 +- .../gameactors/LandHolder.kt | 2 +- .../gameactors/ParticleBase.kt | 14 +- .../gameactors/ParticleMegaRain.kt | 5 +- .../gameactors/ParticleTestRain.kt | 3 +- .../gameactors/PhysTestBall.kt | 11 +- .../gameactors/PhysTestLuarLander.kt | 4 +- .../gameactors/PlayableActorDelegate.kt | 4 +- .../{ => modulebasegame}/gameactors/Player.kt | 2 +- .../gameactors/PlayerBuilder.kt | 6 +- .../gameactors/PlayerBuilderCynthia.kt | 9 +- .../gameactors/PlayerBuilderSigrid.kt | 6 +- .../gameactors/PlayerBuilderTestSubject1.kt | 5 +- .../gameactors/Pocketed.kt | 4 +- .../gameactors/Projectile.kt | 2 +- .../gameactors/ProjectileHoming.kt | 2 +- .../gameactors/ProjectileSimple.kt | 9 +- .../gameactors/TapestryObject.kt | 2 +- .../gameactors/ThreadActorUpdate.kt | 3 +- .../gameactors/WeaponSwung.kt | 6 +- .../gameactors/ai/SmarterSlimes.kt | 18 +- .../physicssolver/CollisionSolver.kt | 9 +- .../gameactors/physicssolver/SolveByUnit.kt | 2 +- .../physicssolver/VelocitySolver.kt | 4 +- .../gameworld/GameEconomy.kt | 2 +- .../gameworld/WorldSimulator.kt | 11 +- .../gameworld/WorldTime.kt | 10 +- .../gameworld/WorldTime_old.kt | 4 +- .../imagefont/NewRunes.kt | 2 +- .../imagefont/Watch7SegMain.kt | 2 +- .../imagefont/Watch7SegSmall.kt | 2 +- .../imagefont/WatchDotAlph.kt | 2 +- .../modulebasegame/items/PickaxeGeneric.kt | 15 +- .../magiccontroller}/MDLInterpreterState.kt | 4 +- .../magiccontroller/TheMagicLanguage.kt | 109 ++++++ .../magiccontroller/TheMagicMachine.kt | 18 + .../{ => modulebasegame}/ui/AmmoMeterProxy.kt | 5 +- .../ui/ItemSlotImageBuilder.kt | 4 +- .../{ => modulebasegame}/ui/MessageWindow.kt | 5 +- .../{ => modulebasegame}/ui/Notification.kt | 13 +- .../{ => modulebasegame}/ui/NullUI.kt | 3 +- .../ui/UIBasicNotifier.kt | 20 +- .../ui/UICheatDetected.kt | 5 +- .../{ => modulebasegame}/ui/UIInventory.kt | 19 +- .../ui/UIInventoryFull.kt | 18 +- .../ui/UIItemInventoryCellBase.kt | 3 +- .../ui/UIItemInventoryDynamicList.kt | 20 +- .../ui/UIItemInventoryEquippedView.kt | 9 +- .../ui/UIItemModuleInfoCell.kt | 6 +- .../{ => modulebasegame}/ui/UIPieMenu.kt | 24 +- .../{ => modulebasegame}/ui/UIQuickBar.kt | 14 +- .../{ => modulebasegame}/ui/UITierOneWatch.kt | 24 +- .../ui/UITitleRemoConCredits.kt | 7 +- .../ui/UITitleRemoConLanguage.kt | 10 +- .../ui/UITitleRemoConModules.kt | 8 +- .../ui/UITitleRemoConRoot.kt | 12 +- .../{ => modulebasegame}/ui/UITooltip.kt | 7 +- .../{ => modulebasegame}/ui/UIVitalMetre.kt | 15 +- .../worldgenerator/FloatingIslandsPreset.kt | 2 +- .../worldgenerator/FloatingIslePreset01.kt | 2 +- .../worldgenerator/FloatingIslePreset02.kt | 2 +- .../worldgenerator/FloatingIslePreset03.kt | 2 +- .../worldgenerator/FloatingIslePreset04.kt | 2 +- .../worldgenerator/FloatingIslePreset05.kt | 2 +- .../worldgenerator/NoiseFilter.kt | 2 +- .../worldgenerator/NoiseFilterCubic.kt | 2 +- .../NoiseFilterMinusQuadratic.kt | 2 +- .../worldgenerator/NoiseFilterQuadratic.kt | 2 +- .../worldgenerator/NoiseFilterSqrt.kt | 2 +- .../worldgenerator/NoiseFilterUniform.kt | 2 +- .../worldgenerator/RoguelikeRandomiser.kt | 2 +- .../worldgenerator/SimplexNoise.kt | 2 +- .../worldgenerator/SimplexNoise_octave.kt | 2 +- .../ThreadProcessNoiseLayers.kt | 2 +- .../worldgenerator/WorldGenerator.kt | 4 +- .../worldgenerator/floatingIslePreset01.png | Bin .../worldgenerator/floatingIslePreset02.png | Bin .../worldgenerator/floatingIslePreset03.png | Bin .../worldgenerator/floatingIslePreset04.png | Bin .../worldgenerator/floatingIslePreset05.png | Bin .../assets/loots/dummix/bin/cp.lua | 0 .../assets/loots/dummix/bin/dsh.lua | 0 .../assets/loots/dummix/bin/lessismore.lua | 0 .../assets/loots/dummix/bin/ls.lua | 0 .../assets/loots/dummix/bin/msh.lua | 0 .../assets/loots/dummix/bin/mv.lua | 0 .../assets/loots/dummix/boot/efi | 0 .../assets/loots/dummix/etc/.dshrc | 0 .../assets/loots/dummix/etc/_boot.lua | 0 .../assets/loots/dummix/usr/share/man/msh | 0 .../virtualcomputer/assets/lua/BOOT.lua | 0 .../virtualcomputer/assets/lua/BRAINFUCK.lua | 0 .../virtualcomputer/assets/lua/CCAPI.lua | 0 .../virtualcomputer/assets/lua/ROMLIB.lua | 0 .../virtualcomputer/assets/lua/TBASEXEC.lua | 0 .../virtualcomputer/assets/lua/TBASEXTN.lua | 0 .../virtualcomputer/assets/lua/TBASIC.lua | 0 .../virtualcomputer/assets/lua/TBASINCL.lua | 0 .../assets/lua/rombasicman.txt | 0 .../computer/TerrarumComputer.kt | 61 ++- .../virtualcomputer/luaapi/FilesystemDir.kt | 36 +- .../luaapi/FilesystemFactory.kt | 2 +- .../virtualcomputer/luaapi/FilesystemTEVD.kt | 49 ++- .../luaapi/HostAccessProvider.kt | 20 +- .../virtualcomputer/luaapi/Input.kt | 16 + .../virtualcomputer/luaapi/PcSpeakerDriver.kt | 10 +- .../virtualcomputer/luaapi/Security.kt | 2 +- .../virtualcomputer/luaapi/Term.kt | 76 ++-- .../luaapi/WorldInformationProvider.kt | 9 +- .../virtualcomputer/peripheral/Peripheral.kt | 2 +- .../peripheral/PeripheralCharLCD.kt | 4 +- .../peripheral/PeripheralInternet.kt | 8 +- .../peripheral/PeripheralPSG.kt | 8 +- .../peripheral/PeripheralVideoCard.kt | 2 +- .../terminal/GraphicsTerminal.kt | 8 +- .../terminal/SimpleTextTerminal.kt | 2 +- .../virtualcomputer/terminal/Teletype.kt | 2 +- .../terminal/TeletypeTerminal.kt | 2 +- .../virtualcomputer/terminal/Terminal.kt | 6 +- .../terminal/TerminalInputStream.kt | 6 +- .../terminal/TerminalPrintStream.kt | 14 + .../virtualcomputer/tvd/ByteArray64.kt | 2 +- .../virtualcomputer/tvd/DiskSkimmer.kt | 2 +- .../virtualcomputer/tvd/VDUtil.kt | 24 +- .../virtualcomputer/tvd/VirtualDisk.kt | 22 +- .../virtualcomputer/tvd/tvd_20170723.zip | Bin .../worldobject/ComputerPartsCodex.kt | 2 +- .../worldobject/FixtureBasicTerminal.kt | 9 +- .../worldobject/FixtureComputerBase.kt | 15 +- .../worldobject/ui/UITextTerminal.kt | 8 +- .../terrarum/serialise/WriteLayerData.kt | 3 +- .../torvald/terrarum/serialise/WriteMeta.kt | 4 +- .../terrarum/ui/BasicDebugInfoWindow.kt | 21 +- src/net/torvald/terrarum/ui/ConsoleWindow.kt | 4 +- src/net/torvald/terrarum/ui/UICanvas.kt | 5 +- src/net/torvald/terrarum/ui/UIHandler.kt | 4 +- .../torvald/terrarum/ui/UIItemImageGallery.kt | 2 +- src/net/torvald/terrarum/ui/UIItemList.kt | 2 +- src/net/torvald/terrarum/ui/UIItemTextArea.kt | 3 +- .../terrarum/ui/UIItemTextButtonList.kt | 6 +- src/net/torvald/terrarum/ui/UIUtils.kt | 2 +- .../terrarum/virtualcomputer/luaapi/Input.kt | 16 - .../terminal/TerminalPrintStream.kt | 14 - .../torvald/terrarum/weather/WeatherMixer.kt | 14 +- .../terrarum/worlddrawer/BlocksDrawerNew.kt | 2 +- .../terrarum/worlddrawer/BlocksDrawer_old.kt | 2 +- .../terrarum/worlddrawer/LightmapRenderer.kt | 5 +- .../worlddrawer/LightmapRendererNew.kt | 6 +- .../terrarum/worlddrawer/WorldCamera.kt | 3 +- work_files/GameDesign/MISC_FEATURES.md | 2 +- .../graphics/gui/setting_audio_channels.psd | 4 +- .../gui/watches/poketch_prg01_graphics.bin | Bin 16384 -> 1536 bytes .../watches/poketch_prg01_graphics.bin.bak | Bin 0 -> 16384 bytes .../poketch_prg01_graphics_alphonly.bin | Bin 0 -> 8192 bytes .../poketch_prg01_graphics_no_moon.bin | Bin 0 -> 8192 bytes .../poketch_prg01_graphics_no_moon.bin.bak | Bin 0 -> 1536 bytes .../poketch_prg01_graphics_numonly.bin | Bin 0 -> 8192 bytes .../gui/watches/poketch_program_01.psd | 4 +- work_files/spatialAudioMixMat.xlsx | Bin 0 -> 21966 bytes 266 files changed, 2409 insertions(+), 1122 deletions(-) create mode 100644 assets/crt.frag create mode 100644 assets/loopey.wav rename assets/modules/basegame/{basegame.groovy => basegame_groovy_delete_pending} (100%) create mode 100644 src/com/badlogic/gdx/backends/lwjgl/audio/OpenALAudio.java rename src/net/torvald/terrarum/{TerrarumAppLoader.java => AppLoader.java} (93%) create mode 100644 src/net/torvald/terrarum/GsonSerialisable.kt create mode 100644 src/net/torvald/terrarum/ModuleEntryPoint.kt create mode 100644 src/net/torvald/terrarum/audio/surroundpanner/SurroundPannerTest.kt delete mode 100644 src/net/torvald/terrarum/console/CheatWarnTest.kt delete mode 100644 src/net/torvald/terrarum/console/Seed.kt create mode 100644 src/net/torvald/terrarum/gameactors/ai/NullAI.kt create mode 100644 src/net/torvald/terrarum/modulebasegame/EntryPoint.kt rename src/net/torvald/terrarum/{ => modulebasegame}/Ingame.kt (92%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/AVTracker.kt (74%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/ActorsList.kt (63%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/CatStdout.kt (81%) create mode 100644 src/net/torvald/terrarum/modulebasegame/console/CheatWarnTest.kt rename src/net/torvald/terrarum/{ => modulebasegame}/console/CodexEdictis.kt (85%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/ExportAV.kt (77%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/ExportLayerData.kt (78%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/ExportMap.kt (87%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/ForceGC.kt (66%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/GetAV.kt (70%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/GetFactioning.kt (93%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/GetLocale.kt (77%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/GetTime.kt (55%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/GsonTest.kt (79%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/Help.kt (81%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/ImportLayerData.kt (58%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/Inventory.kt (80%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/JavaIMTest.kt (76%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/KillActor.kt (80%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/LangTest.kt (74%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/MoneyDisp.kt (74%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/MusicTest.kt (88%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/PrintRandomTips.kt (70%) create mode 100644 src/net/torvald/terrarum/modulebasegame/console/Seed.kt rename src/net/torvald/terrarum/{ => modulebasegame}/console/SetAV.kt (91%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/SetBulletin.kt (73%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/SetScale.kt (71%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/SetTime.kt (50%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/SetTimeDelta.kt (52%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/SpawnPhysTestBall.kt (73%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/SpawnPhysTestLunarLander.kt (56%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/SpawnTapestry.kt (69%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/SpawnTikiTorch.kt (52%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/Teleport.kt (88%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/ToggleNoClip.kt (51%) rename src/net/torvald/terrarum/{ => modulebasegame}/console/Zoom.kt (87%) rename src/net/torvald/terrarum/{ => modulebasegame}/debuggerapp/ActorValueTracker.kt (94%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/AVKey.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ActorHumanoid.kt (96%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ActorInventory.kt (96%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ActorWithPhysics.kt (94%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/CanBeAnItem.kt (81%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/CreatureBuilder.kt (83%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/DecodeTapestry.kt (96%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/DroppedItem.kt (90%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/FixtureBase.kt (85%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/FixtureTikiTorch.kt (87%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/HistoricalFigure.kt (85%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/HumanoidNPC.kt (89%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/InjectCreatureRaw.kt (97%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/LandHolder.kt (87%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ParticleBase.kt (80%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ParticleMegaRain.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ParticleTestRain.kt (86%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/PhysTestBall.kt (68%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/PhysTestLuarLander.kt (90%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/PlayableActorDelegate.kt (88%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/Player.kt (92%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/PlayerBuilder.kt (62%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/PlayerBuilderCynthia.kt (84%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/PlayerBuilderSigrid.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/PlayerBuilderTestSubject1.kt (82%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/Pocketed.kt (96%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/Projectile.kt (77%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ProjectileHoming.kt (86%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ProjectileSimple.kt (90%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/TapestryObject.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ThreadActorUpdate.kt (91%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/WeaponSwung.kt (81%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/ai/SmarterSlimes.kt (70%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/physicssolver/CollisionSolver.kt (96%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/physicssolver/SolveByUnit.kt (76%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameactors/physicssolver/VelocitySolver.kt (54%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameworld/GameEconomy.kt (94%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameworld/WorldSimulator.kt (96%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameworld/WorldTime.kt (97%) rename src/net/torvald/terrarum/{ => modulebasegame}/gameworld/WorldTime_old.kt (98%) rename src/net/torvald/terrarum/{ => modulebasegame}/imagefont/NewRunes.kt (97%) rename src/net/torvald/terrarum/{ => modulebasegame}/imagefont/Watch7SegMain.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/imagefont/Watch7SegSmall.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/imagefont/WatchDotAlph.kt (95%) rename src/net/torvald/terrarum/{gameactors => modulebasegame/magiccontroller}/MDLInterpreterState.kt (97%) create mode 100644 src/net/torvald/terrarum/modulebasegame/magiccontroller/TheMagicLanguage.kt create mode 100644 src/net/torvald/terrarum/modulebasegame/magiccontroller/TheMagicMachine.kt rename src/net/torvald/terrarum/{ => modulebasegame}/ui/AmmoMeterProxy.kt (88%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/ItemSlotImageBuilder.kt (89%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/MessageWindow.kt (94%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/Notification.kt (85%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/NullUI.kt (87%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIBasicNotifier.kt (83%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UICheatDetected.kt (92%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIInventory.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIInventoryFull.kt (93%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIItemInventoryCellBase.kt (89%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIItemInventoryDynamicList.kt (94%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIItemInventoryEquippedView.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIItemModuleInfoCell.kt (94%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIPieMenu.kt (82%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIQuickBar.kt (86%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UITierOneWatch.kt (81%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UITitleRemoConCredits.kt (93%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UITitleRemoConLanguage.kt (91%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UITitleRemoConModules.kt (93%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UITitleRemoConRoot.kt (88%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UITooltip.kt (93%) rename src/net/torvald/terrarum/{ => modulebasegame}/ui/UIVitalMetre.kt (91%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/FloatingIslandsPreset.kt (97%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/FloatingIslePreset01.kt (99%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/FloatingIslePreset02.kt (99%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/FloatingIslePreset03.kt (99%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/FloatingIslePreset04.kt (99%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/FloatingIslePreset05.kt (99%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/NoiseFilter.kt (70%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/NoiseFilterCubic.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/NoiseFilterMinusQuadratic.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/NoiseFilterQuadratic.kt (95%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/NoiseFilterSqrt.kt (91%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/NoiseFilterUniform.kt (76%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/RoguelikeRandomiser.kt (96%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/SimplexNoise.kt (97%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/SimplexNoise_octave.kt (99%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/ThreadProcessNoiseLayers.kt (98%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/WorldGenerator.kt (99%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/floatingIslePreset01.png (100%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/floatingIslePreset02.png (100%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/floatingIslePreset03.png (100%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/floatingIslePreset04.png (100%) rename src/net/torvald/terrarum/{ => modulebasegame}/worldgenerator/floatingIslePreset05.png (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/bin/cp.lua (100%) mode change 100755 => 100644 rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/bin/dsh.lua (100%) mode change 100755 => 100644 rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/bin/lessismore.lua (100%) mode change 100755 => 100644 rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/bin/ls.lua (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/bin/msh.lua (100%) mode change 100755 => 100644 rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/bin/mv.lua (100%) mode change 100755 => 100644 rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/boot/efi (100%) mode change 100755 => 100644 rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/etc/.dshrc (100%) mode change 100755 => 100644 rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/etc/_boot.lua (100%) mode change 100755 => 100644 rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/loots/dummix/usr/share/man/msh (100%) mode change 100755 => 100644 rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/lua/BOOT.lua (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/lua/BRAINFUCK.lua (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/lua/CCAPI.lua (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/lua/ROMLIB.lua (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/lua/TBASEXEC.lua (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/lua/TBASEXTN.lua (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/lua/TBASIC.lua (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/lua/TBASINCL.lua (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/assets/lua/rombasicman.txt (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/computer/TerrarumComputer.kt (85%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/luaapi/FilesystemDir.kt (89%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/luaapi/FilesystemFactory.kt (52%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/luaapi/FilesystemTEVD.kt (86%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/luaapi/HostAccessProvider.kt (60%) create mode 100644 src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Input.kt rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/luaapi/PcSpeakerDriver.kt (90%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/luaapi/Security.kt (97%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/luaapi/Term.kt (63%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/luaapi/WorldInformationProvider.kt (88%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/peripheral/Peripheral.kt (81%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/peripheral/PeripheralCharLCD.kt (89%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/peripheral/PeripheralInternet.kt (73%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/peripheral/PeripheralPSG.kt (54%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/peripheral/PeripheralVideoCard.kt (99%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/terminal/GraphicsTerminal.kt (96%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/terminal/SimpleTextTerminal.kt (99%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/terminal/Teletype.kt (92%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/terminal/TeletypeTerminal.kt (98%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/terminal/Terminal.kt (90%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/terminal/TerminalInputStream.kt (58%) create mode 100644 src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TerminalPrintStream.kt rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/tvd/ByteArray64.kt (98%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/tvd/DiskSkimmer.kt (98%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/tvd/VDUtil.kt (96%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/tvd/VirtualDisk.kt (87%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/tvd/tvd_20170723.zip (100%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/worldobject/ComputerPartsCodex.kt (96%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/worldobject/FixtureBasicTerminal.kt (58%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/worldobject/FixtureComputerBase.kt (72%) rename src/net/torvald/terrarum/{ => modulecomputers}/virtualcomputer/worldobject/ui/UITextTerminal.kt (79%) delete mode 100644 src/net/torvald/terrarum/virtualcomputer/luaapi/Input.kt delete mode 100644 src/net/torvald/terrarum/virtualcomputer/terminal/TerminalPrintStream.kt create mode 100644 work_files/graphics/gui/watches/poketch_prg01_graphics.bin.bak create mode 100644 work_files/graphics/gui/watches/poketch_prg01_graphics_alphonly.bin create mode 100644 work_files/graphics/gui/watches/poketch_prg01_graphics_no_moon.bin create mode 100644 work_files/graphics/gui/watches/poketch_prg01_graphics_no_moon.bin.bak create mode 100644 work_files/graphics/gui/watches/poketch_prg01_graphics_numonly.bin create mode 100644 work_files/spatialAudioMixMat.xlsx diff --git a/.gitignore b/.gitignore index 580e3b816..eb642599c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ Thumbs.db ~$* assets/modules/basegame/demoworld assets/modules/basegame/demoworld.gz +external_resource_packs.zip diff --git a/assets/crt.frag b/assets/crt.frag new file mode 100644 index 000000000..5d372e3ee --- /dev/null +++ b/assets/crt.frag @@ -0,0 +1,44 @@ +#version 120 +#ifdef GL_ES + precision mediump float; +#endif + + +varying vec4 v_color; +varying vec2 v_texCoords; +uniform sampler2D u_texture; + +uniform vec2 resolution; + +uniform vec3 phosphor_colour = vec3(1.3, 0.8567, 0.0); +vec3 scanline_darkening = vec3(0.45, 0.45, 0.45); + +// 0: every odd line will get darkened; 1: every even line will get darkened +uniform float alternative_scanline = 0.0; // 1.0: true + +uniform float blur_blend = 0.3; + +void main(void) { + vec3 color = texture2D(u_texture, v_texCoords).rgb; + vec3 color_pre = texture2D(u_texture, (gl_FragCoord + vec2(-1.0, 0.0)) / resolution).rgb; + vec3 color_next = texture2D(u_texture, (gl_FragCoord + vec2( 1.0, 0.0)) / resolution).rgb; + + color = color * (1.0 - blur_blend) + color_pre * (blur_blend / 2.0) + color_next * (blur_blend / 2.0); + + bool is_scanline = mod(int(gl_FragCoord.y), 2) == int(alternative_scanline); + + float color_luminosity = ( + 3.0 * color.r + + 4.0 * color.g + + 1.0 * color.b + ) / 8.0; + + // out colour + color = vec3(color_luminosity) * phosphor_colour; + + if (is_scanline) { + color = color * scanline_darkening; + } + + gl_FragColor = vec4(color, 1.0); +} \ No newline at end of file diff --git a/assets/loopey.wav b/assets/loopey.wav new file mode 100644 index 0000000000000000000000000000000000000000..a8de1b073d480354910cfd01cf27f2ac0e5ad5d0 GIT binary patch literal 947372 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

P|&s4(`V>R<~^BZtw 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

ItQuKi;3<9|w~BHe5B|gT=wd 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
^#>N=96c4Cfc|K%)B+Vm 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�Zk|iUE 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 p2>mxb0g+Rl9Y7dw-oC=23h`D4R=WGx7V1Kod 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 Po_INgl{Tc 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 GN&Fw9GOtJg literal 0 HcmV?d00001 diff --git a/assets/modules/basegame/basegame.groovy b/assets/modules/basegame/basegame_groovy_delete_pending similarity index 100% rename from assets/modules/basegame/basegame.groovy rename to assets/modules/basegame/basegame_groovy_delete_pending diff --git a/assets/modules/basegame/items/testpick.nope b/assets/modules/basegame/items/testpick.nope index 4c7914368..56cb86103 100644 --- a/assets/modules/basegame/items/testpick.nope +++ b/assets/modules/basegame/items/testpick.nope @@ -6,8 +6,8 @@ import net.torvald.point.Point2d import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameactors.ActorWithPhysics +import net.torvald.terrarum.modulebasegame.gameactors.AVKey +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics import net.torvald.terrarum.itemproperties.Calculate import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.Material diff --git a/assets/modules/basegame/metadata.properties b/assets/modules/basegame/metadata.properties index 9e591e75c..2d2d30e49 100644 --- a/assets/modules/basegame/metadata.properties +++ b/assets/modules/basegame/metadata.properties @@ -8,7 +8,8 @@ description=The base game author=Terrarum # Name of the entry script -entrypoint=basegame.groovy +# Entry script must inherit net.torvald.terrarum.ModuleEntryPoint +entrypoint=net.torvald.terrarum.modulebasegame.EntryPoint # Release date in YYYY-MM-DD releasedate=2017-07-14 diff --git a/src/com/badlogic/gdx/backends/lwjgl/audio/OpenALAudio.java b/src/com/badlogic/gdx/backends/lwjgl/audio/OpenALAudio.java new file mode 100644 index 000000000..593573ed4 --- /dev/null +++ b/src/com/badlogic/gdx/backends/lwjgl/audio/OpenALAudio.java @@ -0,0 +1,367 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.lwjgl.audio; + +import java.nio.FloatBuffer; + +import org.lwjgl.BufferUtils; +import org.lwjgl.LWJGLException; +import org.lwjgl.openal.AL; +import org.lwjgl.openal.AL10; + +import com.badlogic.gdx.Audio; +import com.badlogic.gdx.audio.AudioDevice; +import com.badlogic.gdx.audio.AudioRecorder; +import com.badlogic.gdx.files.FileHandle; +import com.badlogic.gdx.math.MathUtils; +import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.GdxRuntimeException; +import com.badlogic.gdx.utils.IntArray; +import com.badlogic.gdx.utils.IntMap; +import com.badlogic.gdx.utils.LongMap; +import com.badlogic.gdx.utils.ObjectMap; + +import static org.lwjgl.openal.AL10.*; + +/** @author Nathan Sweet */ +public class OpenALAudio implements Audio { + private final int deviceBufferSize; + private final int deviceBufferCount; + private IntArray idleSources, allSources; + private LongMap soundIdToSource; + private IntMap sourceToSoundId; + private long nextSoundId = 0; + private ObjectMap> extensionToSoundClass = new ObjectMap(); + private ObjectMap> extensionToMusicClass = new ObjectMap(); + private OpenALSound[] recentSounds; + private int mostRecetSound = -1; + + Array music = new Array(false, 1, OpenALMusic.class); + boolean noDevice = false; + + public OpenALAudio () { + this(16, 9, 512); + } + + public OpenALAudio (int simultaneousSources, int deviceBufferCount, int deviceBufferSize) { + this.deviceBufferSize = deviceBufferSize; + this.deviceBufferCount = deviceBufferCount; + + registerSound("ogg", Ogg.Sound.class); + registerMusic("ogg", Ogg.Music.class); + registerSound("wav", Wav.Sound.class); + registerMusic("wav", Wav.Music.class); + registerSound("mp3", Mp3.Sound.class); + registerMusic("mp3", Mp3.Music.class); + + try { + AL.create(); + } catch (LWJGLException ex) { + noDevice = true; + ex.printStackTrace(); + return; + } + + allSources = new IntArray(false, simultaneousSources); + for (int i = 0; i < simultaneousSources; i++) { + int sourceID = alGenSources(); + if (alGetError() != AL_NO_ERROR) break; + allSources.add(sourceID); + } + idleSources = new IntArray(allSources); + soundIdToSource = new LongMap(); + sourceToSoundId = new IntMap(); + + FloatBuffer orientation = (FloatBuffer)BufferUtils.createFloatBuffer(6) + .put(new float[] {0.0f, 0.0f, 1.0f, 0.0f, -1.0f, 0.0f}).flip(); + alListener(AL_ORIENTATION, orientation); + FloatBuffer velocity = (FloatBuffer)BufferUtils.createFloatBuffer(3).put(new float[] {0.0f, 0.0f, 0.0f}).flip(); + alListener(AL_VELOCITY, velocity); + FloatBuffer position = (FloatBuffer)BufferUtils.createFloatBuffer(3).put(new float[] {0.0f, 0.0f, 0.0f}).flip(); + alListener(AL_POSITION, position); + + recentSounds = new OpenALSound[simultaneousSources]; + } + + public void registerSound (String extension, Class soundClass) { + if (extension == null) throw new IllegalArgumentException("extension cannot be null."); + if (soundClass == null) throw new IllegalArgumentException("soundClass cannot be null."); + extensionToSoundClass.put(extension, soundClass); + } + + public void registerMusic (String extension, Class musicClass) { + if (extension == null) throw new IllegalArgumentException("extension cannot be null."); + if (musicClass == null) throw new IllegalArgumentException("musicClass cannot be null."); + extensionToMusicClass.put(extension, musicClass); + } + + public OpenALSound newSound (FileHandle file) { + if (file == null) throw new IllegalArgumentException("file cannot be null."); + Class soundClass = extensionToSoundClass.get(file.extension().toLowerCase()); + if (soundClass == null) throw new GdxRuntimeException("Unknown file extension for sound: " + file); + try { + return soundClass.getConstructor(new Class[] {OpenALAudio.class, FileHandle.class}).newInstance(this, file); + } catch (Exception ex) { + throw new GdxRuntimeException("Error creating sound " + soundClass.getName() + " for file: " + file, ex); + } + } + + public OpenALMusic newMusic (FileHandle file) { + if (file == null) throw new IllegalArgumentException("file cannot be null."); + Class musicClass = extensionToMusicClass.get(file.extension().toLowerCase()); + if (musicClass == null) throw new GdxRuntimeException("Unknown file extension for music: " + file); + try { + return musicClass.getConstructor(new Class[] {OpenALAudio.class, FileHandle.class}).newInstance(this, file); + } catch (Exception ex) { + throw new GdxRuntimeException("Error creating music " + musicClass.getName() + " for file: " + file, ex); + } + } + + int obtainSource (boolean isMusic) { + if (noDevice) return 0; + for (int i = 0, n = idleSources.size; i < n; i++) { + int sourceId = idleSources.get(i); + int state = alGetSourcei(sourceId, AL_SOURCE_STATE); + if (state != AL_PLAYING && state != AL_PAUSED) { + if (isMusic) { + idleSources.removeIndex(i); + } else { + if (sourceToSoundId.containsKey(sourceId)) { + long soundId = sourceToSoundId.get(sourceId); + sourceToSoundId.remove(sourceId); + soundIdToSource.remove(soundId); + } + + long soundId = nextSoundId++; + sourceToSoundId.put(sourceId, soundId); + soundIdToSource.put(soundId, sourceId); + } + alSourceStop(sourceId); + alSourcei(sourceId, AL_BUFFER, 0); + AL10.alSourcef(sourceId, AL10.AL_GAIN, 1); + AL10.alSourcef(sourceId, AL10.AL_PITCH, 1); + AL10.alSource3f(sourceId, AL10.AL_POSITION, 0, 0, 1f); + return sourceId; + } + } + return -1; + } + + void freeSource (int sourceID) { + if (noDevice) return; + alSourceStop(sourceID); + alSourcei(sourceID, AL_BUFFER, 0); + if (sourceToSoundId.containsKey(sourceID)) { + long soundId = sourceToSoundId.remove(sourceID); + soundIdToSource.remove(soundId); + } + idleSources.add(sourceID); + } + + void freeBuffer (int bufferID) { + if (noDevice) return; + for (int i = 0, n = idleSources.size; i < n; i++) { + int sourceID = idleSources.get(i); + if (alGetSourcei(sourceID, AL_BUFFER) == bufferID) { + if (sourceToSoundId.containsKey(sourceID)) { + long soundId = sourceToSoundId.remove(sourceID); + soundIdToSource.remove(soundId); + } + alSourceStop(sourceID); + alSourcei(sourceID, AL_BUFFER, 0); + } + } + } + + void stopSourcesWithBuffer (int bufferID) { + if (noDevice) return; + for (int i = 0, n = idleSources.size; i < n; i++) { + int sourceID = idleSources.get(i); + if (alGetSourcei(sourceID, AL_BUFFER) == bufferID) { + if (sourceToSoundId.containsKey(sourceID)) { + long soundId = sourceToSoundId.remove(sourceID); + soundIdToSource.remove(soundId); + } + alSourceStop(sourceID); + } + } + } + + void pauseSourcesWithBuffer (int bufferID) { + if (noDevice) return; + for (int i = 0, n = idleSources.size; i < n; i++) { + int sourceID = idleSources.get(i); + if (alGetSourcei(sourceID, AL_BUFFER) == bufferID) + alSourcePause(sourceID); + } + } + + void resumeSourcesWithBuffer (int bufferID) { + if (noDevice) return; + for (int i = 0, n = idleSources.size; i < n; i++) { + int sourceID = idleSources.get(i); + if (alGetSourcei(sourceID, AL_BUFFER) == bufferID) { + if (alGetSourcei(sourceID, AL_SOURCE_STATE) == AL_PAUSED) + alSourcePlay(sourceID); + } + } + } + + public void update () { + if (noDevice) return; + for (int i = 0; i < music.size; i++) + music.items[i].update(); + } + + public long getSoundId (int sourceId) { + if (!sourceToSoundId.containsKey(sourceId)) return -1; + return sourceToSoundId.get(sourceId); + } + + public void stopSound (long soundId) { + if (!soundIdToSource.containsKey(soundId)) return; + int sourceId = soundIdToSource.get(soundId); + alSourceStop(sourceId); + } + + public void pauseSound (long soundId) { + if (!soundIdToSource.containsKey(soundId)) return; + int sourceId = soundIdToSource.get(soundId); + alSourcePause(sourceId); + } + + public void resumeSound (long soundId) { + if (!soundIdToSource.containsKey(soundId)) return; + int sourceId = soundIdToSource.get(soundId); + if (alGetSourcei(sourceId, AL_SOURCE_STATE) == AL_PAUSED) + alSourcePlay(sourceId); + } + + public void setSoundGain (long soundId, float volume) { + if (!soundIdToSource.containsKey(soundId)) return; + int sourceId = soundIdToSource.get(soundId); + AL10.alSourcef(sourceId, AL10.AL_GAIN, volume); + } + + public void setSoundLooping (long soundId, boolean looping) { + if (!soundIdToSource.containsKey(soundId)) return; + int sourceId = soundIdToSource.get(soundId); + alSourcei(sourceId, AL10.AL_LOOPING, looping ? AL10.AL_TRUE : AL10.AL_FALSE); + } + + public void setSoundPitch (long soundId, float pitch) { + if (!soundIdToSource.containsKey(soundId)) return; + int sourceId = soundIdToSource.get(soundId); + AL10.alSourcef(sourceId, AL10.AL_PITCH, pitch); + } + + public void setSoundPan (long soundId, float pan, float volume) { + if (!soundIdToSource.containsKey(soundId)) return; + int sourceId = soundIdToSource.get(soundId); + + AL10.alSource3f(sourceId, AL10.AL_POSITION, MathUtils.cos((pan - 1) * MathUtils.PI / 2), 0, + MathUtils.sin((pan + 1) * MathUtils.PI / 2)); + AL10.alSourcef(sourceId, AL10.AL_GAIN, volume); + } + + public void dispose () { + if (noDevice) return; + for (int i = 0, n = allSources.size; i < n; i++) { + int sourceID = allSources.get(i); + int state = alGetSourcei(sourceID, AL_SOURCE_STATE); + if (state != AL_STOPPED) alSourceStop(sourceID); + alDeleteSources(sourceID); + } + + sourceToSoundId.clear(); + soundIdToSource.clear(); + + AL.destroy(); + while (AL.isCreated()) { + try { + Thread.sleep(10); + } catch (InterruptedException e) { + } + } + } + + public AudioDevice newAudioDevice (int sampleRate, final boolean isMono) { + if (noDevice) return new AudioDevice() { + @Override + public void writeSamples (float[] samples, int offset, int numSamples) { + } + + @Override + public void writeSamples (short[] samples, int offset, int numSamples) { + } + + @Override + public void setVolume (float volume) { + } + + @Override + public boolean isMono () { + return isMono; + } + + @Override + public int getLatency () { + return 0; + } + + @Override + public void dispose () { + } + }; + return new OpenALAudioDevice(this, sampleRate, isMono, deviceBufferSize, deviceBufferCount); + } + + public AudioRecorder newAudioRecorder (int samplingRate, boolean isMono) { + if (noDevice) return new AudioRecorder() { + @Override + public void read (short[] samples, int offset, int numSamples) { + } + + @Override + public void dispose () { + } + }; + return new JavaSoundAudioRecorder(samplingRate, isMono); + } + + /** Retains a list of the most recently played sounds and stops the sound played least recently if necessary for a new sound to + * play */ + protected void retain (OpenALSound sound, boolean stop) { + // Move the pointer ahead and wrap + mostRecetSound++; + mostRecetSound %= recentSounds.length; + + if (stop) { + // Stop the least recent sound (the one we are about to bump off the buffer) + if (recentSounds[mostRecetSound] != null) recentSounds[mostRecetSound].stop(); + } + + recentSounds[mostRecetSound] = sound; + } + + /** Removes the disposed sound from the least recently played list */ + public void forget (OpenALSound sound) { + for (int i = 0; i < recentSounds.length; i++) { + if (recentSounds[i] == sound) recentSounds[i] = null; + } + } +} diff --git a/src/net/torvald/aa/KDHeapifiedTree.kt b/src/net/torvald/aa/KDHeapifiedTree.kt index 7a3388a79..4ca4313ce 100644 --- a/src/net/torvald/aa/KDHeapifiedTree.kt +++ b/src/net/torvald/aa/KDHeapifiedTree.kt @@ -1,10 +1,8 @@ package net.torvald.aa import net.torvald.point.Point2d -import net.torvald.terrarum.gameactors.Actor -import net.torvald.terrarum.gameactors.ActorWithPhysics -import net.torvald.terrarum.gameactors.sqr -import java.util.* +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics +import net.torvald.terrarum.sqr /** * k-d Tree that uses binary heap instead of binary tree to improve data locality diff --git a/src/net/torvald/colourutil/CIEXYZUtil.kt b/src/net/torvald/colourutil/CIEXYZUtil.kt index 33e19155d..5cb9bf227 100644 --- a/src/net/torvald/colourutil/CIEXYZUtil.kt +++ b/src/net/torvald/colourutil/CIEXYZUtil.kt @@ -7,6 +7,34 @@ import com.badlogic.gdx.graphics.Color * Created by minjaesong on 2017-01-12. */ object CIEXYZUtil { + + /** + * 0..255 -> 0.0..1.0 + */ + private val rgbLineariseLUT = Array(257, { + val step = minOf(it, 255) / 255f + + if (step > 0.04045f) + ((step + 0.055f) / 1.055f).powerOf(2.4f) + else step / 12.92f + }) + + /** + * 0..255 -> 0.0..1.0 + */ + private val rgbUnLineariseLUT = Array(257, { + val step = minOf(it, 255) / 255f + + if (step > 0.0031308f) + 1.055f * step.powerOf(1f / 2.4f) - 0.055f + else + step * 12.92f + }) + + + + + fun Color.brighterXYZ(scale: Float): Color { val xyz = this.toXYZ() xyz.X = xyz.X.times(1f + scale).clampOne() @@ -37,8 +65,8 @@ object CIEXYZUtil { fun Color.toXYZ(): CIEXYZ = RGB(this).toXYZ() - fun RGB.toXYZ(): CIEXYZ { - val newR = if (r > 0.04045f) + fun RGB.linearise(): RGB { + /*val newR = if (r > 0.04045f) ((r + 0.055f) / 1.055f).powerOf(2.4f) else r / 12.92f val newG = if (g > 0.04045f) @@ -48,32 +76,78 @@ object CIEXYZUtil { ((b + 0.055f) / 1.055f).powerOf(2.4f) else b / 12.92f - val x = 0.4124564f * newR + 0.3575761f * newG + 0.1804375f * newB - val y = 0.2126729f * newR + 0.7151522f * newG + 0.0721750f * newB - val z = 0.0193339f * newR + 0.1191920f * newG + 0.9503041f * newB + + return RGB(newR, newG, newB, alpha)*/ + + val out = floatArrayOf(0f, 0f, 0f) + for (i in 0..2) { + val value = when (i) { + 0 -> this.r + 1 -> this.g + 2 -> this.b + else -> throw Exception("Fuck you") + } + val step = value.clampOne() * 255f + val intStep = step.toInt() + + out[i] = interpolateLinear(step - intStep, rgbLineariseLUT[intStep], rgbLineariseLUT[intStep + 1]) + } + + + return RGB(out[0], out[1], out[2], alpha) + } + + fun RGB.unLinearise(): RGB { + /*val newR = if (r > 0.0031308f) + 1.055f * r.powerOf(1f / 2.4f) - 0.055f + else + r * 12.92f + val newG = if (g > 0.0031308f) + 1.055f * g.powerOf(1f / 2.4f) - 0.055f + else + g * 12.92f + val newB = if (b > 0.0031308f) + 1.055f * b.powerOf(1f / 2.4f) - 0.055f + else + b * 12.92f + + + return RGB(newR, newG, newB, alpha)*/ + + val out = floatArrayOf(0f, 0f, 0f) + for (i in 0..2) { + val value = when (i) { + 0 -> this.r + 1 -> this.g + 2 -> this.b + else -> throw Exception("Fuck you") + } + val step = value.clampOne() * 255f + val intStep = step.toInt() + + out[i] = interpolateLinear(step - intStep, rgbUnLineariseLUT[intStep], rgbUnLineariseLUT[intStep + 1]) + } + + + return RGB(out[0], out[1], out[2], alpha) + } + + fun RGB.toXYZ(): CIEXYZ { + val new = this.linearise() + + val x = 0.4124564f * new.r + 0.3575761f * new.g + 0.1804375f * new.b + val y = 0.2126729f * new.r + 0.7151522f * new.g + 0.0721750f * new.b + val z = 0.0193339f * new.r + 0.1191920f * new.g + 0.9503041f * new.b return CIEXYZ(x, y, z, alpha) } fun CIEXYZ.toRGB(): RGB { - var r = 3.2404542f * X - 1.5371385f * Y - 0.4985314f * Z - var g = -0.9692660f * X + 1.8760108f * Y + 0.0415560f * Z - var b = 0.0556434f * X - 0.2040259f * Y + 1.0572252f * Z + val r = 3.2404542f * X - 1.5371385f * Y - 0.4985314f * Z + val g = -0.9692660f * X + 1.8760108f * Y + 0.0415560f * Z + val b = 0.0556434f * X - 0.2040259f * Y + 1.0572252f * Z - if (r > 0.0031308f) - r = 1.055f * r.powerOf(1f / 2.4f) - 0.055f - else - r *= 12.92f - if (g > 0.0031308f) - g = 1.055f * g.powerOf(1f / 2.4f) - 0.055f - else - g *= 12.92f - if (b > 0.0031308f) - b = 1.055f * b.powerOf(1f / 2.4f) - 0.055f - else - b *= 12.92f - - return RGB(r, g, b, alpha) + return RGB(r, g, b, alpha).unLinearise() } fun CIEXYZ.toColor(): Color { @@ -94,8 +168,22 @@ object CIEXYZUtil { private fun Float.powerOf(exp: Float) = FastMath.pow(this, exp) private fun Float.clampOne() = if (this > 1f) 1f else if (this < 0f) 0f else this + + private fun interpolateLinear(scale: Float, startValue: Float, endValue: Float): Float { + if (startValue == endValue) { + return startValue + } + if (scale <= 0f) { + return startValue + } + return if (scale >= 1f) { + endValue + } + else (1f - scale) * startValue + scale * endValue + } } + /** Range: X, Y, Z: 0 - 1.0+ (One-based-plus) */ data class CIEXYZ(var X: Float = 0f, var Y: Float = 0f, var Z: Float = 0f, var alpha: Float = 1f) { init { diff --git a/src/net/torvald/point/Point2d.kt b/src/net/torvald/point/Point2d.kt index e273923e9..ceb2cee9d 100644 --- a/src/net/torvald/point/Point2d.kt +++ b/src/net/torvald/point/Point2d.kt @@ -1,7 +1,7 @@ package net.torvald.point -import net.torvald.terrarum.gameactors.sqr -import net.torvald.terrarum.gameactors.sqrt +import net.torvald.terrarum.sqr +import net.torvald.terrarum.sqrt import org.dyn4j.geometry.Vector2 /** diff --git a/src/net/torvald/random/TileableValueNoise.kt b/src/net/torvald/random/TileableValueNoise.kt index 29cc69b82..65b99b5ad 100644 --- a/src/net/torvald/random/TileableValueNoise.kt +++ b/src/net/torvald/random/TileableValueNoise.kt @@ -1,9 +1,7 @@ package net.torvald.random import com.jme3.math.FastMath -import net.torvald.terrarum.gameactors.floorInt -import net.torvald.terrarum.gameactors.round -import net.torvald.terrarum.gameactors.roundInt +import net.torvald.terrarum.floorInt import net.torvald.terrarum.gameworld.fmod import java.util.* diff --git a/src/net/torvald/spriteanimation/SpriteAnimation.kt b/src/net/torvald/spriteanimation/SpriteAnimation.kt index 20b9a7a6b..0306573ae 100644 --- a/src/net/torvald/spriteanimation/SpriteAnimation.kt +++ b/src/net/torvald/spriteanimation/SpriteAnimation.kt @@ -7,7 +7,7 @@ package net.torvald.spriteanimation import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.jme3.math.FastMath -import net.torvald.terrarum.gameactors.ActorWithPhysics +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack class SpriteAnimation(val parentActor: ActorWithPhysics) { diff --git a/src/net/torvald/terrarum/TerrarumAppLoader.java b/src/net/torvald/terrarum/AppLoader.java similarity index 93% rename from src/net/torvald/terrarum/TerrarumAppLoader.java rename to src/net/torvald/terrarum/AppLoader.java index df7a6d15d..8d5c4e58b 100644 --- a/src/net/torvald/terrarum/TerrarumAppLoader.java +++ b/src/net/torvald/terrarum/AppLoader.java @@ -17,17 +17,20 @@ import java.util.Arrays; import java.util.Random; /** + * The framework's Application Loader + * + * * Created by minjaesong on 2017-08-01. */ -public class TerrarumAppLoader implements ApplicationListener { +public class AppLoader implements ApplicationListener { - private static TerrarumAppLoader INSTANCE = null; + private static AppLoader INSTANCE = null; - private TerrarumAppLoader() { } + private AppLoader() { } - public static TerrarumAppLoader getINSTANCE() { + public static AppLoader getINSTANCE() { if (INSTANCE == null) { - INSTANCE = new TerrarumAppLoader(); + INSTANCE = new AppLoader(); } return INSTANCE; } @@ -100,7 +103,7 @@ public class TerrarumAppLoader implements ApplicationListener { appConfig.foregroundFPS = 9999; appConfig.title = GAME_NAME; - new LwjglApplication(new TerrarumAppLoader(), appConfig); + new LwjglApplication(new AppLoader(), appConfig); } @@ -198,7 +201,6 @@ public class TerrarumAppLoader implements ApplicationListener { loadTimer += Gdx.graphics.getRawDeltaTime(); if (loadTimer >= showupTime) { - Terrarum.INSTANCE.setAppLoader(this); Terrarum.INSTANCE.setScreenW(appConfig.width); Terrarum.INSTANCE.setScreenH(appConfig.height); setScreen(Terrarum.INSTANCE); @@ -255,12 +257,16 @@ public class TerrarumAppLoader implements ApplicationListener { } public void setScreen(Screen screen) { + System.out.println("[AppLoader] Changing screen to " + screen.getClass().getCanonicalName()); + if (this.screen != null) this.screen.hide(); this.screen = screen; if (this.screen != null) { this.screen.show(); this.screen.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); } + + System.out.println("[AppLoader] Screen transisiton complete: " + this.screen.getClass().getCanonicalName()); } private void setCameraPosition(float newX, float newY) { diff --git a/src/net/torvald/terrarum/ColorLimiterTest.kt b/src/net/torvald/terrarum/ColorLimiterTest.kt index 6e450675f..1cea702df 100644 --- a/src/net/torvald/terrarum/ColorLimiterTest.kt +++ b/src/net/torvald/terrarum/ColorLimiterTest.kt @@ -10,8 +10,6 @@ import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.glutils.ShaderProgram import com.badlogic.gdx.graphics.glutils.ShapeRenderer -import com.badlogic.gdx.math.Matrix4 -import net.torvald.terrarum.gameactors.sqrt import net.torvald.terrarumsansbitmap.gdx.GameFontBase /** diff --git a/src/net/torvald/terrarum/DefaultConfig.kt b/src/net/torvald/terrarum/DefaultConfig.kt index 47d53fd52..fe95c93c5 100644 --- a/src/net/torvald/terrarum/DefaultConfig.kt +++ b/src/net/torvald/terrarum/DefaultConfig.kt @@ -18,7 +18,7 @@ object DefaultConfig { jsonObject.addProperty("imtooyoungtodie", false) // no perma-death - jsonObject.addProperty("language", TerrarumAppLoader.getSysLang()) + jsonObject.addProperty("language", AppLoader.getSysLang()) jsonObject.addProperty("notificationshowuptime", 6500) jsonObject.addProperty("multithread", true) // experimental! diff --git a/src/net/torvald/terrarum/ErrorDisp.kt b/src/net/torvald/terrarum/ErrorDisp.kt index 139f98cba..146f266b3 100644 --- a/src/net/torvald/terrarum/ErrorDisp.kt +++ b/src/net/torvald/terrarum/ErrorDisp.kt @@ -10,8 +10,8 @@ import net.torvald.terrarum.langpack.Lang object ErrorDisp : Screen { - private val logoTex = TerrarumAppLoader.logo - private val font = TerrarumAppLoader.fontGame + private val logoTex = AppLoader.logo + private val font = AppLoader.fontGame var title = Lang["ERROR_GENERIC_TEXT"] @@ -26,7 +26,7 @@ object ErrorDisp : Screen { private val titleTextLeftMargin = 8 - private val titleText = "${TerrarumAppLoader.GAME_NAME} ${TerrarumAppLoader.getVERSION_STRING()}" + private val titleText = "${AppLoader.GAME_NAME} ${AppLoader.getVERSION_STRING()}" override fun show() { diff --git a/src/net/torvald/terrarum/FuckingWorldRenderer.kt b/src/net/torvald/terrarum/FuckingWorldRenderer.kt index 27559484d..3c12bfab6 100644 --- a/src/net/torvald/terrarum/FuckingWorldRenderer.kt +++ b/src/net/torvald/terrarum/FuckingWorldRenderer.kt @@ -8,16 +8,17 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion import com.badlogic.gdx.graphics.glutils.FrameBuffer import com.jme3.math.FastMath -import net.torvald.random.HQRNG import net.torvald.terrarum.blockproperties.BlockCodex -import net.torvald.terrarum.gameactors.* +import net.torvald.terrarum.gameactors.Actor import net.torvald.terrarum.gameactors.ai.ActorAI import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameactors.* import net.torvald.terrarum.serialise.ReadLayerData import net.torvald.terrarum.ui.UICanvas -import net.torvald.terrarum.ui.UITitleRemoConRoot +import net.torvald.terrarum.modulebasegame.ui.UITitleRemoConRoot import net.torvald.terrarum.weather.WeatherMixer import net.torvald.terrarum.worlddrawer.* import java.io.FileInputStream @@ -52,7 +53,9 @@ class FuckingWorldRenderer(val batch: SpriteBatch) : Screen { private var firstTime = true - override fun update(actor: HumanoidNPC, delta: Float) { + override fun update(actor: Actor, delta: Float) { + val actor = actor as HumanoidNPC + // fuck val avSpeed = 1.0 // FIXME camera goes faster when FPS is high actor.actorValue[AVKey.SPEED] = avSpeed @@ -336,7 +339,7 @@ class FuckingWorldRenderer(val batch: SpriteBatch) : Screen { batch.color = Color.LIGHT_GRAY val COPYTING = arrayOf( - TerrarumAppLoader.COPYRIGHT_DATE_NAME, + AppLoader.COPYRIGHT_DATE_NAME, Lang["COPYRIGHT_GNU_GPL_3"] ) diff --git a/src/net/torvald/terrarum/GlslTilingTest.kt b/src/net/torvald/terrarum/GlslTilingTest.kt index 442dbdf83..94783e213 100644 --- a/src/net/torvald/terrarum/GlslTilingTest.kt +++ b/src/net/torvald/terrarum/GlslTilingTest.kt @@ -8,10 +8,6 @@ import com.badlogic.gdx.graphics.* import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.glutils.ShaderProgram import com.jme3.math.FastMath -import net.torvald.terrarum.gameactors.ceilInt -import net.torvald.terrarum.gameactors.floor -import net.torvald.terrarum.gameactors.floorInt -import net.torvald.terrarum.worlddrawer.BlocksDrawer import net.torvald.terrarumsansbitmap.gdx.GameFontBase /** @@ -64,7 +60,7 @@ object GlslTilingTest : ApplicationAdapter() { //ErrorDisp.title = "Error in shader ${shader.vertexShaderSource}" //ErrorDisp.text = shader.log.split('\n') - //TerrarumAppLoader.getINSTANCE().setScreen(ErrorDisp) + //AppLoader.getINSTANCE().setScreen(ErrorDisp) System.exit(1) } @@ -172,4 +168,3 @@ object GlslTilingTest : ApplicationAdapter() { } } -private fun Float.ceil(): Float = FastMath.ceil(this).toFloat() diff --git a/src/net/torvald/terrarum/GsonSerialisable.kt b/src/net/torvald/terrarum/GsonSerialisable.kt new file mode 100644 index 000000000..e1d1a458f --- /dev/null +++ b/src/net/torvald/terrarum/GsonSerialisable.kt @@ -0,0 +1,13 @@ +package net.torvald.terrarum + +import com.google.gson.JsonObject + +/** + * Created by minjaesong on 2018-05-18. + */ +interface GsonSerialisable { + + fun read(gson: JsonObject) + fun write(targetGson: JsonObject) + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/KVHashMap.kt b/src/net/torvald/terrarum/KVHashMap.kt index 4a5d08832..62d4616f4 100644 --- a/src/net/torvald/terrarum/KVHashMap.kt +++ b/src/net/torvald/terrarum/KVHashMap.kt @@ -1,9 +1,11 @@ package net.torvald.terrarum +import com.badlogic.gdx.utils.Json +import com.badlogic.gdx.utils.JsonValue +import com.google.gson.Gson +import com.google.gson.JsonElement +import com.google.gson.JsonObject import com.google.gson.JsonPrimitive -import net.torvald.terrarum.gameactors.Actor -import java.util.* -import java.util.function.Consumer import kotlin.collections.HashMap typealias ItemValue = KVHashMap @@ -12,7 +14,7 @@ typealias GameConfig = KVHashMap /** * Created by minjaesong on 2015-12-30. */ -open class KVHashMap { +open class KVHashMap : GsonSerialisable { constructor() { hashMap = HashMap() @@ -114,4 +116,15 @@ open class KVHashMap { return KVHashMap(cloneOfMap) } + override fun read(gson: JsonObject) { + } + + override fun write(targetGson: JsonObject) { + hashMap.forEach { t, u -> + if (u is JsonPrimitive) + targetGson.add(t, u) + else + targetGson.add(t, Gson().toJsonTree(u)) + } + } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/LoadScreen.kt b/src/net/torvald/terrarum/LoadScreen.kt index e55703872..9b0132042 100644 --- a/src/net/torvald/terrarum/LoadScreen.kt +++ b/src/net/torvald/terrarum/LoadScreen.kt @@ -6,8 +6,8 @@ import com.badlogic.gdx.graphics.* import com.badlogic.gdx.graphics.glutils.FrameBuffer import com.jme3.math.FastMath import net.torvald.dataclass.HistoryArray -import net.torvald.terrarum.gameactors.floor import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2017-07-13. diff --git a/src/net/torvald/terrarum/ModMgr.kt b/src/net/torvald/terrarum/ModMgr.kt index d020a777b..139ac60c1 100644 --- a/src/net/torvald/terrarum/ModMgr.kt +++ b/src/net/torvald/terrarum/ModMgr.kt @@ -8,6 +8,7 @@ import net.torvald.terrarum.itemproperties.ItemCodex import net.torvald.terrarum.blockproperties.BlockCodex import net.torvald.terrarum.itemproperties.ItemID import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.modulebasegame.EntryPoint import net.torvald.terrarum.utils.JsonFetcher import org.apache.commons.csv.CSVFormat import org.apache.commons.csv.CSVParser @@ -34,9 +35,6 @@ import javax.script.Invocable */ object ModMgr { - val groovyEngine = ScriptEngineManager().getEngineByExtension("groovy")!! - val groovyInvocable = groovyEngine as Invocable - val metaFilename = "metadata.properties" val defaultConfigFilename = "default.json" @@ -104,11 +102,11 @@ object ModMgr { // run entry script in entry point if (entryPoint.isNotBlank()) { - val extension = entryPoint.split('.').last() - val engine = ScriptEngineManager().getEngineByExtension(extension)!! - val invocable = engine as Invocable - engine.eval(FileReader(getFile(moduleName, entryPoint))) - invocable.invokeFunction("invoke", moduleName) + val newClass = Class.forName(entryPoint) + val newClassConstructor = newClass.getConstructor(/* no args defined */) + val newClassInstance = newClassConstructor.newInstance(/* no args defined */) + + (newClassInstance as ModuleEntryPoint).invoke() } diff --git a/src/net/torvald/terrarum/ModuleEntryPoint.kt b/src/net/torvald/terrarum/ModuleEntryPoint.kt new file mode 100644 index 000000000..7a3e7e1ff --- /dev/null +++ b/src/net/torvald/terrarum/ModuleEntryPoint.kt @@ -0,0 +1,8 @@ +package net.torvald.terrarum + +/** + * Created by minjaesong on 2018-06-21. + */ +abstract class ModuleEntryPoint { + abstract fun invoke() +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index a4ba736c6..974061645 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -11,14 +11,11 @@ import com.badlogic.gdx.graphics.glutils.ShapeRenderer import com.badlogic.gdx.utils.GdxRuntimeException import com.google.gson.JsonArray import com.google.gson.JsonPrimitive -import net.torvald.terrarum.gameactors.ActorWithPhysics -import net.torvald.terrarum.gameactors.floorInt +import com.jme3.math.FastMath +import net.torvald.terrarum.gameactors.Actor import net.torvald.terrarum.imagefont.TinyAlphNum -import net.torvald.terrarum.imagefont.Watch7SegMain -import net.torvald.terrarum.imagefont.WatchDotAlph import net.torvald.terrarum.itemproperties.ItemCodex -import net.torvald.terrarum.ui.ItemSlotImageBuilder -import net.torvald.terrarum.ui.MessageWindow +import net.torvald.terrarum.ui.ConsoleWindow import net.torvald.terrarum.utils.JsonFetcher import net.torvald.terrarum.utils.JsonWriter import net.torvald.terrarum.worlddrawer.FeaturesDrawer @@ -29,6 +26,14 @@ import org.lwjgl.BufferUtils import org.lwjgl.input.Controllers import java.io.File import java.io.IOException +import java.util.ArrayList +import java.util.concurrent.locks.Lock +import java.util.concurrent.locks.ReentrantLock +import javax.swing.JOptionPane + + + +typealias RGBA8888 = Int /** @@ -36,38 +41,8 @@ import java.io.IOException * * LibGDX Version Created by minjaesong on 2017-06-15. */ - -/*fun main(args: Array) { - Terrarum // invoke - - val config = LwjglApplicationConfiguration() - config.vSyncEnabled = Terrarum.USE_VSYNC - config.resizable = true - config.width = 1072 - config.height = 742 - config.backgroundFPS = RENDER_FPS - config.foregroundFPS = RENDER_FPS - config.title = GAME_NAME - - Terrarum.screenW = config.width - Terrarum.screenH = config.height - - println("[TerrarumKt] usevsync = ${Terrarum.USE_VSYNC}") - - // the game must run on same speed regardless of the display FPS; - // "Terrarum.TARGET_INTERNAL_FPS" denotes "execute as if FPS was set to this value" - - LwjglApplication(Terrarum, config) -}*/ - - - -typealias RGBA8888 = Int - object Terrarum : Screen { - lateinit var appLoader: TerrarumAppLoader - var screenW = 0 var screenH = 0 @@ -120,7 +95,7 @@ object Terrarum : Screen { var previousScreen: Screen? = null // to be used with temporary states like StateMonitorCheck - var ingame: Ingame? = null + var ingame: IngameInstance? = null private val gameConfig = GameConfig() val OSName = System.getProperty("os.name") @@ -145,7 +120,7 @@ object Terrarum : Screen { - val fontGame: GameFontBase = TerrarumAppLoader.fontGame + val fontGame: GameFontBase = AppLoader.fontGame lateinit var fontSmallNumbers: TinyAlphNum var joypadLabelStart: Char = 0xE000.toChar() // lateinit @@ -202,7 +177,7 @@ object Terrarum : Screen { private lateinit var configDir: String - const val NAME = TerrarumAppLoader.GAME_NAME + const val NAME = AppLoader.GAME_NAME val systemArch = System.getProperty("os.arch") @@ -234,7 +209,7 @@ object Terrarum : Screen { init { - println("$NAME version ${TerrarumAppLoader.getVERSION_STRING()}") + println("$NAME version ${AppLoader.getVERSION_STRING()}") getDefaultDirectory() @@ -418,16 +393,18 @@ object Terrarum : Screen { - TerrarumAppLoader.GAME_LOCALE = getConfigString("language") - println("[Terrarum] locale = ${TerrarumAppLoader.GAME_LOCALE}") + AppLoader.GAME_LOCALE = getConfigString("language") + println("[Terrarum] locale = ${AppLoader.GAME_LOCALE}") - ModMgr // invoke Module Manager, which will also invoke BlockCodex - ItemCodex // invoke Item Codex + ModMgr // invoke Module Manager + println("[Terrarum] all modules loaded successfully") + + // jump right into the ingame /*ingame = Ingame(batch) @@ -439,18 +416,18 @@ object Terrarum : Screen { // title screen - appLoader.setScreen(TitleScreen(batch)) + AppLoader.getINSTANCE().setScreen(TitleScreen(batch)) //appLoader.setScreen(FuckingWorldRenderer(batch)) } internal fun setScreen(screen: Screen) { - appLoader.setScreen(screen) + AppLoader.getINSTANCE().setScreen(screen) } override fun render(delta: Float) { - //appLoader.screen.render(deltaTime) + AppLoader.getINSTANCE().screen.render(deltaTime) //GLOBAL_RENDER_TIMER += 1 - // moved to TerrarumAppLoader; global event must be place at the apploader to prevent ACCIDENTAL forgot-to-update type of bug. + // moved to AppLoader; global event must be place at the apploader to prevent ACCIDENTAL forgot-to-update type of bug. } override fun pause() { @@ -467,13 +444,6 @@ object Terrarum : Screen { fontSmallNumbers.dispose() - ItemSlotImageBuilder.dispose() - WatchDotAlph.dispose() - Watch7SegMain.dispose() - WatchDotAlph.dispose() - - MessageWindow.SEGMENT_BLACK.dispose() - MessageWindow.SEGMENT_WHITE.dispose() //dispose any other resources used in this level @@ -715,6 +685,159 @@ object Terrarum : Screen { get() = Gdx.input.y } +open class IngameInstance(val batch: SpriteBatch) : Screen { + + var screenZoom = 1.0f + val ZOOM_MAXIMUM = 4.0f + val ZOOM_MINIMUM = 0.5f + + lateinit var consoleHandler: ConsoleWindow + + val ACTORCONTAINER_INITIAL_SIZE = 64 + val actorContainer = ArrayList(ACTORCONTAINER_INITIAL_SIZE) + val actorContainerInactive = ArrayList(ACTORCONTAINER_INITIAL_SIZE) + + override fun hide() { + } + + override fun show() { + } + + override fun render(delta: Float) { + } + + override fun pause() { + } + + override fun resume() { + } + + override fun resize(width: Int, height: Int) { + } + + override fun dispose() { + } + + fun getActorByID(ID: Int): Actor { + if (actorContainer.size == 0 && actorContainerInactive.size == 0) + throw IllegalArgumentException("Actor with ID $ID does not exist.") + + var index = actorContainer.binarySearch(ID) + if (index < 0) { + index = actorContainerInactive.binarySearch(ID) + + if (index < 0) { + JOptionPane.showMessageDialog( + null, + "Actor with ID $ID does not exist.", + null, JOptionPane.ERROR_MESSAGE + ) + throw IllegalArgumentException("Actor with ID $ID does not exist.") + } + else + return actorContainerInactive[index] + } + else + return actorContainer[index] + } + + fun ArrayList<*>.binarySearch(actor: Actor) = this.binarySearch(actor.referenceID!!) + + fun ArrayList<*>.binarySearch(ID: Int): Int { + // code from collections/Collections.kt + var low = 0 + var high = this.size - 1 + + while (low <= high) { + val mid = (low + high).ushr(1) // safe from overflows + + val midVal = get(mid)!! + + if (ID > midVal.hashCode()) + low = mid + 1 + else if (ID < midVal.hashCode()) + high = mid - 1 + else + return mid // key found + } + return -(low + 1) // key not found + } + + open fun removeActor(ID: Int) = removeActor(getActorByID(ID)) + /** + * get index of the actor and delete by the index. + * we can do this as the list is guaranteed to be sorted + * and only contains unique values. + * + * Any values behind the index will be automatically pushed to front. + * This is how remove function of [java.util.ArrayList] is defined. + */ + open fun removeActor(actor: Actor) { + val indexToDelete = actorContainer.binarySearch(actor.referenceID!!) + if (indexToDelete >= 0) { + actorContainer.removeAt(indexToDelete) + } + } + + open /** + * Check for duplicates, append actor and sort the list + */ + fun addNewActor(actor: Actor) { + if (theGameHasActor(actor.referenceID!!)) { + throw Error("The actor $actor already exists in the game") + } + else { + actorContainer.add(actor) + insertionSortLastElem(actorContainer) // we can do this as we are only adding single actor + } + } + + fun isActive(ID: Int): Boolean = + if (actorContainer.size == 0) + false + else + actorContainer.binarySearch(ID) >= 0 + + fun isInactive(ID: Int): Boolean = + if (actorContainerInactive.size == 0) + false + else + actorContainerInactive.binarySearch(ID) >= 0 + + /** + * actorContainer extensions + */ + fun theGameHasActor(actor: Actor?) = if (actor == null) false else theGameHasActor(actor.referenceID!!) + + fun theGameHasActor(ID: Int): Boolean = + isActive(ID) || isInactive(ID) + + + + + fun insertionSortLastElem(arr: ArrayList) { + lock(ReentrantLock()) { + var j = arr.lastIndex - 1 + val x = arr.last() + while (j >= 0 && arr[j] > x) { + arr[j + 1] = arr[j] + j -= 1 + } + arr[j + 1] = x + } + } + + inline fun lock(lock: Lock, body: () -> Unit) { + lock.lock() + try { + body() + } + finally { + lock.unlock() + } + } +} + inline fun SpriteBatch.inUse(action: (SpriteBatch) -> Unit) { this.begin() action(this) @@ -852,3 +975,56 @@ val ccX = GameFontBase.toColorCode(0x853F) val ccK = GameFontBase.toColorCode(0x888F) +typealias Second = Float + +inline fun Int.sqr(): Int = this * this +inline fun Double.floorInt() = Math.floor(this).toInt() +inline fun Float.floorInt() = FastMath.floor(this) +inline fun Float.floor() = FastMath.floor(this).toFloat() +inline fun Double.ceilInt() = Math.ceil(this).toInt() +inline fun Float.ceil(): Float = FastMath.ceil(this).toFloat() +inline fun Float.ceilInt() = FastMath.ceil(this) +inline fun Double.round() = Math.round(this).toDouble() +inline fun Double.floor() = Math.floor(this) +inline fun Double.ceil() = this.floor() + 1.0 +inline fun Double.roundInt(): Int = Math.round(this).toInt() +inline fun Float.roundInt(): Int = Math.round(this) +inline fun Double.abs() = Math.abs(this) +inline fun Double.sqr() = this * this +inline fun Double.sqrt() = Math.sqrt(this) +inline fun Float.sqrt() = FastMath.sqrt(this) +inline fun Int.abs() = if (this < 0) -this else this +fun Double.bipolarClamp(limit: Double) = + if (this > 0 && this > limit) limit + else if (this < 0 && this < -limit) -limit + else this + +fun absMax(left: Double, right: Double): Double { + if (left > 0 && right > 0) + if (left > right) return left + else return right + else if (left < 0 && right < 0) + if (left < right) return left + else return right + else { + val absL = left.abs() + val absR = right.abs() + if (absL > absR) return left + else return right + } +} + +fun Double.magnSqr() = if (this >= 0.0) this.sqr() else -this.sqr() +fun Double.sign() = if (this > 0.0) 1.0 else if (this < 0.0) -1.0 else 0.0 +fun interpolateLinear(scale: Double, startValue: Double, endValue: Double): Double { + if (startValue == endValue) { + return startValue + } + if (scale <= 0.0) { + return startValue + } + if (scale >= 1.0) { + return endValue + } + return (1.0 - scale) * startValue + scale * endValue +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/TitleScreen.kt b/src/net/torvald/terrarum/TitleScreen.kt index 408a53a20..d83754386 100644 --- a/src/net/torvald/terrarum/TitleScreen.kt +++ b/src/net/torvald/terrarum/TitleScreen.kt @@ -10,14 +10,16 @@ import com.badlogic.gdx.graphics.glutils.FrameBuffer import com.jme3.math.FastMath import net.torvald.random.HQRNG import net.torvald.terrarum.blockproperties.BlockCodex -import net.torvald.terrarum.gameactors.* +import net.torvald.terrarum.gameactors.Actor import net.torvald.terrarum.gameactors.ai.ActorAI import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameactors.* import net.torvald.terrarum.serialise.ReadLayerData import net.torvald.terrarum.ui.UICanvas -import net.torvald.terrarum.ui.UITitleRemoConRoot +import net.torvald.terrarum.modulebasegame.ui.UITitleRemoConRoot import net.torvald.terrarum.weather.WeatherMixer import net.torvald.terrarum.worlddrawer.* import java.io.FileInputStream @@ -52,7 +54,9 @@ class TitleScreen(val batch: SpriteBatch) : Screen { private var firstTime = true - override fun update(actor: HumanoidNPC, delta: Float) { + override fun update(actor: Actor, delta: Float) { + val actor = actor as HumanoidNPC + // fuck val avSpeed = 1.0 // FIXME camera goes faster when FPS is high actor.actorValue[AVKey.SPEED] = avSpeed @@ -116,6 +120,9 @@ class TitleScreen(val batch: SpriteBatch) : Screen { private val TILE_SIZEF = TILE_SIZE.toFloat() private fun loadThingsWhileIntroIsVisible() { + println("[TitleScreen] Intro pre-load") + + demoWorld = ReadLayerData(FileInputStream(ModMgr.getFile("basegame", "demoworld"))) @@ -131,7 +138,7 @@ class TitleScreen(val batch: SpriteBatch) : Screen { }) - cameraPlayer = object : HumanoidNPC(demoWorld, cameraAI, GameDate(1, 1), usePhysics = false) { + cameraPlayer = object : HumanoidNPC(demoWorld, cameraAI, GameDate(1, 1), usePhysics = false, forceAssignRefID = Player.PLAYER_REF_ID) { init { setHitboxDimension(2, 2, 0, 0) hitbox.setPosition( @@ -165,6 +172,8 @@ class TitleScreen(val batch: SpriteBatch) : Screen { } override fun show() { + println("[TitleScreen] atrniartsientsarinoetsar") + initViewPort(Terrarum.WIDTH, Terrarum.HEIGHT) logo = TextureRegion(Texture(Gdx.files.internal("assets/graphics/logo_placeholder.tga"))) @@ -340,7 +349,7 @@ class TitleScreen(val batch: SpriteBatch) : Screen { batch.color = Color.LIGHT_GRAY val COPYTING = arrayOf( - TerrarumAppLoader.COPYRIGHT_DATE_NAME, + AppLoader.COPYRIGHT_DATE_NAME, Lang["COPYRIGHT_GNU_GPL_3"] ) diff --git a/src/net/torvald/terrarum/UIItemInventoryCatBar.kt b/src/net/torvald/terrarum/UIItemInventoryCatBar.kt index 5f100cf6b..3e171629a 100644 --- a/src/net/torvald/terrarum/UIItemInventoryCatBar.kt +++ b/src/net/torvald/terrarum/UIItemInventoryCatBar.kt @@ -5,9 +5,7 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch -import net.torvald.terrarum.gameactors.Second -import net.torvald.terrarum.gameactors.floorInt -import net.torvald.terrarum.gameactors.roundInt +import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull import net.torvald.terrarum.ui.* /** diff --git a/src/net/torvald/terrarum/UIItemInventoryElem.kt b/src/net/torvald/terrarum/UIItemInventoryElem.kt index 9de67897d..5fd09eb10 100644 --- a/src/net/torvald/terrarum/UIItemInventoryElem.kt +++ b/src/net/torvald/terrarum/UIItemInventoryElem.kt @@ -7,6 +7,9 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.colourutil.CIELabUtil.darkerLab import net.torvald.terrarum.itemproperties.GameItem +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull +import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase import net.torvald.terrarum.ui.* /*** @@ -134,7 +137,7 @@ class UIItemInventoryElem( override fun keyDown(keycode: Int): Boolean { if (item != null && Terrarum.ingame != null && keycode in Input.Keys.NUM_1..Input.Keys.NUM_0) { - val inventory = Terrarum.ingame!!.player.inventory + val inventory = (Terrarum.ingame!! as Ingame).player.inventory val slot = if (keycode == Input.Keys.NUM_0) 9 else keycode - Input.Keys.NUM_1 val currentSlotItem = inventory?.getQuickBar(slot) @@ -164,7 +167,7 @@ class UIItemInventoryElem( // equip da shit val itemEquipSlot = item!!.equipPosition - val player = Terrarum.ingame!!.player + val player = (Terrarum.ingame!! as Ingame).player if (item != player.inventory.itemEquipped.get(itemEquipSlot)) { // if this item is unequipped, equip it player.equipItem(item!!) diff --git a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt index 1c95cb619..71ec85b6f 100644 --- a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt +++ b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt @@ -6,6 +6,9 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.itemproperties.GameItem +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull +import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase import net.torvald.terrarum.ui.* /** @@ -122,7 +125,7 @@ class UIItemInventoryElemSimple( println("keydown elemgrid") - val inventory = Terrarum.ingame!!.player.inventory + val inventory = (Terrarum.ingame!! as Ingame).player.inventory val slot = if (keycode == Input.Keys.NUM_0) 9 else keycode - Input.Keys.NUM_1 val currentSlotItem = inventory.getQuickBar(slot) @@ -154,7 +157,7 @@ class UIItemInventoryElemSimple( // equip da shit val itemEquipSlot = item!!.equipPosition - val player = Terrarum.ingame!!.player + val player = (Terrarum.ingame!! as Ingame).player if (item != player.inventory.itemEquipped.get(itemEquipSlot)) { // if this item is unequipped, equip it player.equipItem(item!!) diff --git a/src/net/torvald/terrarum/audio/SpatialAudioMixer.kt b/src/net/torvald/terrarum/audio/SpatialAudioMixer.kt index d78c8423c..2fcf661a3 100644 --- a/src/net/torvald/terrarum/audio/SpatialAudioMixer.kt +++ b/src/net/torvald/terrarum/audio/SpatialAudioMixer.kt @@ -6,19 +6,22 @@ package net.torvald.terrarum.audio * * Channels and their mapping: * - * Notation: (front/side/rear.subwoofer/top-front) + * Notation: (front/rear.subwoofer/top-front) * Plugs: G-Front (green), K-Rear (black), Y-Centre/Subwoofer (yellow), E-Side (grey) * e.g. E-RC,NULL means GREY jack outputs REAR-CENTRE to its left and nothing to its right channel. * * = Headphones: Binaural - * = Stereo ---------- (2/0/0.0/0): G-FL,FR - * = Quadraphonic ---- (2/0/2.0/0): G-FL,FR; K-RL,RR - * = 4.0 ------------- (3/0/1.0/0): G-FL,FR; Y-FC,RC - * = 5.1 ------------- (3/0/2.1/0): G-FL,FR; Y-FC,SW; K-RL,RR - * = 6.1 ------------- (3/0/3.1/0): G-FL,FR; Y-FC,SW; K-RL,RR, E-RC,RC - * = 7.1 ------------- (3/2/2.1/0): G-FL,FR; Y-FC,SW; K-RL,RR, E-SL,SR - * = Dolby Atmos 5.1.2 (3/0/2.1/2): G-FL,FR; Y-FC,SW; K-RL,RR, E-TL,TR + * = Stereo ---------- (2/0.0/0): G-FL,FR + * = Quadraphonic ---- (2/2.0/0): G-FL,FR; K-RL,RR + * = 4.0 ------------- (3/1.0/0): G-FL,FR; Y-FC,RC + * = 5.1 ------------- (3/2.1/0): G-FL,FR; Y-FC,SW; K-RL,RR + * = 6.1 ------------- (3/3.1/0): G-FL,FR; Y-FC,SW; K-RL,RR, E-RC,RC + * = 7.1 ------------- (3/4.1/0): G-FL,FR; Y-FC,SW; K-RL,RR, E-SL,SR + * = Dolby Atmos*5.1.2 (3/2.1/2): G-FL,FR; Y-FC,SW; K-RL,RR, E-TL,TR * + * = Extra options: + * = No centre speaker (5.1 and above) + * = No subwoofer (5.1 and above) * * Channel uses: * @@ -31,10 +34,115 @@ package net.torvald.terrarum.audio * * If both side and rear speakers are not there, play weather/ambient to the stereo speakers but NOT TO THE CENTRE * * For non-existent speakers, use channel phantoming * - * Note: 5.1.2 does NOT output Dolby-compatible signals. + * Note: 5.1.2 does NOT output Dolby-compatible signals. It's just a customised 8 channel setup. + * + * @see spatialAudioMixMat.xlsx */ object SpatialAudioMixer { - const val centreQuotient = 0.7071f + const val PANNING_THREE = 0.708f + const val PANNING_FOUR_POINT_FIVE = 0.596f + const val PANNING_SIX = 0.5f + + fun getPanning(coefficient: Float, panningLaw: Float = PANNING_FOUR_POINT_FIVE): Float { + val k = panningLaw.toDouble() + val a = 2.0 - 2.0 * k + val b = 4.0 * k - 1.0 + + return (coefficient*a*a + coefficient*b).toFloat() + } + + + const val PRESET_QUADRAPHONIC = """ +FL=1,0,0,0,0,0,0,0 +FC=0.5,0.5,0,0,0,0,0,0 +FR=0,1,0,0,0,0,0,0 +RL=0,0,0,0,0.75,0.25,0,0 +RR=0,0,0,0,0.25,0.75,0,0 +SL=0.25,0,0,0,0.75,0,0,0 +RC=0,0,0,0,0.5,0.5,0,0 +SR=0,0.25,0,0,0,0.75,0,0 +AMB=0.25,0.25,0,0,0.25,0.25,0,0 +LFE=0,0,0,0,0.5,0.5,0,0 +""" + const val PRESET_FIVE_POINT_ONE = """ +FL=1,0,0,0,0,0,0,0 +FC=0,0,1,0,0,0,0,0 +FR=0,1,0,0,0,0,0,0 +RL=0,0,0,0,0.75,0.25,0,0 +RR=0,0,0,0,0.25,0.75,0,0 +SL=0.25,0,0,0,0.75,0,0,0 +RC=0,0,0,0,0.5,0.5,0,0 +SR=0,0.25,0,0,0,0.75,0,0 +AMB=0.25,0.25,0,0,0.25,0.25,0,0 +LFE=0,0,0,1,0,0,0,0 +""" + + const val PRESET_SEVEN_POINT_ONE = """ +FL=1,0,0,0,0,0,0,0 +FC=0,0,1,0,0,0,0,0 +FR=0,1,0,0,0,0,0,0 +SL=0,0,0,0,0,0,1,0 +SR=0,0,0,0,0,0,0,1 +RL=0,0,0,0,1,0,0,0 +RC=0,0,0,0,0.5,0.5,0,0 +RR=0,0,0,0,0,1,0,0 +AMB=0.125,0.125,0,0,0.125,0.125,0.25,0.25 +LFE=0,0,0,1,0,0,0,0 +""" + + const val PRESET_FIVE_POINT_ONE_POINT_TWO = """ +FL=1,0,0,0,0,0,0,0 +FC=0,0,1,0,0,0,0,0 +FR=0,1,0,0,0,0,0,0 +RL=0,0,0,0,0.75,0.25,0,0 +RR=0,0,0,0,0.25,0.75,0,0 +SL=0.25,0,0,0,0.75,0,0,0 +RC=0,0,0,0,0.5,0.5,0,0 +RR=0,0.25,0,0,0,0.75,0,0 +AMB=0,0,0,0,0.125,0.125,0.375,0.375 +LFE=0,0,0,1,0,0,0,0 +""" + + const val PRESET_FOUR_POINT_ONE = """ +FL=0.75,0.25,0,0,0,0,0,0 +FC=0,0,1,0,0,0,0,0 +FR=0.25,0.75,0,0,0,0,0,0 +SL=1,0,0,0,0,0,0,0 +SR=0,1,0,0,0,0,0,0 +RL=0.5,0,0,0,0.5,0,0,0 +RC=0,0,0,0,1,0,0,0 +RR=0,0.5,0,0,0.5,0,0,0 +AMB=0.25,0.25,0,0,0.5,0,0,0 +LFE=0,0,0,1,0,0,0,0 +""" + + const val PRESET_SIX_POINT_ONE = """ +FL=1,0,0,0,0,0,0,0 +FC=0,0,1,0,0,0,0,0 +FR=0,1,0,0,0,0,0,0 +RL=0,0,0,0,0.75,0.25,0,0 +RR=0,0,0,0,0.25,0.75,0,0 +SL=0.25,0,0,0,0.75,0,0,0 +RC=0,0,0,0,0,0,1,0 +SR=0,0.25,0,0,0,0.75,0,0 +AMB=0.25,0.25,0,0,0.25,0.25,0,0 +LFE=0,0,0,1,0,0,0,0 +""" + + const val PRESET_STEREO = """ +FL=0.75,0.25,0,0,0,0,0,0 +FC=0.5,0.5,0,0,0,0,0,0 +FR=0.25,0.75,0,0,0,0,0,0 +SL=1,0,0,0,0,0,0,0 +SR=0,1,0,0,0,0,0,0 +RL=1,0,0,0,0,0,0,0 +RC=0.5,0.5,0,0,0,0,0,0 +RR=0,1,0,0,0,0,0,0 +AMB=0.5,0.5,0,0,0,0,0,0 +LFE=0.5,0.5,0,0,0,0,0,0 +""" + + } \ No newline at end of file diff --git a/src/net/torvald/terrarum/audio/surroundpanner/SurroundPannerTest.kt b/src/net/torvald/terrarum/audio/surroundpanner/SurroundPannerTest.kt new file mode 100644 index 000000000..22a3cf90a --- /dev/null +++ b/src/net/torvald/terrarum/audio/surroundpanner/SurroundPannerTest.kt @@ -0,0 +1,174 @@ +package net.torvald.terrarum.audio.surroundpanner + +import com.badlogic.gdx.Game +import com.badlogic.gdx.Gdx +import com.badlogic.gdx.audio.Sound +import com.badlogic.gdx.backends.lwjgl.LwjglApplication +import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration +import com.badlogic.gdx.files.FileHandle +import java.awt.BorderLayout +import javax.swing.* + +/** + * Created by minjaesong on 2018-05-18. + */ +class SurroundPannerTest : JFrame() { + + val mixerPanel = JPanel(BorderLayout()) // LR slider + + val mixerPanSlider = JSlider(JSlider.HORIZONTAL, -32768, 32767, 0) + + init { + val sliderPanel = JPanel(); sliderPanel.add(mixerPanSlider) + mixerPanel.add(sliderPanel, BorderLayout.CENTER) + + this.add(mixerPanel, BorderLayout.CENTER) + this.defaultCloseOperation = EXIT_ON_CLOSE + this.isVisible = true + this.setSize(400, 600) + } + +} + +class AudioPlayerSlave : Game() { + + lateinit var audioSample: FileHandle + lateinit var gdxSound: Sound + var soundID = 0L + lateinit var surroundPanner: SurroundPannerTest + + + override fun create() { + audioSample = Gdx.files.internal("assets/loopey.wav") + gdxSound = Gdx.audio.newSound(audioSample) + surroundPanner = SurroundPannerTest() + soundID = gdxSound.loop() + } + + override fun render() { + gdxSound.setPan(soundID, surroundPanner.mixerPanSlider.value.toFloat() / 32768f, 0.5f) + } + + override fun dispose() { + super.dispose() + gdxSound.dispose() + } + +} + +fun main(args: Array) { + val appConfig = LwjglApplicationConfiguration() + appConfig.vSyncEnabled = false + appConfig.resizable = true + appConfig.width = 256 + appConfig.height = 256 + appConfig.backgroundFPS = 20 + appConfig.foregroundFPS = 20 + + LwjglApplication(AudioPlayerSlave(), appConfig) +} + + + +/* +package net.torvald.terrarum.audio.surroundpanner + +import com.badlogic.gdx.Game +import com.badlogic.gdx.Gdx +import com.badlogic.gdx.audio.Sound +import com.badlogic.gdx.backends.lwjgl.LwjglApplication +import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration +import com.badlogic.gdx.files.FileHandle +import net.torvald.terrarum.audio.SpatialAudioMixer +import java.awt.BorderLayout +import java.io.StringReader +import java.util.* +import javax.swing.* + +/** + * Created by minjaesong on 2018-05-18. + */ +class SurroundPannerTest(val panningMatrix: String) : JFrame() { + + val panningSettings = Properties() + + val mixerPanel = JPanel(BorderLayout()) // LR slider, options (pan-rear threshold: Double, panning law: Double) + val matricesPanel = JPanel(BorderLayout()) // show and edit panning matrix + + + val mixerPanSlider = JSlider(JSlider.HORIZONTAL, -32768, 32767, 0) + val mixerPanRearSelector = JSpinner(SpinnerNumberModel(6667, 0, 10000, 1)) + val mixerPanLawSelector = JSpinner(SpinnerListModel(arrayOf(0.0, -3.0, -4.5, -6.0))) + + init { + val sliderPanel = JPanel(); sliderPanel.add(mixerPanSlider) + sliderPanel.isVisible = true + val panRearPanel = JPanel(); panRearPanel.add(JLabel("Pan-rear threshold")); panRearPanel.add(mixerPanRearSelector) + panRearPanel.isVisible = true + val panLawPanel = JPanel(); panLawPanel.add(JLabel("Panning law")); panLawPanel.add(mixerPanLawSelector) + panLawPanel.isVisible = true + val optionsPanel = JPanel(); optionsPanel.add(panRearPanel); optionsPanel.add(panLawPanel) + optionsPanel.isVisible = true + mixerPanel.add(sliderPanel, BorderLayout.CENTER) + mixerPanel.add(optionsPanel, BorderLayout.SOUTH) + + + + + panningSettings.load(StringReader(panningMatrix)) + + + this.add(mixerPanel, BorderLayout.CENTER) + this.add(matricesPanel, BorderLayout.SOUTH) + this.defaultCloseOperation = EXIT_ON_CLOSE + this.isVisible = true + this.setSize(400, 600) + } + +} + +class AudioPlayerSlave : Game() { + + lateinit var audioSample: FileHandle + lateinit var gdxSound: Sound + var soundID = 0L + lateinit var surroundPanner: SurroundPannerTest + + + override fun create() { + audioSample = Gdx.files.internal("assets/loopey.wav") + gdxSound = Gdx.audio.newSound(audioSample) + + + + + + surroundPanner = SurroundPannerTest(SpatialAudioMixer.PRESET_QUADRAPHONIC) + + + soundID = gdxSound.loop() + } + + override fun render() { + gdxSound.setPan(soundID, surroundPanner.mixerPanSlider.value.toFloat() / 32768f, 1f) + } + + override fun dispose() { + super.dispose() + gdxSound.dispose() + } + +} + +fun main(args: Array) { + val appConfig = LwjglApplicationConfiguration() + appConfig.vSyncEnabled = false + appConfig.resizable = true + appConfig.width = 256 + appConfig.height = 256 + appConfig.backgroundFPS = 20 + appConfig.foregroundFPS = 20 + + LwjglApplication(AudioPlayerSlave(), appConfig) +} + */ \ No newline at end of file diff --git a/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt b/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt index 5a33ee899..c87e73792 100644 --- a/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt +++ b/src/net/torvald/terrarum/blockproperties/BlockPropUtil.kt @@ -5,8 +5,9 @@ import com.badlogic.gdx.graphics.Color import com.jme3.math.FastMath import net.torvald.random.HQRNG import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.Second -import net.torvald.terrarum.gameworld.WorldTime +import net.torvald.terrarum.Second +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameworld.WorldTime import net.torvald.terrarum.worlddrawer.LightmapRenderer import net.torvald.terrarum.weather.WeatherMixer @@ -20,7 +21,7 @@ object BlockPropUtil { var breathFuncX = 0f val breathRange = 0.02f - val breathCycleDuration: Second = 2f + val breathCycleDuration: Second = 2f var pulsateFuncX = 0f val pulsateRange = 0.034f @@ -94,7 +95,7 @@ object BlockPropUtil { fun getDynamicLumFunc(baseLum: Color, type: Int): Color { return when (type) { 1 -> getTorchFlicker(baseLum) - 2 -> Terrarum.ingame!!.world.globalLight.cpy().mul(LightmapRenderer.DIV_FLOAT) // current global light + 2 -> (Terrarum.ingame!! as Ingame).world.globalLight.cpy().mul(LightmapRenderer.DIV_FLOAT) // current global light 3 -> WeatherMixer.getGlobalLightOfTime(WorldTime.DAY_LENGTH / 2).cpy().mul(LightmapRenderer.DIV_FLOAT) // daylight at noon 4 -> getSlowBreath(baseLum) 5 -> getPulsate(baseLum) diff --git a/src/net/torvald/terrarum/blockstats/BlockStats.kt b/src/net/torvald/terrarum/blockstats/BlockStats.kt index e3f0ffe81..df32eb5ac 100644 --- a/src/net/torvald/terrarum/blockstats/BlockStats.kt +++ b/src/net/torvald/terrarum/blockstats/BlockStats.kt @@ -6,6 +6,7 @@ import net.torvald.terrarum.worlddrawer.BlocksDrawer import net.torvald.terrarum.worlddrawer.FeaturesDrawer import net.torvald.terrarum.Terrarum import com.jme3.math.FastMath +import net.torvald.terrarum.modulebasegame.Ingame import java.util.Arrays @@ -26,8 +27,8 @@ object BlockStats { // Get stats on no-zoomed screen area. In other words, will behave as if screen zoom were 1.0 // no matter how the screen is zoomed. - val map = Terrarum.ingame!!.world - val player = Terrarum.ingame!!.player + val map = (Terrarum.ingame!! as Ingame).world + val player = (Terrarum.ingame!! as Ingame).player val renderWidth = FastMath.ceil(Terrarum.WIDTH.toFloat()) val renderHeight = FastMath.ceil(Terrarum.HEIGHT.toFloat()) diff --git a/src/net/torvald/terrarum/console/Authenticator.kt b/src/net/torvald/terrarum/console/Authenticator.kt index 03c4653d3..b15736e66 100644 --- a/src/net/torvald/terrarum/console/Authenticator.kt +++ b/src/net/torvald/terrarum/console/Authenticator.kt @@ -39,7 +39,7 @@ internal object Authenticator : ConsoleCommand { Echo(msg) println("[Authenticator] " + msg) a = !a - (Terrarum.ingame!!.consoleHandler as ConsoleWindow).reset() + Terrarum.ingame!!.consoleHandler.reset() } else { printUsage() // thou shalt not pass! diff --git a/src/net/torvald/terrarum/console/CheatWarnTest.kt b/src/net/torvald/terrarum/console/CheatWarnTest.kt deleted file mode 100644 index 07dd7ac34..000000000 --- a/src/net/torvald/terrarum/console/CheatWarnTest.kt +++ /dev/null @@ -1,13 +0,0 @@ -package net.torvald.terrarum.console - -import net.torvald.terrarum.Terrarum - -object CheatWarnTest : ConsoleCommand { - - override fun execute(args: Array) { - Terrarum.ingame?.uiCheatMotherfuckerNootNoot?.setAsOpen() - } - - override fun printUsage() { - } -} \ No newline at end of file diff --git a/src/net/torvald/terrarum/console/CommandDict.kt b/src/net/torvald/terrarum/console/CommandDict.kt index 0b34f1191..f39f2a25c 100644 --- a/src/net/torvald/terrarum/console/CommandDict.kt +++ b/src/net/torvald/terrarum/console/CommandDict.kt @@ -1,5 +1,6 @@ package net.torvald.terrarum.console +import net.torvald.terrarum.modulebasegame.console.* import java.util.HashMap /** diff --git a/src/net/torvald/terrarum/console/QuitApp.kt b/src/net/torvald/terrarum/console/QuitApp.kt index 5ba8e9857..a4be55bff 100644 --- a/src/net/torvald/terrarum/console/QuitApp.kt +++ b/src/net/torvald/terrarum/console/QuitApp.kt @@ -1,5 +1,7 @@ package net.torvald.terrarum.console +import net.torvald.terrarum.console.ConsoleCommand + /** * Created by minjaesong on 2016-01-15. */ diff --git a/src/net/torvald/terrarum/console/Seed.kt b/src/net/torvald/terrarum/console/Seed.kt deleted file mode 100644 index bfe8c0193..000000000 --- a/src/net/torvald/terrarum/console/Seed.kt +++ /dev/null @@ -1,20 +0,0 @@ -package net.torvald.terrarum.console - -import net.torvald.terrarum.* -import net.torvald.terrarum.Terrarum - -/** - * Created by minjaesong on 2016-06-16. - */ -internal object Seed : ConsoleCommand { - - override fun execute(args: Array) { - Echo("Map$ccW: $ccG${Terrarum.ingame!!.world.generatorSeed}") - println("[seed] Map$ccW: $ccG${Terrarum.ingame!!.world.generatorSeed}") - // TODO display randomiser seed - } - - override fun printUsage() { - Echo("prints out the generator seed of the current game.") - } -} \ No newline at end of file diff --git a/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt b/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt index 460b09a20..c7676171d 100644 --- a/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt +++ b/src/net/torvald/terrarum/console/SetGlobalLightOverride.kt @@ -3,6 +3,7 @@ package net.torvald.terrarum.console import com.badlogic.gdx.graphics.Color import net.torvald.terrarum.worlddrawer.LightmapRenderer import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-02-17. @@ -22,7 +23,7 @@ internal object SetGlobalLightOverride : ConsoleCommand { val GL = Color(r, g, b, a) lightOverride = true - Terrarum.ingame!!.world.globalLight = GL + (Terrarum.ingame!! as Ingame).world.globalLight = GL } catch (e: NumberFormatException) { Echo("Wrong number input.") diff --git a/src/net/torvald/terrarum/console/SetLocale.kt b/src/net/torvald/terrarum/console/SetLocale.kt index 995dcb67e..7d1bfce2e 100644 --- a/src/net/torvald/terrarum/console/SetLocale.kt +++ b/src/net/torvald/terrarum/console/SetLocale.kt @@ -1,8 +1,7 @@ package net.torvald.terrarum.console import net.torvald.terrarum.langpack.Lang -import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.TerrarumAppLoader +import net.torvald.terrarum.AppLoader import java.io.IOException @@ -12,14 +11,14 @@ import java.io.IOException internal object SetLocale : ConsoleCommand { override fun execute(args: Array) { if (args.size == 2) { - val prevLocale = TerrarumAppLoader.GAME_LOCALE - TerrarumAppLoader.GAME_LOCALE = args[1] + val prevLocale = AppLoader.GAME_LOCALE + AppLoader.GAME_LOCALE = args[1] try { - Echo("Set locale to '" + TerrarumAppLoader.GAME_LOCALE + "'.") + Echo("Set locale to '" + AppLoader.GAME_LOCALE + "'.") } catch (e: IOException) { Echo("could not read lang file.") - TerrarumAppLoader.GAME_LOCALE = prevLocale + AppLoader.GAME_LOCALE = prevLocale } } diff --git a/src/net/torvald/terrarum/console/Version.kt b/src/net/torvald/terrarum/console/Version.kt index fe27c31cf..fd919c964 100644 --- a/src/net/torvald/terrarum/console/Version.kt +++ b/src/net/torvald/terrarum/console/Version.kt @@ -2,7 +2,7 @@ package net.torvald.terrarum.console import com.badlogic.gdx.Gdx import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.TerrarumAppLoader +import net.torvald.terrarum.AppLoader import net.torvald.terrarum.langpack.Lang /** @@ -11,7 +11,7 @@ import net.torvald.terrarum.langpack.Lang internal object Version : ConsoleCommand { override fun execute(args: Array) { - Echo("${Terrarum.NAME} ${TerrarumAppLoader.getVERSION_STRING()}") + Echo("${Terrarum.NAME} ${AppLoader.getVERSION_STRING()}") Echo("Polyglot language pack version ${Lang.POLYGLOT_VERSION}") Echo("GL_VERSION: ${Terrarum.GL_VERSION}") Echo("Renderer: ${Gdx.graphics.glVersion.rendererString}, ${Gdx.graphics.glVersion.vendorString}") diff --git a/src/net/torvald/terrarum/gameactors/Actor.kt b/src/net/torvald/terrarum/gameactors/Actor.kt index 61908939c..9a57c96df 100644 --- a/src/net/torvald/terrarum/gameactors/Actor.kt +++ b/src/net/torvald/terrarum/gameactors/Actor.kt @@ -5,6 +5,7 @@ import net.torvald.terrarum.Terrarum import net.torvald.terrarum.itemproperties.ItemCodex import net.torvald.terrarum.itemproperties.ItemCodex.ACTORID_MIN + typealias ActorID = Int /** @@ -34,48 +35,21 @@ abstract class Actor(val renderOrder: RenderOrder) : Comparable, Runnable * Valid RefID is equal to or greater than 16777216. * @return Reference ID. (16777216-0x7FFF_FFFF) */ - open var referenceID: ActorID = generateUniqueReferenceID() + open var referenceID: ActorID? = null var actorValue = ActorValue(this) @Volatile var flagDespawn = false override fun equals(other: Any?) = referenceID == (other as Actor).referenceID - override fun hashCode() = referenceID + override fun hashCode() = referenceID!! override fun toString() = - if (actorValue.getAsString(AVKey.NAME).isNullOrEmpty()) + if (actorValue.getAsString("name").isNullOrEmpty()) "${hashCode()}" else - "${hashCode()} (${actorValue.getAsString(AVKey.NAME)})" - override fun compareTo(other: Actor): Int = (this.referenceID - other.referenceID).sign() + "${hashCode()} (${actorValue.getAsString("name")})" + override fun compareTo(other: Actor): Int = (this.referenceID!! - other.referenceID!!).sign() fun Int.sign(): Int = if (this > 0) 1 else if (this < 0) -1 else 0 - /** - * Usage: - * - * override var referenceID: Int = generateUniqueReferenceID() - */ - fun generateUniqueReferenceID(): ActorID { - fun hasCollision(value: ActorID) = - try { - Terrarum.ingame!!.theGameHasActor(value) || - value < ItemCodex.ACTORID_MIN || - value !in when (renderOrder) { - RenderOrder.BEHIND -> RANGE_BEHIND - RenderOrder.MIDDLE -> RANGE_MIDDLE - RenderOrder.MIDTOP -> RANGE_MIDTOP - RenderOrder.FRONT -> RANGE_FRONT - } - } - catch (gameNotInitialisedException: KotlinNullPointerException) { - false - } - - var ret: Int - do { - ret = HQRNG().nextInt().and(0x7FFFFFFF) // set new ID - } while (hasCollision(ret)) // check for collision - return ret - } /** * ActorValue change event handler @@ -83,6 +57,7 @@ abstract class Actor(val renderOrder: RenderOrder) : Comparable, Runnable * @param value null if the key is deleted */ abstract @Event fun onActorValueChange(key: String, value: Any?) + } annotation class Event diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index d62ad3a7f..8f30610e6 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -1,6 +1,8 @@ package net.torvald.terrarum.gameactors import com.badlogic.gdx.graphics.g2d.SpriteBatch +import net.torvald.terrarum.gameactors.Actor +import net.torvald.terrarum.gameactors.Hitbox /** * Actor with visible body diff --git a/src/net/torvald/terrarum/gameactors/ai/AILuaAPI.kt b/src/net/torvald/terrarum/gameactors/ai/AILuaAPI.kt index 84ca044cd..fc200364c 100644 --- a/src/net/torvald/terrarum/gameactors/ai/AILuaAPI.kt +++ b/src/net/torvald/terrarum/gameactors/ai/AILuaAPI.kt @@ -1,11 +1,10 @@ package net.torvald.terrarum.gameactors.ai import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.TerrarumAppLoader +import net.torvald.terrarum.AppLoader import net.torvald.terrarum.gameactors.AIControlled -import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameactors.ActorWithPhysics -import net.torvald.terrarum.worlddrawer.LightmapRenderer +import net.torvald.terrarum.modulebasegame.gameactors.AVKey +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockCodex import org.luaj.vm2.* @@ -15,7 +14,7 @@ import org.luaj.vm2.lib.ZeroArgFunction /** * Created by minjaesong on 2016-10-24. */ -internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) { +/*internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) { // FIXME when actor jumps, the actor releases left/right stick @@ -233,7 +232,7 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) { luatable[y - feetTilePos[1]] = LuaTable() for (x in feetTilePos[0] - radius..feetTilePos[0] + radius) { - val tile = BlockCodex[Terrarum.ingame!!.world.getTileFromTerrain(x, y) ?: Block.NULL] + val tile = BlockCodex[(Terrarum.ingame!! as Ingame).world.getTileFromTerrain(x, y) ?: Block.NULL] val solidity = tile.isSolid.toInt() val liquidity = tile.isFluid.toInt() val gravity = tile.isFallable.toInt() @@ -277,7 +276,7 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) { // search down var searchDownCounter = 0 while (true) { - val tile = Terrarum.ingame!!.world.getTileFromTerrain(x, feetTilePos[1] + searchDownCounter) ?: Block.STONE + val tile = (Terrarum.ingame!! as Ingame).world.getTileFromTerrain(x, feetTilePos[1] + searchDownCounter) ?: Block.STONE if (BlockCodex[tile].isSolid || searchDownCounter >= searchDownLimit) { luatable[x - feetTilePos[0]] = searchDownCounter break @@ -320,7 +319,7 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) { // search up var searchUpCounter = 0 while (true) { - val tile = Terrarum.ingame!!.world.getTileFromTerrain(x, feetTilePos[1] - searchUpCounter) ?: Block.STONE + val tile = (Terrarum.ingame!! as Ingame).world.getTileFromTerrain(x, feetTilePos[1] - searchUpCounter) ?: Block.STONE if (BlockCodex[tile].isSolid || searchUpCounter >= searchUpLimit) { luatable[x - feetTilePos[0]] = searchUpCounter break @@ -362,7 +361,7 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) { // search up var searchUpCounter = 0 while (true) { - val tile = Terrarum.ingame!!.world.getTileFromTerrain(x, feetTilePos[1] - searchUpCounter) ?: Block.STONE + val tile = (Terrarum.ingame!! as Ingame).world.getTileFromTerrain(x, feetTilePos[1] - searchUpCounter) ?: Block.STONE if (!BlockCodex[tile].isSolid || searchUpCounter >= searchUpLimit) { luatable[x - feetTilePos[0]] = searchUpCounter break @@ -381,16 +380,16 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) { class GameVersion : ZeroArgFunction() { override fun call(): LuaValue { - return TerrarumAppLoader.getVERSION_STRING().toLua() + return AppLoader.getVERSION_STRING().toLua() } } class GameVersionRaw : ZeroArgFunction() { override fun call(): LuaValue { - return TerrarumAppLoader.VERSION_RAW.toLua() + return AppLoader.VERSION_RAW.toLua() } } -} +}*/ fun Double.toLua() = LuaValue.valueOf(this) fun Int.toLua() = LuaValue.valueOf(this) diff --git a/src/net/torvald/terrarum/gameactors/ai/ActorAI.kt b/src/net/torvald/terrarum/gameactors/ai/ActorAI.kt index 78f7e974b..505b7e36d 100644 --- a/src/net/torvald/terrarum/gameactors/ai/ActorAI.kt +++ b/src/net/torvald/terrarum/gameactors/ai/ActorAI.kt @@ -1,10 +1,11 @@ package net.torvald.terrarum.gameactors.ai -import net.torvald.terrarum.gameactors.HumanoidNPC +import net.torvald.terrarum.gameactors.Actor + /** * Created by minjaesong on 2016-03-02. */ interface ActorAI { - fun update(actor: HumanoidNPC, delta: Float) + fun update(actor: Actor, delta: Float) } \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameactors/ai/LuaAIWrapper.kt b/src/net/torvald/terrarum/gameactors/ai/LuaAIWrapper.kt index 6d5c721e0..e82cdd775 100644 --- a/src/net/torvald/terrarum/gameactors/ai/LuaAIWrapper.kt +++ b/src/net/torvald/terrarum/gameactors/ai/LuaAIWrapper.kt @@ -1,9 +1,6 @@ package net.torvald.terrarum.gameactors.ai import net.torvald.terrarum.gameactors.Actor -import net.torvald.terrarum.gameactors.ActorHumanoid -import net.torvald.terrarum.gameactors.ActorWithPhysics -import net.torvald.terrarum.gameactors.HumanoidNPC import org.luaj.vm2.Globals import org.luaj.vm2.LuaError import org.luaj.vm2.LuaInteger @@ -15,7 +12,7 @@ import java.io.Reader /** * Created by minjaesong on 2017-02-04. */ -class LuaAIWrapper(private val scriptPath: String) : ActorAI { +/*class LuaAIWrapper(private val scriptPath: String) : ActorAI { protected val luag: Globals = JsePlatform.standardGlobals() @@ -27,14 +24,14 @@ class LuaAIWrapper(private val scriptPath: String) : ActorAI { private lateinit var aiLuaAPI: AILuaAPI - private lateinit var targetActor: ActorWithPhysics + private lateinit var targetActor: Actor /** * The initialiser * * Use ```(p.ai as LuaAIWrapper).attachActor(p)``` */ - fun attachActor(actor: ActorWithPhysics) { + fun attachActor(actor: Actor) { targetActor = actor luag["io"] = LuaValue.NIL @@ -47,7 +44,7 @@ class LuaAIWrapper(private val scriptPath: String) : ActorAI { luaInstance.call() } - override fun update(actor: HumanoidNPC, delta: Float) { + override fun update(actor: Actor, delta: Float) { // run "update()" function in the script luag.get("update").call(delta.toLua()) } @@ -112,4 +109,4 @@ class LuaAIWrapper(private val scriptPath: String) : ActorAI { } fun Float.toLua(): LuaValue = LuaInteger.valueOf(this.toDouble()) -} \ No newline at end of file +}*/ \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameactors/ai/NullAI.kt b/src/net/torvald/terrarum/gameactors/ai/NullAI.kt new file mode 100644 index 000000000..1b0c06ad6 --- /dev/null +++ b/src/net/torvald/terrarum/gameactors/ai/NullAI.kt @@ -0,0 +1,12 @@ +package net.torvald.terrarum.gameactors.ai + +import net.torvald.terrarum.gameactors.Actor + +/** + * Created by minjaesong on 2018-06-07. + */ +class NullAI : ActorAI { + override fun update(actor: Actor, delta: Float) { + // null AI does nothing + } +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/gamecontroller/IngameController.kt b/src/net/torvald/terrarum/gamecontroller/IngameController.kt index 630f3ff80..65a85cb9e 100644 --- a/src/net/torvald/terrarum/gamecontroller/IngameController.kt +++ b/src/net/torvald/terrarum/gamecontroller/IngameController.kt @@ -3,11 +3,11 @@ package net.torvald.terrarum.gamecontroller import com.badlogic.gdx.Gdx import com.badlogic.gdx.Input import com.badlogic.gdx.InputAdapter -import net.torvald.terrarum.Ingame +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.worlddrawer.FeaturesDrawer import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.* import net.torvald.terrarum.itemproperties.GameItem +import net.torvald.terrarum.floorInt import net.torvald.terrarum.worlddrawer.WorldCamera /** diff --git a/src/net/torvald/terrarum/gameworld/GameWorld.kt b/src/net/torvald/terrarum/gameworld/GameWorld.kt index fe1affa8e..c4ba2ef72 100644 --- a/src/net/torvald/terrarum/gameworld/GameWorld.kt +++ b/src/net/torvald/terrarum/gameworld/GameWorld.kt @@ -4,6 +4,8 @@ package net.torvald.terrarum.gameworld import com.badlogic.gdx.graphics.Color import net.torvald.terrarum.realestate.LandUtil import net.torvald.terrarum.blockproperties.BlockCodex +import net.torvald.terrarum.modulebasegame.gameworld.GameEconomy +import net.torvald.terrarum.modulebasegame.gameworld.WorldTime import org.dyn4j.geometry.Vector2 typealias BlockAddress = Long diff --git a/src/net/torvald/terrarum/gameworld/MapLayer.kt b/src/net/torvald/terrarum/gameworld/MapLayer.kt index a6b4fd3ce..6b65e7de3 100644 --- a/src/net/torvald/terrarum/gameworld/MapLayer.kt +++ b/src/net/torvald/terrarum/gameworld/MapLayer.kt @@ -1,6 +1,6 @@ package net.torvald.terrarum.gameworld -import net.torvald.terrarum.virtualcomputer.tvd.ByteArray64 +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64 /** * Created by minjaesong on 2016-01-17. diff --git a/src/net/torvald/terrarum/gameworld/MapPoint.kt b/src/net/torvald/terrarum/gameworld/MapPoint.kt index bbd977670..9677c8a76 100644 --- a/src/net/torvald/terrarum/gameworld/MapPoint.kt +++ b/src/net/torvald/terrarum/gameworld/MapPoint.kt @@ -2,8 +2,6 @@ package net.torvald.terrarum.gameworld import net.torvald.point.Point2d -import java.io.Serializable - class MapPoint { var startPoint: Point2d? = null diff --git a/src/net/torvald/terrarum/imagefont/TinyAlphNum.kt b/src/net/torvald/terrarum/imagefont/TinyAlphNum.kt index 8e9008dcc..65a8ee085 100644 --- a/src/net/torvald/terrarum/imagefont/TinyAlphNum.kt +++ b/src/net/torvald/terrarum/imagefont/TinyAlphNum.kt @@ -48,7 +48,7 @@ object TinyAlphNum : BitmapFont() { else if (c in 0.toChar()..255.toChar()) { batch.color = colourHolder.cpy().mul(0.5f, 0.5f, 0.5f, 1f) batch.draw(fontSheet.get(c.toInt() % 16, c.toInt() / 16), x + charsPrinted * W + 1, y) - batch.draw(fontSheet.get(c.toInt() % 16, c.toInt() / 16), x + charsPrinted * W , y + 1) + batch.draw(fontSheet.get(c.toInt() % 16, c.toInt() / 16), x + charsPrinted * W, y + 1) batch.draw(fontSheet.get(c.toInt() % 16, c.toInt() / 16), x + charsPrinted * W + 1, y + 1) diff --git a/src/net/torvald/terrarum/itemproperties/Calculate.kt b/src/net/torvald/terrarum/itemproperties/Calculate.kt index 8acabf114..a15267dc4 100644 --- a/src/net/torvald/terrarum/itemproperties/Calculate.kt +++ b/src/net/torvald/terrarum/itemproperties/Calculate.kt @@ -1,6 +1,7 @@ package net.torvald.terrarum.itemproperties -import net.torvald.terrarum.gameactors.* +import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid +import net.torvald.terrarum.sqrt /** * Created by minjaesong on 2017-04-17. diff --git a/src/net/torvald/terrarum/itemproperties/GameItem.kt b/src/net/torvald/terrarum/itemproperties/GameItem.kt index 1460f27d5..fa1c8093e 100644 --- a/src/net/torvald/terrarum/itemproperties/GameItem.kt +++ b/src/net/torvald/terrarum/itemproperties/GameItem.kt @@ -3,8 +3,8 @@ package net.torvald.terrarum.itemproperties import com.badlogic.gdx.graphics.Color import net.torvald.random.HQRNG import net.torvald.terrarum.ItemValue -import net.torvald.terrarum.gameactors.ActorInventory -import net.torvald.terrarum.gameactors.Pocketed +import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory +import net.torvald.terrarum.modulebasegame.gameactors.Pocketed import net.torvald.terrarum.itemproperties.ItemCodex.ITEM_DYNAMIC import net.torvald.terrarum.langpack.Lang @@ -140,7 +140,7 @@ abstract class GameItem : Comparable, Cloneable { * note: DO NOT super() this! * * Consumption function is executed in net.torvald.terrarum.gamecontroller.IngameController, - * in which the function itself is defined in net.torvald.terrarum.gameactors.ActorInventory + * in which the function itself is defined in net.torvald.terrarum.modulebasegame.gameactors.ActorInventory */ open fun primaryUse(delta: Float): Boolean = false diff --git a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt index 9baafbff8..94da20b5c 100644 --- a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt +++ b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt @@ -4,12 +4,13 @@ import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.point.Point2d import net.torvald.terrarum.KVHashMap -import net.torvald.terrarum.gameactors.CanBeAnItem +import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.ActorWithPhysics +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.worlddrawer.BlocksDrawer import net.torvald.terrarum.blockproperties.BlockCodex +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.worlddrawer.FeaturesDrawer.TILE_SIZE import java.util.* @@ -22,7 +23,7 @@ object ItemCodex { * * Will return corresponding Actor if ID >= ACTORID_MIN */ - private val itemCodex = HashMap() + val itemCodex = HashMap() private val dynamicItemDescription = HashMap() val ITEM_TILES = 0..GameWorld.TILES_SUPPORTED - 1 @@ -34,10 +35,14 @@ object ItemCodex { private val itemImagePlaceholder = TextureRegion(Texture("./assets/item_kari_24.tga")) + //private val ingame = Terrarum.ingame!! as Ingame + + + // TODO: when generalised, there's no guarantee that blocks will be used as an item. Write customised item prop loader and init it on the Ingame init { - println("[ItemCodex] recording item ID ") + /*println("[ItemCodex] recording item ID ") // blocks.csvs are loaded by ModMgr beforehand // block items (blocks and walls are the same thing basically) @@ -69,7 +74,7 @@ object ItemCodex { // check for collision with actors (BLOCK only) if (this.inventoryCategory == Category.BLOCK) { - Terrarum.ingame!!.actorContainer.forEach { + ingame.actorContainer.forEach { if (it is ActorWithPhysics && it.hIntTilewiseHitbox.intersects(mousePoint)) return false } @@ -77,25 +82,25 @@ object ItemCodex { // return false if the tile is already there if (this.inventoryCategory == Category.BLOCK && - this.dynamicID == Terrarum.ingame!!.world.getTileFromTerrain(Terrarum.mouseTileX, Terrarum.mouseTileY) || + this.dynamicID == ingame.world.getTileFromTerrain(Terrarum.mouseTileX, Terrarum.mouseTileY) || this.inventoryCategory == Category.WALL && - this.dynamicID - ITEM_WALLS.start == Terrarum.ingame!!.world.getTileFromWall(Terrarum.mouseTileX, Terrarum.mouseTileY) || + this.dynamicID - ITEM_WALLS.start == ingame.world.getTileFromWall(Terrarum.mouseTileX, Terrarum.mouseTileY) || this.inventoryCategory == Category.WIRE && - this.dynamicID - ITEM_WIRES.start == Terrarum.ingame!!.world.getTileFromWire(Terrarum.mouseTileX, Terrarum.mouseTileY) + this.dynamicID - ITEM_WIRES.start == ingame.world.getTileFromWire(Terrarum.mouseTileX, Terrarum.mouseTileY) ) return false // filter passed, do the job // FIXME this is only useful for Player if (i in ITEM_TILES) { - Terrarum.ingame!!.world.setTileTerrain( + ingame.world.setTileTerrain( Terrarum.mouseTileX, Terrarum.mouseTileY, i ) } else { - Terrarum.ingame!!.world.setTileWall( + ingame.world.setTileWall( Terrarum.mouseTileX, Terrarum.mouseTileY, i @@ -105,7 +110,7 @@ object ItemCodex { return true } } - } + }*/ // test copper pickaxe /*itemCodex[ITEM_STATIC.first] = object : GameItem() { @@ -130,30 +135,30 @@ object ItemCodex { override fun primaryUse(delta: Float): Boolean { val mousePoint = Point2d(Terrarum.mouseTileX.toDouble(), Terrarum.mouseTileY.toDouble()) - val actorvalue = Terrarum.ingame!!.player.actorValue + val actorvalue = ingame.player.actorValue using = true // linear search filter (check for intersection with tilewise mouse point and tilewise hitbox) // return false if hitting actors - Terrarum.ingame!!.actorContainer.forEach { + ingame.actorContainer.forEach { if (it is ActorWithPhysics && it.hIntTilewiseHitbox.intersects(mousePoint)) return false } // return false if there's no tile - if (Block.AIR == Terrarum.ingame!!.world.getTileFromTerrain(Terrarum.mouseTileX, Terrarum.mouseTileY)) + if (Block.AIR == ingame.world.getTileFromTerrain(Terrarum.mouseTileX, Terrarum.mouseTileY)) return false // filter passed, do the job val swingDmgToFrameDmg = delta.toDouble() / actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!! - Terrarum.ingame!!.world.inflictTerrainDamage( + ingame.world.inflictTerrainDamage( Terrarum.mouseTileX, Terrarum.mouseTileY, - Calculate.pickaxePower(Terrarum.ingame!!.player, material) * swingDmgToFrameDmg + Calculate.pickaxePower(ingame.player, material) * swingDmgToFrameDmg ) return true } @@ -161,7 +166,7 @@ object ItemCodex { override fun endPrimaryUse(delta: Float): Boolean { using = false // reset action timer to zero - Terrarum.ingame!!.player.actorValue[AVKey.__ACTION_TIMER] = 0.0 + ingame.player.actorValue[AVKey.__ACTION_TIMER] = 0.0 return true } }*/ @@ -184,7 +189,7 @@ object ItemCodex { TODO("read from dynamicitem description (JSON)") } else { - val a = Terrarum.ingame!!.getActorByID(code) // actor item + val a = (Terrarum.ingame!! as Ingame).getActorByID(code) // actor item if (a is CanBeAnItem) return a.itemData throw IllegalArgumentException("Attempted to get item data of actor that cannot be an item. ($a)") diff --git a/src/net/torvald/terrarum/itemproperties/ItemEffectsLuaAPI.kt b/src/net/torvald/terrarum/itemproperties/ItemEffectsLuaAPI.kt index 6c355a8c6..9e0df4b1f 100644 --- a/src/net/torvald/terrarum/itemproperties/ItemEffectsLuaAPI.kt +++ b/src/net/torvald/terrarum/itemproperties/ItemEffectsLuaAPI.kt @@ -2,6 +2,7 @@ package net.torvald.terrarum.itemproperties import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.ai.toLua +import net.torvald.terrarum.modulebasegame.Ingame import org.luaj.vm2.Globals import org.luaj.vm2.LuaTable import org.luaj.vm2.LuaValue @@ -43,13 +44,13 @@ class ItemEffectsLuaAPI(g: Globals) { class StrikeEarth : ThreeArgFunction() { override fun call(x: LuaValue, y: LuaValue, power: LuaValue): LuaValue { - Terrarum.ingame!!.world.inflictTerrainDamage(x.checkint(), y.checkint(), power.checkdouble()) + (Terrarum.ingame!! as Ingame).world.inflictTerrainDamage(x.checkint(), y.checkint(), power.checkdouble()) return LuaValue.NONE } } class StrikeWall : ThreeArgFunction() { override fun call(x: LuaValue, y: LuaValue, power: LuaValue): LuaValue { - Terrarum.ingame!!.world.inflictWallDamage(x.checkint(), y.checkint(), power.checkdouble()) + (Terrarum.ingame!! as Ingame).world.inflictWallDamage(x.checkint(), y.checkint(), power.checkdouble()) return LuaValue.NONE } } diff --git a/src/net/torvald/terrarum/langpack/Lang.kt b/src/net/torvald/terrarum/langpack/Lang.kt index 591cc0351..a08af6793 100644 --- a/src/net/torvald/terrarum/langpack/Lang.kt +++ b/src/net/torvald/terrarum/langpack/Lang.kt @@ -2,7 +2,7 @@ package net.torvald.terrarum.langpack import net.torvald.terrarum.utils.JsonFetcher import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.TerrarumAppLoader +import net.torvald.terrarum.AppLoader import java.io.* import java.util.* @@ -112,7 +112,7 @@ object Lang { fun fallback(): String = langpack["${key}_$FALLBACK_LANG_CODE"] ?: "$$key" - val ret = langpack["${key}_${TerrarumAppLoader.GAME_LOCALE}"] + val ret = langpack["${key}_${AppLoader.GAME_LOCALE}"] val ret2 = if (ret.isNullOrEmpty()) fallback() else ret!! // special treatment @@ -129,7 +129,7 @@ object Lang { fun pluralise(word: String, count: Int): String { if (count < 2) return word - when (TerrarumAppLoader.GAME_LOCALE) { + when (AppLoader.GAME_LOCALE) { "fr" -> { if (Arrays.binarySearch(FRENCH_WORD_NORMAL_PLURAL, word) >= 0) { return word + "s" diff --git a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt new file mode 100644 index 000000000..ac4fa94e6 --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt @@ -0,0 +1,106 @@ +package net.torvald.terrarum.modulebasegame + +import net.torvald.point.Point2d +import net.torvald.terrarum.ModMgr +import net.torvald.terrarum.ModuleEntryPoint +import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.blockproperties.BlockCodex +import net.torvald.terrarum.itemproperties.GameItem +import net.torvald.terrarum.itemproperties.ItemCodex +import net.torvald.terrarum.itemproperties.Material +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics + +/** + * Created by minjaesong on 2018-06-21. + */ +class EntryPoint : ModuleEntryPoint() { + + override fun invoke() { + + ModMgr.GameBlockLoader.invoke("basegame") + ModMgr.GameItemLoader.invoke("basegame") + ModMgr.GameLanguageLoader.invoke("basegame") + + + ///////////////////////////////// + // load customised item loader // + ///////////////////////////////// + + println("[ItemCodex] recording item ID ") + + // blocks.csvs are loaded by ModMgr beforehand + // block items (blocks and walls are the same thing basically) + for (i in ItemCodex.ITEM_TILES + ItemCodex.ITEM_WALLS) { + ItemCodex.itemCodex[i] = object : GameItem() { + override val originalID = i + override var dynamicID = i + override val isUnique: Boolean = false + override var baseMass: Double = BlockCodex[i].density / 1000.0 + override var baseToolSize: Double? = null + override var equipPosition = EquipPosition.HAND_GRIP + override val originalName = BlockCodex[i % ItemCodex.ITEM_WALLS.first].nameKey + override var stackable = true + override var inventoryCategory = if (i in ItemCodex.ITEM_TILES) Category.BLOCK else Category.WALL + override var isDynamic = false + override val material = Material(0,0,0,0,0,0,0,0,0,0.0) + + init { + print("$originalID ") + } + + override fun primaryUse(delta: Float): Boolean { + return false + // TODO base punch attack + } + + override fun secondaryUse(delta: Float): Boolean { + val ingame = Terrarum.ingame!! as Ingame + + val mousePoint = Point2d(Terrarum.mouseTileX.toDouble(), Terrarum.mouseTileY.toDouble()) + + // check for collision with actors (BLOCK only) + if (this.inventoryCategory == Category.BLOCK) { + ingame.actorContainer.forEach { + if (it is ActorWithPhysics && it.hIntTilewiseHitbox.intersects(mousePoint)) + return false + } + } + + // return false if the tile is already there + if (this.inventoryCategory == Category.BLOCK && + this.dynamicID == ingame.world.getTileFromTerrain(Terrarum.mouseTileX, Terrarum.mouseTileY) || + this.inventoryCategory == Category.WALL && + this.dynamicID - ItemCodex.ITEM_WALLS.start == ingame.world.getTileFromWall(Terrarum.mouseTileX, Terrarum.mouseTileY) || + this.inventoryCategory == Category.WIRE && + this.dynamicID - ItemCodex.ITEM_WIRES.start == ingame.world.getTileFromWire(Terrarum.mouseTileX, Terrarum.mouseTileY) + ) + return false + + // filter passed, do the job + // FIXME this is only useful for Player + if (i in ItemCodex.ITEM_TILES) { + ingame.world.setTileTerrain( + Terrarum.mouseTileX, + Terrarum.mouseTileY, + i + ) + } + else { + ingame.world.setTileWall( + Terrarum.mouseTileX, + Terrarum.mouseTileY, + i + ) + } + + return true + } + } + } + + + + println("Welcome back!") + } + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/Ingame.kt b/src/net/torvald/terrarum/modulebasegame/Ingame.kt similarity index 92% rename from src/net/torvald/terrarum/Ingame.kt rename to src/net/torvald/terrarum/modulebasegame/Ingame.kt index 1e9aa988b..9aed0b7f8 100644 --- a/src/net/torvald/terrarum/Ingame.kt +++ b/src/net/torvald/terrarum/modulebasegame/Ingame.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum +package net.torvald.terrarum.modulebasegame import com.badlogic.gdx.Gdx import com.badlogic.gdx.Input @@ -13,11 +13,11 @@ import net.torvald.terrarum.blockstats.BlockStats import net.torvald.terrarum.concurrent.ThreadParallel import net.torvald.terrarum.console.* import net.torvald.terrarum.gameactors.* -import net.torvald.terrarum.gameactors.physicssolver.CollisionSolver +import net.torvald.terrarum.modulebasegame.gameactors.physicssolver.CollisionSolver import net.torvald.terrarum.gamecontroller.IngameController import net.torvald.terrarum.gamecontroller.KeyToggler import net.torvald.terrarum.gameworld.GameWorld -import net.torvald.terrarum.gameworld.WorldSimulator +import net.torvald.terrarum.modulebasegame.gameworld.WorldSimulator import net.torvald.terrarum.weather.WeatherMixer import net.torvald.terrarum.worlddrawer.BlocksDrawer import net.torvald.terrarum.worlddrawer.FeaturesDrawer @@ -32,17 +32,27 @@ import javax.swing.JOptionPane import com.badlogic.gdx.graphics.OrthographicCamera import net.torvald.random.HQRNG +import net.torvald.terrarum.* import net.torvald.terrarum.gameworld.fmod +import net.torvald.terrarum.modulebasegame.console.AVTracker +import net.torvald.terrarum.modulebasegame.console.ActorsList +import net.torvald.terrarum.console.Authenticator +import net.torvald.terrarum.console.SetGlobalLightOverride +import net.torvald.terrarum.itemproperties.ItemCodex +import net.torvald.terrarum.modulebasegame.gameactors.* +import net.torvald.terrarum.modulebasegame.imagefont.Watch7SegMain +import net.torvald.terrarum.modulebasegame.imagefont.WatchDotAlph +import net.torvald.terrarum.modulebasegame.ui.* import net.torvald.terrarum.ui.* -import net.torvald.terrarum.worldgenerator.RoguelikeRandomiser -import net.torvald.terrarum.worldgenerator.WorldGenerator +import net.torvald.terrarum.modulebasegame.worldgenerator.RoguelikeRandomiser +import net.torvald.terrarum.modulebasegame.worldgenerator.WorldGenerator /** * Created by minjaesong on 2017-06-16. */ -class Ingame(val batch: SpriteBatch) : Screen { +class Ingame(batch: SpriteBatch) : IngameInstance(batch) { private val ACTOR_UPDATE_RANGE = 4096 @@ -53,10 +63,10 @@ class Ingame(val batch: SpriteBatch) : Screen { /** * list of Actors that is sorted by Actors' referenceID */ - val ACTORCONTAINER_INITIAL_SIZE = 64 + //val ACTORCONTAINER_INITIAL_SIZE = 64 val PARTICLES_MAX = Terrarum.getConfigInt("maxparticles") - val actorContainer = ArrayList(ACTORCONTAINER_INITIAL_SIZE) - val actorContainerInactive = ArrayList(ACTORCONTAINER_INITIAL_SIZE) + //val actorContainer = ArrayList(ACTORCONTAINER_INITIAL_SIZE) + //val actorContainerInactive = ArrayList(ACTORCONTAINER_INITIAL_SIZE) val particlesContainer = CircularArray(PARTICLES_MAX) val uiContainer = ArrayList() @@ -70,9 +80,9 @@ class Ingame(val batch: SpriteBatch) : Screen { inline val player: ActorHumanoid // currently POSSESSED actor :) get() = playableActorDelegate.actor - var screenZoom = 1.0f - val ZOOM_MAXIMUM = 4.0f - val ZOOM_MINIMUM = 0.5f + //var screenZoom = 1.0f // definition moved to IngameInstance + //val ZOOM_MAXIMUM = 4.0f // definition moved to IngameInstance + //val ZOOM_MINIMUM = 0.5f // definition moved to IngameInstance companion object { val lightmapDownsample = 4f //2f: still has choppy look when the camera moves but unnoticeable when blurred @@ -84,6 +94,36 @@ class Ingame(val batch: SpriteBatch) : Screen { camera.update() batch.projectionMatrix = camera.combined } + + + + /** + * Usage: + * + * override var referenceID: Int = generateUniqueReferenceID() + */ + fun generateUniqueReferenceID(renderOrder: Actor.RenderOrder): ActorID { + fun hasCollision(value: ActorID) = + try { + Terrarum.ingame!!.theGameHasActor(value) || + value < ItemCodex.ACTORID_MIN || + value !in when (renderOrder) { + Actor.RenderOrder.BEHIND -> Actor.RANGE_BEHIND + Actor.RenderOrder.MIDDLE -> Actor.RANGE_MIDDLE + Actor.RenderOrder.MIDTOP -> Actor.RANGE_MIDTOP + Actor.RenderOrder.FRONT -> Actor.RANGE_FRONT + } + } + catch (gameNotInitialisedException: KotlinNullPointerException) { + false + } + + var ret: Int + do { + ret = HQRNG().nextInt().and(0x7FFFFFFF) // set new ID + } while (hasCollision(ret)) // check for collision + return ret + } } @@ -110,7 +150,6 @@ class Ingame(val batch: SpriteBatch) : Screen { - lateinit var consoleHandler: UICanvas lateinit var debugWindow: UICanvas lateinit var notifier: UICanvas @@ -195,7 +234,7 @@ class Ingame(val batch: SpriteBatch) : Screen { when (gameLoadMode) { GameLoadMode.CREATE_NEW -> enter(gameLoadInfoPayload as NewWorldParameters) - GameLoadMode.LOAD_FROM -> enter(gameLoadInfoPayload as GameSaveData) + GameLoadMode.LOAD_FROM -> enter(gameLoadInfoPayload as GameSaveData) } LightmapRenderer.world = this.world @@ -248,7 +287,7 @@ class Ingame(val batch: SpriteBatch) : Screen { println("[Ingame] loaded successfully.") } else { - LoadScreen.addMessage("${Terrarum.NAME} version ${TerrarumAppLoader.getVERSION_STRING()}") + LoadScreen.addMessage("${Terrarum.NAME} version ${AppLoader.getVERSION_STRING()}") LoadScreen.addMessage("Creating new world") @@ -338,7 +377,7 @@ class Ingame(val batch: SpriteBatch) : Screen { // quick bar uiQuickBar = UIQuickBar() uiQuickBar.isVisible = true - uiQuickBar.setPosition(0, 0) + uiQuickBar.setPosition((Terrarum.WIDTH - uiQuickBar.width) / 2 + 12, -10) // pie menu uiPieMenu = UIPieMenu() @@ -463,7 +502,7 @@ class Ingame(val batch: SpriteBatch) : Screen { - Gdx.graphics.setTitle(TerrarumAppLoader.GAME_NAME + + Gdx.graphics.setTitle(AppLoader.GAME_NAME + " — F: ${Gdx.graphics.framesPerSecond} (${Terrarum.TARGET_INTERNAL_FPS})" + " — M: ${Terrarum.memInUse}M / ${Terrarum.memTotal}M / ${Terrarum.memXmx}M" ) @@ -701,7 +740,7 @@ class Ingame(val batch: SpriteBatch) : Screen { batch.draw(lightTex, xrem, yrem, - lightTex.width * Ingame.lightmapDownsample, lightTex.height * Ingame.lightmapDownsample + lightTex.width * lightmapDownsample, lightTex.height * lightmapDownsample //lightTex.width.toFloat(), lightTex.height.toFloat() // for debugging ) @@ -771,7 +810,7 @@ class Ingame(val batch: SpriteBatch) : Screen { batch.draw(lightTex, xrem, yrem, - lightTex.width * Ingame.lightmapDownsample, lightTex.height * Ingame.lightmapDownsample + lightTex.width * lightmapDownsample, lightTex.height * lightmapDownsample //lightTex.width.toFloat(), lightTex.height.toFloat() // for debugging ) @@ -1190,35 +1229,15 @@ class Ingame(val batch: SpriteBatch) : Screen { private fun ActorWithBody.inScreen() = distToCameraSqr(this) <= (Terrarum.WIDTH.plus(this.hitbox.width.div(2)). - times(1 / Terrarum.ingame!!.screenZoom).sqr() + + times(1 / screenZoom).sqr() + Terrarum.HEIGHT.plus(this.hitbox.height.div(2)). - times(1 / Terrarum.ingame!!.screenZoom).sqr()) + times(1 / screenZoom).sqr()) /** whether the actor is within update range */ private fun ActorWithBody.inUpdateRange() = distToCameraSqr(this) <= ACTOR_UPDATE_RANGE.sqr() - /** - * actorContainer extensions - */ - fun theGameHasActor(actor: Actor?) = if (actor == null) false else theGameHasActor(actor.referenceID) - - fun theGameHasActor(ID: Int): Boolean = - isActive(ID) || isInactive(ID) - - fun isActive(ID: Int): Boolean = - if (actorContainer.size == 0) - false - else - actorContainer.binarySearch(ID) >= 0 - - fun isInactive(ID: Int): Boolean = - if (actorContainerInactive.size == 0) - false - else - actorContainerInactive.binarySearch(ID) >= 0 - - fun removeActor(ID: Int) = removeActor(getActorByID(ID)) + override fun removeActor(ID: Int) = removeActor(getActorByID(ID)) /** * get index of the actor and delete by the index. * we can do this as the list is guaranteed to be sorted @@ -1227,10 +1246,10 @@ class Ingame(val batch: SpriteBatch) : Screen { * Any values behind the index will be automatically pushed to front. * This is how remove function of [java.util.ArrayList] is defined. */ - fun removeActor(actor: Actor) { + override fun removeActor(actor: Actor) { if (actor.referenceID == player.referenceID || actor.referenceID == 0x51621D) // do not delete this magic throw RuntimeException("Attempted to remove player.") - val indexToDelete = actorContainer.binarySearch(actor.referenceID) + val indexToDelete = actorContainer.binarySearch(actor.referenceID!!) if (indexToDelete >= 0) { actorContainer.removeAt(indexToDelete) @@ -1239,19 +1258,19 @@ class Ingame(val batch: SpriteBatch) : Screen { if (actor is ActorWithBody) { when (actor.renderOrder) { Actor.RenderOrder.BEHIND -> { - val i = actorsRenderBehind.binarySearch(actor.referenceID) + val i = actorsRenderBehind.binarySearch(actor.referenceID!!) actorsRenderBehind.removeAt(i) } Actor.RenderOrder.MIDDLE -> { - val i = actorsRenderMiddle.binarySearch(actor.referenceID) + val i = actorsRenderMiddle.binarySearch(actor.referenceID!!) actorsRenderMiddle.removeAt(i) } Actor.RenderOrder.MIDTOP -> { - val i = actorsRenderMidTop.binarySearch(actor.referenceID) + val i = actorsRenderMidTop.binarySearch(actor.referenceID!!) actorsRenderMidTop.removeAt(i) } Actor.RenderOrder.FRONT -> { - val i = actorsRenderFront.binarySearch(actor.referenceID) + val i = actorsRenderFront.binarySearch(actor.referenceID!!) actorsRenderFront.removeAt(i) } } @@ -1262,8 +1281,8 @@ class Ingame(val batch: SpriteBatch) : Screen { /** * Check for duplicates, append actor and sort the list */ - fun addNewActor(actor: Actor) { - if (theGameHasActor(actor.referenceID)) { + override fun addNewActor(actor: Actor) { + if (theGameHasActor(actor.referenceID!!)) { throw Error("The actor $actor already exists in the game") } else { @@ -1290,8 +1309,8 @@ class Ingame(val batch: SpriteBatch) : Screen { } fun activateDormantActor(actor: Actor) { - if (!isInactive(actor.referenceID)) { - if (isActive(actor.referenceID)) + if (!isInactive(actor.referenceID!!)) { + if (isActive(actor.referenceID!!)) throw Error("The actor $actor is already activated") else throw Error("The actor $actor already exists in the game") @@ -1335,40 +1354,6 @@ class Ingame(val batch: SpriteBatch) : Screen { uiContainer.add(ui) } - fun getActorByID(ID: Int): Actor { - if (actorContainer.size == 0 && actorContainerInactive.size == 0) - throw IllegalArgumentException("Actor with ID $ID does not exist.") - - var index = actorContainer.binarySearch(ID) - if (index < 0) { - index = actorContainerInactive.binarySearch(ID) - - if (index < 0) { - JOptionPane.showMessageDialog( - null, - "Actor with ID $ID does not exist.", - null, JOptionPane.ERROR_MESSAGE - ) - throw IllegalArgumentException("Actor with ID $ID does not exist.") - } - else - return actorContainerInactive[index] - } - else - return actorContainer[index] - } - - private fun insertionSortLastElem(arr: ArrayList) { - lock(ReentrantLock()) { - var j = arr.lastIndex - 1 - val x = arr.last() - while (j >= 0 && arr[j] > x) { - arr[j + 1] = arr[j] - j -= 1 - } - arr[j + 1] = x - } - } private fun insertionSortLastElemAV(arr: ArrayList) { // out-projection doesn't work, duh lock(ReentrantLock()) { var j = arr.lastIndex - 1 @@ -1381,38 +1366,6 @@ class Ingame(val batch: SpriteBatch) : Screen { } } - private fun ArrayList<*>.binarySearch(actor: Actor) = this.binarySearch(actor.referenceID) - - private fun ArrayList<*>.binarySearch(ID: Int): Int { - // code from collections/Collections.kt - var low = 0 - var high = this.size - 1 - - while (low <= high) { - val mid = (low + high).ushr(1) // safe from overflows - - val midVal = get(mid)!! - - if (ID > midVal.hashCode()) - low = mid + 1 - else if (ID < midVal.hashCode()) - high = mid - 1 - else - return mid // key found - } - return -(low + 1) // key not found - } - - inline fun lock(lock: Lock, body: () -> Unit) { - lock.lock() - try { - body() - } - finally { - lock.unlock() - } - } - fun setTooltipMessage(message: String?) { if (message == null) { uiTooltip.setAsClose() @@ -1525,6 +1478,16 @@ class Ingame(val batch: SpriteBatch) : Screen { uiAliases.forEach { it.dispose() } uiAlasesPausing.forEach { it.dispose() } + + + WatchDotAlph.dispose() + Watch7SegMain.dispose() + WatchDotAlph.dispose() + + ItemSlotImageBuilder.dispose() + + MessageWindow.SEGMENT_BLACK.dispose() + MessageWindow.SEGMENT_WHITE.dispose() } @@ -1534,6 +1497,8 @@ class Ingame(val batch: SpriteBatch) : Screen { * Camera will be moved so that (newX, newY) would be sit on the top-left edge. */ fun setCameraPosition(newX: Float, newY: Float) { - Ingame.setCameraPosition(batch, camera, newX, newY) + setCameraPosition(batch, camera, newX, newY) } + + } diff --git a/src/net/torvald/terrarum/console/AVTracker.kt b/src/net/torvald/terrarum/modulebasegame/console/AVTracker.kt similarity index 74% rename from src/net/torvald/terrarum/console/AVTracker.kt rename to src/net/torvald/terrarum/modulebasegame/console/AVTracker.kt index a7dd2bc03..6c7c79f01 100644 --- a/src/net/torvald/terrarum/console/AVTracker.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/AVTracker.kt @@ -1,7 +1,11 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.debuggerapp.ActorValueTracker +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.console.EchoError +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.debuggerapp.ActorValueTracker import java.util.* /** @@ -12,7 +16,7 @@ internal object AVTracker : ConsoleCommand { override fun execute(args: Array) { if (args.size < 2) { - jPanelInstances.add(ActorValueTracker(Terrarum.ingame!!.player)) + jPanelInstances.add(ActorValueTracker((Terrarum.ingame!! as Ingame).player)) } else { try { diff --git a/src/net/torvald/terrarum/console/ActorsList.kt b/src/net/torvald/terrarum/modulebasegame/console/ActorsList.kt similarity index 63% rename from src/net/torvald/terrarum/console/ActorsList.kt rename to src/net/torvald/terrarum/modulebasegame/console/ActorsList.kt index 4bc4630dd..30cded045 100644 --- a/src/net/torvald/terrarum/console/ActorsList.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ActorsList.kt @@ -1,7 +1,10 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo import net.torvald.terrarum.debuggerapp.ActorsLister +import net.torvald.terrarum.modulebasegame.Ingame import java.util.* /** @@ -12,8 +15,8 @@ internal object ActorsList : ConsoleCommand { override fun execute(args: Array) { jPanelInstances.add(ActorsLister( - Terrarum.ingame!!.actorContainer, - Terrarum.ingame!!.actorContainerInactive) + (Terrarum.ingame!! as Ingame).actorContainer, + (Terrarum.ingame!! as Ingame).actorContainerInactive) ) } diff --git a/src/net/torvald/terrarum/console/CatStdout.kt b/src/net/torvald/terrarum/modulebasegame/console/CatStdout.kt similarity index 81% rename from src/net/torvald/terrarum/console/CatStdout.kt rename to src/net/torvald/terrarum/modulebasegame/console/CatStdout.kt index 2e6d1a353..395c4962c 100644 --- a/src/net/torvald/terrarum/console/CatStdout.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/CatStdout.kt @@ -1,5 +1,7 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo import java.io.IOException import java.nio.file.FileSystems import java.nio.file.Files diff --git a/src/net/torvald/terrarum/modulebasegame/console/CheatWarnTest.kt b/src/net/torvald/terrarum/modulebasegame/console/CheatWarnTest.kt new file mode 100644 index 000000000..deb611823 --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/console/CheatWarnTest.kt @@ -0,0 +1,15 @@ +package net.torvald.terrarum.modulebasegame.console + +import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.modulebasegame.Ingame + +object CheatWarnTest : ConsoleCommand { + + override fun execute(args: Array) { + (Terrarum.ingame as? Ingame)?.uiCheatMotherfuckerNootNoot?.setAsOpen() + } + + override fun printUsage() { + } +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/console/CodexEdictis.kt b/src/net/torvald/terrarum/modulebasegame/console/CodexEdictis.kt similarity index 85% rename from src/net/torvald/terrarum/console/CodexEdictis.kt rename to src/net/torvald/terrarum/modulebasegame/console/CodexEdictis.kt index 1191821a3..4f98a5895 100644 --- a/src/net/torvald/terrarum/console/CodexEdictis.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/CodexEdictis.kt @@ -1,7 +1,9 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.ccO -import net.torvald.terrarum.ccW +import net.torvald.terrarum.console.CommandDict +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo import net.torvald.terrarum.langpack.Lang import java.util.Formatter diff --git a/src/net/torvald/terrarum/console/ExportAV.kt b/src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt similarity index 77% rename from src/net/torvald/terrarum/console/ExportAV.kt rename to src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt index aaf0ae504..36291bdc8 100644 --- a/src/net/torvald/terrarum/console/ExportAV.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt @@ -1,7 +1,10 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.utils.JsonWriter import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame import java.io.IOException @@ -13,7 +16,7 @@ internal object ExportAV : ConsoleCommand { if (args.size == 2) { try { JsonWriter.writeToFile( - Terrarum.ingame!!.player.actorValue, + (Terrarum.ingame!! as Ingame).player.actorValue, Terrarum.defaultDir + "/Exports/" + args[1] + ".json") Echo("ExportAV: exported to " + args[1] + ".json") diff --git a/src/net/torvald/terrarum/console/ExportLayerData.kt b/src/net/torvald/terrarum/modulebasegame/console/ExportLayerData.kt similarity index 78% rename from src/net/torvald/terrarum/console/ExportLayerData.kt rename to src/net/torvald/terrarum/modulebasegame/console/ExportLayerData.kt index d377543b6..279fcc91f 100644 --- a/src/net/torvald/terrarum/console/ExportLayerData.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ExportLayerData.kt @@ -1,7 +1,8 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo import net.torvald.terrarum.serialise.WriteLayerData -import net.torvald.terrarum.serialise.WriteMeta /** * Created by minjaesong on 2017-07-18. diff --git a/src/net/torvald/terrarum/console/ExportMap.kt b/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt similarity index 87% rename from src/net/torvald/terrarum/console/ExportMap.kt rename to src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt index 5a3acfa05..ef937b4dc 100644 --- a/src/net/torvald/terrarum/console/ExportMap.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt @@ -1,9 +1,13 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.colourutil.Col4096 import net.torvald.terrarum.utils.RasterWriter import net.torvald.terrarum.Terrarum import net.torvald.terrarum.blockproperties.Block +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.console.EchoError +import net.torvald.terrarum.modulebasegame.Ingame import java.io.* import java.util.HashMap @@ -58,12 +62,14 @@ internal object ExportMap : ConsoleCommand { } override fun execute(args: Array) { + val world = (Terrarum.ingame!! as Ingame).world + if (args.size == 2) { - var mapData = ByteArray(Terrarum.ingame!!.world.width * Terrarum.ingame!!.world.height * 3) + var mapData = ByteArray(world.width * world.height * 3) var mapDataPointer = 0 - for (tile in Terrarum.ingame!!.world.terrainIterator()) { + for (tile in world.terrainIterator()) { val colArray = (colorTable as Map) .getOrElse(tile, { Col4096(0xFFF) }).toByteArray() @@ -82,7 +88,7 @@ internal object ExportMap : ConsoleCommand { try { RasterWriter.writePNG_RGB( - Terrarum.ingame!!.world.width, Terrarum.ingame!!.world.height, mapData, dir + args[1] + ".png") + world.width, world.height, mapData, dir + args[1] + ".png") Echo("ExportMap: exported to " + args[1] + ".png") } diff --git a/src/net/torvald/terrarum/console/ForceGC.kt b/src/net/torvald/terrarum/modulebasegame/console/ForceGC.kt similarity index 66% rename from src/net/torvald/terrarum/console/ForceGC.kt rename to src/net/torvald/terrarum/modulebasegame/console/ForceGC.kt index 5bb714aab..112ed372e 100644 --- a/src/net/torvald/terrarum/console/ForceGC.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ForceGC.kt @@ -1,4 +1,7 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console + +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo /** * Created by minjaesong on 2016-01-18. diff --git a/src/net/torvald/terrarum/console/GetAV.kt b/src/net/torvald/terrarum/modulebasegame/console/GetAV.kt similarity index 70% rename from src/net/torvald/terrarum/console/GetAV.kt rename to src/net/torvald/terrarum/modulebasegame/console/GetAV.kt index f47e52d5d..54c3cde70 100644 --- a/src/net/torvald/terrarum/console/GetAV.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/GetAV.kt @@ -1,7 +1,11 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.* import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.console.EchoError +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-01-19. @@ -10,9 +14,12 @@ internal object GetAV : ConsoleCommand { override fun execute(args: Array) { try { - if (args.size == 1 && Terrarum.ingame!!.player != null) { + val ingame = Terrarum.ingame!! as Ingame + + + if (args.size == 1 && ingame.player != null) { // print all actorvalue of player - val av = Terrarum.ingame!!.player.actorValue + val av = ingame.player.actorValue val keyset = av.keySet Echo("$ccW== ActorValue list for ${ccY}player $ccW==") @@ -29,20 +36,20 @@ internal object GetAV : ConsoleCommand { // check if args[1] is number or not if (!args[1].isNum()) { // args[1] is ActorValue name Echo("${ccW}player.$ccM${args[1]} $ccW= " + - ccG + - Terrarum.ingame!!.player.actorValue[args[1]] + - " $ccO" + - Terrarum.ingame!!.player.actorValue[args[1]]!!.javaClass.simpleName + ccG + + ingame.player.actorValue[args[1]] + + " $ccO" + + ingame.player.actorValue[args[1]]!!.javaClass.simpleName ) println("[GetAV] player.${args[1]} = " + - Terrarum.ingame!!.player.actorValue[args[1]] + + ingame.player.actorValue[args[1]] + " " + - Terrarum.ingame!!.player.actorValue[args[1]]!!.javaClass.simpleName + ingame.player.actorValue[args[1]]!!.javaClass.simpleName ) } else { // args[1] is actor ID - val actor = Terrarum.ingame!!.getActorByID(args[1].toInt()) + val actor = ingame.getActorByID(args[1].toInt()) val av = actor.actorValue val keyset = av.keySet @@ -64,14 +71,14 @@ internal object GetAV : ConsoleCommand { val id = args[1].toInt() val av = args[2] Echo("$ccW$id.$ccM$av $ccW= $ccG" + - Terrarum.ingame!!.getActorByID(id).actorValue[av] + - " $ccO" + - Terrarum.ingame!!.getActorByID(id).actorValue[av]!!.javaClass.simpleName + ingame.getActorByID(id).actorValue[av] + + " $ccO" + + ingame.getActorByID(id).actorValue[av]!!.javaClass.simpleName ) println("$id.$av = " + - Terrarum.ingame!!.getActorByID(id).actorValue[av] + + ingame.getActorByID(id).actorValue[av] + " " + - Terrarum.ingame!!.getActorByID(id).actorValue[av]!!.javaClass.simpleName + ingame.getActorByID(id).actorValue[av]!!.javaClass.simpleName ) } } diff --git a/src/net/torvald/terrarum/console/GetFactioning.kt b/src/net/torvald/terrarum/modulebasegame/console/GetFactioning.kt similarity index 93% rename from src/net/torvald/terrarum/console/GetFactioning.kt rename to src/net/torvald/terrarum/modulebasegame/console/GetFactioning.kt index e820dbb4f..930df3154 100644 --- a/src/net/torvald/terrarum/console/GetFactioning.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/GetFactioning.kt @@ -1,9 +1,13 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.console.EchoError import net.torvald.terrarum.gameactors.Factionable -import net.torvald.terrarum.gameactors.Player +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameactors.Player import net.torvald.terrarumsansbitmap.gdx.GameFontBase /** diff --git a/src/net/torvald/terrarum/console/GetLocale.kt b/src/net/torvald/terrarum/modulebasegame/console/GetLocale.kt similarity index 77% rename from src/net/torvald/terrarum/console/GetLocale.kt rename to src/net/torvald/terrarum/modulebasegame/console/GetLocale.kt index 795cdf6a3..0958fc0ce 100644 --- a/src/net/torvald/terrarum/console/GetLocale.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/GetLocale.kt @@ -1,5 +1,7 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo import net.torvald.terrarum.langpack.Lang /** diff --git a/src/net/torvald/terrarum/console/GetTime.kt b/src/net/torvald/terrarum/modulebasegame/console/GetTime.kt similarity index 55% rename from src/net/torvald/terrarum/console/GetTime.kt rename to src/net/torvald/terrarum/modulebasegame/console/GetTime.kt index 63ae14b34..7556e42d6 100644 --- a/src/net/torvald/terrarum/console/GetTime.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/GetTime.kt @@ -1,6 +1,9 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-03-20. @@ -8,7 +11,7 @@ import net.torvald.terrarum.Terrarum internal object GetTime : ConsoleCommand { override fun execute(args: Array) { - val worldTime = Terrarum.ingame!!.world.time + val worldTime = (Terrarum.ingame!! as Ingame).world.time Echo(worldTime.getFormattedTime()) } diff --git a/src/net/torvald/terrarum/console/GsonTest.kt b/src/net/torvald/terrarum/modulebasegame/console/GsonTest.kt similarity index 79% rename from src/net/torvald/terrarum/console/GsonTest.kt rename to src/net/torvald/terrarum/modulebasegame/console/GsonTest.kt index 2b5a663b7..81efd1a2f 100644 --- a/src/net/torvald/terrarum/console/GsonTest.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/GsonTest.kt @@ -1,7 +1,10 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum import com.google.gson.Gson +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame import java.io.BufferedWriter import java.io.FileWriter @@ -13,7 +16,7 @@ import java.io.IOException internal object GsonTest : ConsoleCommand { override fun execute(args: Array) { if (args.size == 2) { - val avelem = Gson().toJsonTree(Terrarum.ingame!!.player) + val avelem = Gson().toJsonTree((Terrarum.ingame!! as Ingame).player) val jsonString = avelem.toString() diff --git a/src/net/torvald/terrarum/console/Help.kt b/src/net/torvald/terrarum/modulebasegame/console/Help.kt similarity index 81% rename from src/net/torvald/terrarum/console/Help.kt rename to src/net/torvald/terrarum/modulebasegame/console/Help.kt index 705818fb7..f22fd1a6d 100644 --- a/src/net/torvald/terrarum/console/Help.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/Help.kt @@ -1,5 +1,7 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo import net.torvald.terrarum.langpack.Lang /** diff --git a/src/net/torvald/terrarum/console/ImportLayerData.kt b/src/net/torvald/terrarum/modulebasegame/console/ImportLayerData.kt similarity index 58% rename from src/net/torvald/terrarum/console/ImportLayerData.kt rename to src/net/torvald/terrarum/modulebasegame/console/ImportLayerData.kt index 27e856f22..841274ae4 100644 --- a/src/net/torvald/terrarum/console/ImportLayerData.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ImportLayerData.kt @@ -1,10 +1,12 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.serialise.ReadLayerData import net.torvald.terrarum.worlddrawer.FeaturesDrawer import java.io.FileInputStream -import java.util.zip.GZIPInputStream /** * Created by minjaesong on 2017-07-18. @@ -18,10 +20,10 @@ object ImportLayerData : ConsoleCommand { //val fis = GZIPInputStream(FileInputStream(args[1])) // this gzip is kaput val fis = FileInputStream(args[1]) - Terrarum.ingame!!.world = ReadLayerData(fis) - Terrarum.ingame!!.player.setPosition( - Terrarum.ingame!!.world.spawnY * FeaturesDrawer.TILE_SIZE.toDouble(), - Terrarum.ingame!!.world.spawnX * FeaturesDrawer.TILE_SIZE.toDouble() + (Terrarum.ingame!! as Ingame).world = ReadLayerData(fis) + (Terrarum.ingame!! as Ingame).player.setPosition( + (Terrarum.ingame!! as Ingame).world.spawnY * FeaturesDrawer.TILE_SIZE.toDouble(), + (Terrarum.ingame!! as Ingame).world.spawnX * FeaturesDrawer.TILE_SIZE.toDouble() ) fis.close() Echo("Successfully loaded ${args[1]}") diff --git a/src/net/torvald/terrarum/console/Inventory.kt b/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt similarity index 80% rename from src/net/torvald/terrarum/console/Inventory.kt rename to src/net/torvald/terrarum/modulebasegame/console/Inventory.kt index 056912a1b..ee3d2affd 100644 --- a/src/net/torvald/terrarum/console/Inventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt @@ -1,16 +1,20 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.Player -import net.torvald.terrarum.gameactors.Pocketed +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.console.EchoError +import net.torvald.terrarum.modulebasegame.gameactors.Player +import net.torvald.terrarum.modulebasegame.gameactors.Pocketed import net.torvald.terrarum.itemproperties.ItemCodex +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-12-12. */ internal object Inventory : ConsoleCommand { - private var target: Pocketed? = Terrarum.ingame!!.player + private var target: Pocketed? = (Terrarum.ingame!! as Ingame).player override fun execute(args: Array) { if (args.size == 1) { @@ -20,7 +24,7 @@ internal object Inventory : ConsoleCommand { when (args[1]) { "list" -> listInventory() "add" -> if (args.size > 3) addItem(args[2].toInt(), args[3].toInt()) - else addItem(args[2].toInt()) + else addItem(args[2].toInt()) "target" -> setTarget(args[2].toInt()) "equip" -> equipItem(args[2].toInt()) else -> printUsage() diff --git a/src/net/torvald/terrarum/console/JavaIMTest.kt b/src/net/torvald/terrarum/modulebasegame/console/JavaIMTest.kt similarity index 76% rename from src/net/torvald/terrarum/console/JavaIMTest.kt rename to src/net/torvald/terrarum/modulebasegame/console/JavaIMTest.kt index 1275c146e..7e58b4744 100644 --- a/src/net/torvald/terrarum/console/JavaIMTest.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/JavaIMTest.kt @@ -1,5 +1,7 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo import net.torvald.terrarum.swingapp.IMStringReader /** diff --git a/src/net/torvald/terrarum/console/KillActor.kt b/src/net/torvald/terrarum/modulebasegame/console/KillActor.kt similarity index 80% rename from src/net/torvald/terrarum/console/KillActor.kt rename to src/net/torvald/terrarum/modulebasegame/console/KillActor.kt index e04d96e4c..525dd58e5 100644 --- a/src/net/torvald/terrarum/console/KillActor.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/KillActor.kt @@ -1,6 +1,9 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.console.EchoError import net.torvald.terrarum.langpack.Lang /** diff --git a/src/net/torvald/terrarum/console/LangTest.kt b/src/net/torvald/terrarum/modulebasegame/console/LangTest.kt similarity index 74% rename from src/net/torvald/terrarum/console/LangTest.kt rename to src/net/torvald/terrarum/modulebasegame/console/LangTest.kt index a7ade7512..f9cd2dc2a 100644 --- a/src/net/torvald/terrarum/console/LangTest.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/LangTest.kt @@ -1,5 +1,7 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo import net.torvald.terrarum.langpack.Lang /** diff --git a/src/net/torvald/terrarum/console/MoneyDisp.kt b/src/net/torvald/terrarum/modulebasegame/console/MoneyDisp.kt similarity index 74% rename from src/net/torvald/terrarum/console/MoneyDisp.kt rename to src/net/torvald/terrarum/modulebasegame/console/MoneyDisp.kt index 35254878f..fc004c1f5 100644 --- a/src/net/torvald/terrarum/console/MoneyDisp.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/MoneyDisp.kt @@ -1,6 +1,8 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.random.HQRNG +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo object MoneyDisp : ConsoleCommand { override fun execute(args: Array) { diff --git a/src/net/torvald/terrarum/console/MusicTest.kt b/src/net/torvald/terrarum/modulebasegame/console/MusicTest.kt similarity index 88% rename from src/net/torvald/terrarum/console/MusicTest.kt rename to src/net/torvald/terrarum/modulebasegame/console/MusicTest.kt index 71d66c01b..76d13433e 100644 --- a/src/net/torvald/terrarum/console/MusicTest.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/MusicTest.kt @@ -1,7 +1,9 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import com.badlogic.gdx.Gdx import com.badlogic.gdx.audio.Music +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo /** * Created by minjaesong on 2016-08-02. diff --git a/src/net/torvald/terrarum/console/PrintRandomTips.kt b/src/net/torvald/terrarum/modulebasegame/console/PrintRandomTips.kt similarity index 70% rename from src/net/torvald/terrarum/console/PrintRandomTips.kt rename to src/net/torvald/terrarum/modulebasegame/console/PrintRandomTips.kt index c383c3210..234dbbf78 100644 --- a/src/net/torvald/terrarum/console/PrintRandomTips.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/PrintRandomTips.kt @@ -1,7 +1,7 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console -import net.torvald.terrarum.langpack.Lang -import java.util.* +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo /** * Created by minjaesong on 2016-07-04. diff --git a/src/net/torvald/terrarum/modulebasegame/console/Seed.kt b/src/net/torvald/terrarum/modulebasegame/console/Seed.kt new file mode 100644 index 000000000..c9a32dcfd --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/console/Seed.kt @@ -0,0 +1,23 @@ +package net.torvald.terrarum.modulebasegame.console + +import net.torvald.terrarum.* +import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame + +/** + * Created by minjaesong on 2016-06-16. + */ +internal object Seed : ConsoleCommand { + + override fun execute(args: Array) { + Echo("Map$ccW: $ccG${(Terrarum.ingame!! as Ingame).world.generatorSeed}") + println("[seed] Map$ccW: $ccG${(Terrarum.ingame!! as Ingame).world.generatorSeed}") + // TODO display randomiser seed + } + + override fun printUsage() { + Echo("prints out the generator seed of the current game.") + } +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/console/SetAV.kt b/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt similarity index 91% rename from src/net/torvald/terrarum/console/SetAV.kt rename to src/net/torvald/terrarum/modulebasegame/console/SetAV.kt index 6c5bd9820..55647a94a 100644 --- a/src/net/torvald/terrarum/console/SetAV.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SetAV.kt @@ -1,7 +1,11 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.* import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.console.EchoError +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-01-15. @@ -59,7 +63,7 @@ internal object SetAV : ConsoleCommand { return } - Terrarum.ingame!!.player.actorValue[args[1]] = newValue + (Terrarum.ingame!! as Ingame).player.actorValue[args[1]] = newValue Echo("${ccW}Set $ccM${args[1]} ${ccW}for ${ccY}player ${ccW}to $ccG$newValue") println("[SetAV] set ActorValue '${args[1]}' for player to '$newValue'.") } diff --git a/src/net/torvald/terrarum/console/SetBulletin.kt b/src/net/torvald/terrarum/modulebasegame/console/SetBulletin.kt similarity index 73% rename from src/net/torvald/terrarum/console/SetBulletin.kt rename to src/net/torvald/terrarum/modulebasegame/console/SetBulletin.kt index 23dca7d9f..c289de1bc 100644 --- a/src/net/torvald/terrarum/console/SetBulletin.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SetBulletin.kt @@ -1,7 +1,9 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-01-23. @@ -24,7 +26,7 @@ internal object SetBulletin : ConsoleCommand { * @param message real message */ fun send(message: Array) { - Terrarum.ingame!!.sendNotification(message) + (Terrarum.ingame!! as Ingame).sendNotification(message) println("sent notifinator") } } diff --git a/src/net/torvald/terrarum/console/SetScale.kt b/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt similarity index 71% rename from src/net/torvald/terrarum/console/SetScale.kt rename to src/net/torvald/terrarum/modulebasegame/console/SetScale.kt index 03dde766f..1f941f984 100644 --- a/src/net/torvald/terrarum/console/SetScale.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SetScale.kt @@ -1,7 +1,11 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.ActorWithPhysics +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.console.EchoError +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics /** * Created by minjaesong on 2017-01-20. @@ -10,10 +14,10 @@ internal object SetScale : ConsoleCommand { override fun execute(args: Array) { if (args.size == 2 || args.size == 3) { try { - val targetID = if (args.size == 3) args[1].toInt() else Terrarum.ingame!!.player.referenceID + val targetID = if (args.size == 3) args[1].toInt() else (Terrarum.ingame!! as Ingame).player.referenceID val scale = args[if (args.size == 3) 2 else 1].toDouble() - val target = Terrarum.ingame!!.getActorByID(targetID) + val target = Terrarum.ingame!!.getActorByID(targetID!!) if (target !is ActorWithPhysics) { EchoError("Target is not ActorWithPhysics") diff --git a/src/net/torvald/terrarum/console/SetTime.kt b/src/net/torvald/terrarum/modulebasegame/console/SetTime.kt similarity index 50% rename from src/net/torvald/terrarum/console/SetTime.kt rename to src/net/torvald/terrarum/modulebasegame/console/SetTime.kt index c928a6eb5..aa2e83ac6 100644 --- a/src/net/torvald/terrarum/console/SetTime.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SetTime.kt @@ -1,20 +1,26 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console -import net.torvald.terrarum.gameworld.WorldTime +import net.torvald.terrarum.modulebasegame.gameworld.WorldTime import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-03-20. */ internal object SetTime : ConsoleCommand { override fun execute(args: Array) { + val world = (Terrarum.ingame!! as Ingame).world + + if (args.size == 2) { val timeToSet = WorldTime.parseTime(args[1]) - Terrarum.ingame!!.world.time.setTimeOfToday(timeToSet) + world.time.setTimeOfToday(timeToSet) - Echo("Set time to ${Terrarum.ingame!!.world.time.todaySeconds} " + - "(${Terrarum.ingame!!.world.time.hours}h${formatMin(Terrarum.ingame!!.world.time.minutes)})") + Echo("Set time to ${world.time.todaySeconds} " + + "(${world.time.hours}h${formatMin(world.time.minutes)})") } else { printUsage() diff --git a/src/net/torvald/terrarum/console/SetTimeDelta.kt b/src/net/torvald/terrarum/modulebasegame/console/SetTimeDelta.kt similarity index 52% rename from src/net/torvald/terrarum/console/SetTimeDelta.kt rename to src/net/torvald/terrarum/modulebasegame/console/SetTimeDelta.kt index 4c2441532..19e068118 100644 --- a/src/net/torvald/terrarum/console/SetTimeDelta.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SetTimeDelta.kt @@ -1,6 +1,9 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-03-20. @@ -10,12 +13,15 @@ internal object SetTimeDelta : ConsoleCommand { val HARD_LIMIT = 60 override fun execute(args: Array) { + val world = (Terrarum.ingame!! as Ingame).world + + if (args.size == 2) { - Terrarum.ingame!!.world.time.timeDelta = args[1].toInt() - if (Terrarum.ingame!!.world.time.timeDelta == 0) + world.time.timeDelta = args[1].toInt() + if (world.time.timeDelta == 0) Echo("時間よ止まれ!ザ・ワルド!!") else - Echo("Set time delta to ${Terrarum.ingame!!.world.time.timeDelta}") + Echo("Set time delta to ${world.time.timeDelta}") } else { printUsage() diff --git a/src/net/torvald/terrarum/console/SpawnPhysTestBall.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt similarity index 73% rename from src/net/torvald/terrarum/console/SpawnPhysTestBall.kt rename to src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt index 9df630d79..d4082ef72 100644 --- a/src/net/torvald/terrarum/console/SpawnPhysTestBall.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestBall.kt @@ -1,8 +1,10 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console -import net.torvald.terrarum.gameactors.PhysTestBall +import net.torvald.terrarum.modulebasegame.gameactors.PhysTestBall import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.worlddrawer.WorldCamera +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame import org.dyn4j.geometry.Vector2 /** @@ -11,6 +13,9 @@ import org.dyn4j.geometry.Vector2 internal object SpawnPhysTestBall : ConsoleCommand { @Throws(Exception::class) override fun execute(args: Array) { + val world = (Terrarum.ingame!! as Ingame).world + + val mouseX = Terrarum.mouseX val mouseY = Terrarum.mouseY @@ -20,7 +25,7 @@ internal object SpawnPhysTestBall : ConsoleCommand { val xvel = args[2].toDouble() val yvel = if (args.size >= 4) args[3].toDouble() else 0.0 - val ball = PhysTestBall(Terrarum.ingame!!.world) + val ball = PhysTestBall(world) ball.setPosition(mouseX, mouseY) ball.elasticity = elasticity ball.applyForce(Vector2(xvel, yvel)) @@ -30,7 +35,7 @@ internal object SpawnPhysTestBall : ConsoleCommand { else if (args.size == 2) { val elasticity = args[1].toDouble() - val ball = PhysTestBall(Terrarum.ingame!!.world) + val ball = PhysTestBall(world) ball.setPosition(mouseX, mouseY) ball.elasticity = elasticity diff --git a/src/net/torvald/terrarum/console/SpawnPhysTestLunarLander.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt similarity index 56% rename from src/net/torvald/terrarum/console/SpawnPhysTestLunarLander.kt rename to src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt index 6af77b71d..3176fb261 100644 --- a/src/net/torvald/terrarum/console/SpawnPhysTestLunarLander.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnPhysTestLunarLander.kt @@ -1,8 +1,10 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.PhysTestLuarLander -import net.torvald.terrarum.worlddrawer.WorldCamera +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameactors.PhysTestLuarLander /** * Created by minjaesong on 2018-01-18. @@ -11,7 +13,7 @@ internal object SpawnPhysTestLunarLander : ConsoleCommand { override fun execute(args: Array) { val mouseX = Terrarum.mouseX val mouseY = Terrarum.mouseY - val lander = PhysTestLuarLander(Terrarum.ingame!!.world) + val lander = PhysTestLuarLander((Terrarum.ingame!! as Ingame).world) lander.setPosition(mouseX, mouseY) diff --git a/src/net/torvald/terrarum/console/SpawnTapestry.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnTapestry.kt similarity index 69% rename from src/net/torvald/terrarum/console/SpawnTapestry.kt rename to src/net/torvald/terrarum/modulebasegame/console/SpawnTapestry.kt index 880207608..adb1f20cd 100644 --- a/src/net/torvald/terrarum/console/SpawnTapestry.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnTapestry.kt @@ -1,7 +1,9 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.DecodeTapestry +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.gameactors.DecodeTapestry import java.io.File /** diff --git a/src/net/torvald/terrarum/console/SpawnTikiTorch.kt b/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt similarity index 52% rename from src/net/torvald/terrarum/console/SpawnTikiTorch.kt rename to src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt index cc61419e6..b57ca627a 100644 --- a/src/net/torvald/terrarum/console/SpawnTikiTorch.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/SpawnTikiTorch.kt @@ -1,14 +1,17 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.FixtureTikiTorch +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch /** * Created by minjaesong on 2016-12-17. */ internal object SpawnTikiTorch : ConsoleCommand { override fun execute(args: Array) { - val torch = FixtureTikiTorch(Terrarum.ingame!!.world) + val torch = FixtureTikiTorch((Terrarum.ingame!! as Ingame).world) torch.setPosition(Terrarum.mouseX, Terrarum.mouseY) Terrarum.ingame!!.addNewActor(torch) diff --git a/src/net/torvald/terrarum/console/Teleport.kt b/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt similarity index 88% rename from src/net/torvald/terrarum/console/Teleport.kt rename to src/net/torvald/terrarum/modulebasegame/console/Teleport.kt index 198db2952..9de9a4686 100644 --- a/src/net/torvald/terrarum/console/Teleport.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/Teleport.kt @@ -1,8 +1,12 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.worlddrawer.FeaturesDrawer import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.ActorWithPhysics +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.console.EchoError +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics /** * Created by minjaesong on 2016-01-24. @@ -23,7 +27,7 @@ internal object Teleport : ConsoleCommand { return } - Terrarum.ingame!!.player.setPosition(x.toDouble(), y.toDouble()) + (Terrarum.ingame!! as Ingame).player.setPosition(x.toDouble(), y.toDouble()) } else if (args.size == 4) { if (args[2].toLowerCase() != "to") { @@ -35,7 +39,7 @@ internal object Teleport : ConsoleCommand { try { val fromActorID = args[1].toInt() val targetActorID = if (args[3].toLowerCase() == "player") - Terrarum.ingame!!.player.referenceID + (Terrarum.ingame!! as Ingame).player.referenceID!! else args[3].toInt() diff --git a/src/net/torvald/terrarum/console/ToggleNoClip.kt b/src/net/torvald/terrarum/modulebasegame/console/ToggleNoClip.kt similarity index 51% rename from src/net/torvald/terrarum/console/ToggleNoClip.kt rename to src/net/torvald/terrarum/modulebasegame/console/ToggleNoClip.kt index 1f7b5bc58..05ae44b44 100644 --- a/src/net/torvald/terrarum/console/ToggleNoClip.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ToggleNoClip.kt @@ -1,15 +1,18 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-01-19. */ internal object ToggleNoClip : ConsoleCommand { override fun execute(args: Array) { - val status = Terrarum.ingame!!.player.isNoClip() + val status = (Terrarum.ingame!! as Ingame).player.isNoClip() - Terrarum.ingame!!.player.setNoClip(!status) + (Terrarum.ingame!! as Ingame).player.setNoClip(!status) Echo("Set no-clip status to " + (!status).toString()) } diff --git a/src/net/torvald/terrarum/console/Zoom.kt b/src/net/torvald/terrarum/modulebasegame/console/Zoom.kt similarity index 87% rename from src/net/torvald/terrarum/console/Zoom.kt rename to src/net/torvald/terrarum/modulebasegame/console/Zoom.kt index e4a8c0b55..85665d33c 100644 --- a/src/net/torvald/terrarum/console/Zoom.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/Zoom.kt @@ -1,6 +1,8 @@ -package net.torvald.terrarum.console +package net.torvald.terrarum.modulebasegame.console import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.console.ConsoleCommand +import net.torvald.terrarum.console.Echo /** * Created by minjaesong on 2016-01-25. diff --git a/src/net/torvald/terrarum/debuggerapp/ActorValueTracker.kt b/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt similarity index 94% rename from src/net/torvald/terrarum/debuggerapp/ActorValueTracker.kt rename to src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt index 7c67c484b..d7f0e7eff 100644 --- a/src/net/torvald/terrarum/debuggerapp/ActorValueTracker.kt +++ b/src/net/torvald/terrarum/modulebasegame/debuggerapp/ActorValueTracker.kt @@ -1,12 +1,13 @@ -package net.torvald.terrarum.debuggerapp +package net.torvald.terrarum.modulebasegame.debuggerapp import net.torvald.terrarum.* import net.torvald.terrarum.gameactors.ActorValue import net.torvald.terrarum.Terrarum import net.torvald.terrarum.console.Echo -import net.torvald.terrarum.console.SetAV +import net.torvald.terrarum.modulebasegame.console.SetAV import net.torvald.terrarum.gameactors.Actor -import net.torvald.terrarum.gameactors.ActorWithPhysics +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics import net.torvald.terrarum.worlddrawer.FeaturesDrawer import java.awt.BorderLayout import java.awt.GridLayout @@ -67,7 +68,7 @@ class ActorValueTracker constructor() : JFrame() { "${actor!!.referenceID};" + "${modavInputKey.text};" + "${modavInputValue.text}" - ).split(';').toTypedArray()) + ).split(';').toTypedArray()) } } }) @@ -83,7 +84,7 @@ class ActorValueTracker constructor() : JFrame() { buttonChangeActor.addMouseListener(object : MouseAdapter() { override fun mousePressed(e: MouseEvent?) { if (actorIDField.text.toLowerCase() == "player") { - actor = Terrarum.ingame!!.player + actor = (Terrarum.ingame!! as Ingame).player actorValue = actor!!.actorValue } else if (actorIDField.text.isNotBlank()) { diff --git a/src/net/torvald/terrarum/gameactors/AVKey.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/AVKey.kt similarity index 95% rename from src/net/torvald/terrarum/gameactors/AVKey.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/AVKey.kt index 77128e799..98b0527ff 100644 --- a/src/net/torvald/terrarum/gameactors/AVKey.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/AVKey.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors /** * See [res/raw/Creature_raw_doc.md] for information about raw. @@ -103,4 +103,9 @@ object AVKey { * Or for NPCs, how long it has been waiting for next move */ const val __ACTION_TIMER = "__actiontimer" + + + + const val HEALTH = "health" + const val MAGIC = "magic" } \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameactors/ActorHumanoid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt similarity index 96% rename from src/net/torvald/terrarum/gameactors/ActorHumanoid.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt index 74f9cc077..a4ea1cbc3 100644 --- a/src/net/torvald/terrarum/gameactors/ActorHumanoid.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt @@ -1,15 +1,21 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Color import com.jme3.math.FastMath import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.bipolarClamp +import net.torvald.terrarum.gameactors.Controllable +import net.torvald.terrarum.gameactors.Factionable +import net.torvald.terrarum.gameactors.Hitbox +import net.torvald.terrarum.gameactors.Luminous import net.torvald.terrarum.gameactors.faction.Faction import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.Material +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.realestate.LandUtil -import net.torvald.terrarum.ui.UIInventoryFull +import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull import net.torvald.terrarum.worlddrawer.LightmapRenderer import org.dyn4j.geometry.Vector2 import java.util.* @@ -143,7 +149,7 @@ open class ActorHumanoid( protected var isRightDown = false protected var isJumpDown = false protected inline val isGamer: Boolean - get() = if (Terrarum.ingame == null) false else this == Terrarum.ingame!!.player + get() = if (Terrarum.ingame == null) false else this == (Terrarum.ingame!! as Ingame).player private val nullItem = object : GameItem() { @@ -487,10 +493,10 @@ open class ActorHumanoid( get() { // compare all the affecting variables if (oldMAX_JUMP_LENGTH == MAX_JUMP_LENGTH && - oldJUMPPOWER == actorValue.getAsDouble(AVKey.JUMPPOWER)!! && - oldJUMPPOWERBUFF == actorValue.getAsDouble(AVKey.JUMPPOWERBUFF) ?: 1.0 && - oldScale == scale && - oldDragCoefficient == dragCoefficient) { + oldJUMPPOWER == actorValue.getAsDouble(AVKey.JUMPPOWER)!! && + oldJUMPPOWERBUFF == actorValue.getAsDouble(AVKey.JUMPPOWERBUFF) ?: 1.0 && + oldScale == scale && + oldDragCoefficient == dragCoefficient) { return field } // if variables are changed, get new value, store it and return it @@ -590,7 +596,7 @@ open class ActorHumanoid( // force update inventory UI try { - (Terrarum.ingame!!.uiInventoryPlayer as UIInventoryFull).rebuildList() + ((Terrarum.ingame!! as Ingame).uiInventoryPlayer as UIInventoryFull).rebuildList() } catch (LateInitMyArse: kotlin.UninitializedPropertyAccessException) { } } diff --git a/src/net/torvald/terrarum/gameactors/ActorInventory.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt similarity index 96% rename from src/net/torvald/terrarum/gameactors/ActorInventory.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt index 3101fbdc1..da2fd15ae 100644 --- a/src/net/torvald/terrarum/gameactors/ActorInventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt @@ -1,13 +1,14 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors -import com.badlogic.gdx.Gdx import net.torvald.terrarum.Terrarum import net.torvald.terrarum.blockproperties.BlockCodex +import net.torvald.terrarum.gameactors.Actor import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.ItemCodex import net.torvald.terrarum.itemproperties.ItemCodex.ITEM_DYNAMIC import net.torvald.terrarum.itemproperties.ItemCodex.ITEM_WALLS import net.torvald.terrarum.itemproperties.ItemID +import net.torvald.terrarum.modulebasegame.Ingame import java.util.* import java.util.concurrent.locks.Lock import java.util.concurrent.locks.ReentrantLock @@ -61,8 +62,8 @@ class ActorInventory(val actor: Pocketed, var maxCapacity: Int, var capacityMode "These commands are NOT INTERCHANGEABLE; they handle things differently according to the context.") if (item.originalID == Player.PLAYER_REF_ID || item.originalID == 0x51621D) // do not delete this magic throw IllegalArgumentException("Attempted to put human player into the inventory.") - if ((Terrarum.ingame?.gameFullyLoaded ?: false) && - (item.originalID == Terrarum.ingame?.player?.referenceID)) + if (((Terrarum.ingame as? Ingame)?.gameFullyLoaded ?: false) && + (item.originalID == (Terrarum.ingame as? Ingame)?.player?.referenceID)) throw IllegalArgumentException("Attempted to put active player into the inventory.") if ((!item.stackable || item.dynamicID in ITEM_DYNAMIC) && count > 1) throw IllegalArgumentException("Attempting to adding stack of item but the item is not stackable; item: $item, count: $count") diff --git a/src/net/torvald/terrarum/gameactors/ActorWithPhysics.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorWithPhysics.kt similarity index 94% rename from src/net/torvald/terrarum/gameactors/ActorWithPhysics.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ActorWithPhysics.kt index 7da1bf9e2..bb597fd7e 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithPhysics.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorWithPhysics.kt @@ -1,9 +1,8 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.Input import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch -import com.jme3.math.FastMath import net.torvald.point.Point2d import net.torvald.terrarum.* import net.torvald.terrarum.gameworld.GameWorld @@ -13,16 +12,18 @@ import net.torvald.spriteanimation.SpriteAnimation import net.torvald.terrarum.worlddrawer.WorldCamera import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockProp +import net.torvald.terrarum.gameactors.ActorWithBody +import net.torvald.terrarum.gameactors.Controllable +import net.torvald.terrarum.gameactors.Hitbox import net.torvald.terrarum.gamecontroller.KeyToggler import net.torvald.terrarum.gameworld.BlockAddress +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.realestate.LandUtil import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack import org.dyn4j.geometry.Vector2 import java.util.* -typealias Second = Float - /** * Base class for every actor that has animated sprites. This includes furnishings, paintings, gadgets, etc. * Also has all the usePhysics @@ -105,7 +106,7 @@ open class ActorWithPhysics(val world: GameWorld, renderOrder: RenderOrder, val /** Apparent scale. Use "avBaseScale" for base scale */ var scale: Double inline get() = (actorValue.getAsDouble(AVKey.SCALE) ?: 1.0) * - (actorValue.getAsDouble(AVKey.SCALEBUFF) ?: 1.0) + (actorValue.getAsDouble(AVKey.SCALEBUFF) ?: 1.0) set(value) { val scaleDelta = value - scale actorValue[AVKey.SCALE] = value / (actorValue.getAsDouble(AVKey.SCALEBUFF) ?: 1.0) @@ -675,15 +676,15 @@ open class ActorWithPhysics(val world: GameWorld, renderOrder: RenderOrder, val // points to the EDGE of the tile in world dimension (don't use this directly to get tilewise coord!!) val offendingTileWorldX = if (selfCollisionStatus in listOf(6, 12)) - newHitbox.endX.div(TILE_SIZE).floor() * TILE_SIZE - 0.00001 + newHitbox.endX.div(TILE_SIZE).floor() * TILE_SIZE - 0.00001 else - newHitbox.startX.div(TILE_SIZE).ceil() * TILE_SIZE + newHitbox.startX.div(TILE_SIZE).ceil() * TILE_SIZE // points to the EDGE of the tile in world dimension (don't use this directly to get tilewise coord!!) val offendingTileWorldY = if (selfCollisionStatus in listOf(3, 6)) - newHitbox.endY.div(TILE_SIZE).floor() * TILE_SIZE - 0.00001 + newHitbox.endY.div(TILE_SIZE).floor() * TILE_SIZE - 0.00001 else - newHitbox.startY.div(TILE_SIZE).ceil() * TILE_SIZE + newHitbox.startY.div(TILE_SIZE).ceil() * TILE_SIZE val offendingHitboxPointX = if (selfCollisionStatus in listOf(6, 12)) newHitbox.endX @@ -912,23 +913,23 @@ open class ActorWithPhysics(val world: GameWorld, renderOrder: RenderOrder, val val tileY: Int if (side == COLLIDING_LEFT) { tileX = div16TruncateToMapWidth(hitbox.hitboxStart.x.roundInt() - + i + translateX) + + i + translateX) tileY = div16TruncateToMapHeight(hitbox.hitboxEnd.y.roundInt() + translateY) } else if (side == COLLIDING_TOP) { tileX = div16TruncateToMapWidth(hitbox.hitboxStart.x.roundInt() - + i + translateX) + + i + translateX) tileY = div16TruncateToMapHeight(hitbox.hitboxStart.y.roundInt() + translateY) } else if (side == COLLIDING_RIGHT) { tileX = div16TruncateToMapWidth(hitbox.hitboxEnd.x.roundInt() + translateX) tileY = div16TruncateToMapHeight(hitbox.hitboxStart.y.roundInt() - + i + translateY) + + i + translateY) } else if (side == COLLIDING_LEFT) { tileX = div16TruncateToMapWidth(hitbox.hitboxStart.x.roundInt() + translateX) tileY = div16TruncateToMapHeight(hitbox.hitboxStart.y.roundInt() - + i + translateY) + + i + translateY) } else { throw IllegalArgumentException(side.toString() + ": Wrong side input") @@ -1324,7 +1325,7 @@ open class ActorWithPhysics(val world: GameWorld, renderOrder: RenderOrder, val } private fun forEachOccupyingTilePos(hitbox: Hitbox, consumer: (BlockAddress) -> Unit) { - val newTilewiseHitbox = Hitbox.fromTwoPoints( + val newTilewiseHitbox = Hitbox.fromTwoPoints( hitbox.startX.div(TILE_SIZE).floor(), hitbox.startY.div(TILE_SIZE).floor(), hitbox.endX.minus(0.00001).div(TILE_SIZE).floor(), @@ -1410,8 +1411,8 @@ open class ActorWithPhysics(val world: GameWorld, renderOrder: RenderOrder, val private fun div16TruncateToMapWidth(x: Int): Int { if (x < 0) return 0 - else if (x >= Terrarum.ingame!!.world.width shl 4) - return Terrarum.ingame!!.world.width - 1 + else if (x >= (Terrarum.ingame!! as Ingame).world.width shl 4) + return (Terrarum.ingame!! as Ingame).world.width - 1 else return x and 0x7FFFFFFF shr 4 } @@ -1419,8 +1420,8 @@ open class ActorWithPhysics(val world: GameWorld, renderOrder: RenderOrder, val private fun div16TruncateToMapHeight(y: Int): Int { if (y < 0) return 0 - else if (y >= Terrarum.ingame!!.world.height shl 4) - return Terrarum.ingame!!.world.height - 1 + else if (y >= (Terrarum.ingame!! as Ingame).world.height shl 4) + return (Terrarum.ingame!! as Ingame).world.height - 1 else return y and 0x7FFFFFFF shr 4 } @@ -1478,55 +1479,3 @@ open class ActorWithPhysics(val world: GameWorld, renderOrder: RenderOrder, val } } -inline fun Int.sqr(): Int = this * this -inline fun Double.floorInt() = Math.floor(this).toInt() -inline fun Float.floorInt() = FastMath.floor(this) -inline fun Float.floor() = FastMath.floor(this).toFloat() -inline fun Double.ceilInt() = Math.ceil(this).toInt() -inline fun Float.ceil(): Float = FastMath.ceil(this).toFloat() -inline fun Float.ceilInt() = FastMath.ceil(this) -inline fun Double.round() = Math.round(this).toDouble() -inline fun Double.floor() = Math.floor(this) -inline fun Double.ceil() = this.floor() + 1.0 -inline fun Double.roundInt(): Int = Math.round(this).toInt() -inline fun Float.roundInt(): Int = Math.round(this) -inline fun Double.abs() = Math.abs(this) -inline fun Double.sqr() = this * this -inline fun Double.sqrt() = Math.sqrt(this) -inline fun Float.sqrt() = FastMath.sqrt(this) -inline fun Int.abs() = if (this < 0) -this else this -fun Double.bipolarClamp(limit: Double) = - if (this > 0 && this > limit) limit - else if (this < 0 && this < -limit) -limit - else this - -fun absMax(left: Double, right: Double): Double { - if (left > 0 && right > 0) - if (left > right) return left - else return right - else if (left < 0 && right < 0) - if (left < right) return left - else return right - else { - val absL = left.abs() - val absR = right.abs() - if (absL > absR) return left - else return right - } -} - -fun Double.magnSqr() = if (this >= 0.0) this.sqr() else -this.sqr() -fun Double.sign() = if (this > 0.0) 1.0 else if (this < 0.0) -1.0 else 0.0 - -fun interpolateLinear(scale: Double, startValue: Double, endValue: Double): Double { - if (startValue == endValue) { - return startValue - } - if (scale <= 0.0) { - return startValue - } - if (scale >= 1.0) { - return endValue - } - return (1.0 - scale) * startValue + scale * endValue -} \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameactors/CanBeAnItem.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/CanBeAnItem.kt similarity index 81% rename from src/net/torvald/terrarum/gameactors/CanBeAnItem.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/CanBeAnItem.kt index 6f5c2d2be..510df1300 100644 --- a/src/net/torvald/terrarum/gameactors/CanBeAnItem.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/CanBeAnItem.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.itemproperties.GameItem diff --git a/src/net/torvald/terrarum/gameactors/CreatureBuilder.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/CreatureBuilder.kt similarity index 83% rename from src/net/torvald/terrarum/gameactors/CreatureBuilder.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/CreatureBuilder.kt index 37a04d428..592f5a230 100644 --- a/src/net/torvald/terrarum/gameactors/CreatureBuilder.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/CreatureBuilder.kt @@ -1,5 +1,6 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors +import net.torvald.terrarum.gameactors.Actor import net.torvald.terrarum.gameworld.GameWorld diff --git a/src/net/torvald/terrarum/gameactors/DecodeTapestry.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/DecodeTapestry.kt similarity index 96% rename from src/net/torvald/terrarum/gameactors/DecodeTapestry.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/DecodeTapestry.kt index b51e2554a..287d96cdc 100644 --- a/src/net/torvald/terrarum/gameactors/DecodeTapestry.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/DecodeTapestry.kt @@ -1,9 +1,10 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Pixmap import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameworld.toUint +import net.torvald.terrarum.modulebasegame.Ingame import java.io.File import java.nio.charset.Charset import java.util.* @@ -172,6 +173,6 @@ object DecodeTapestry { readCounter++ } - return TapestryObject(Terrarum.ingame!!.world, outImageData, artName, authorName) + return TapestryObject((Terrarum.ingame!! as Ingame).world, outImageData, artName, authorName) } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameactors/DroppedItem.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/DroppedItem.kt similarity index 90% rename from src/net/torvald/terrarum/gameactors/DroppedItem.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/DroppedItem.kt index 6069bfb54..68917604f 100644 --- a/src/net/torvald/terrarum/gameactors/DroppedItem.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/DroppedItem.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.itemproperties.GameItem @@ -9,7 +9,7 @@ import net.torvald.terrarum.gameworld.GameWorld /** * Created by minjaesong on 2016-03-15. */ -open class DroppedItem(world: GameWorld, private val item: GameItem) : ActorWithPhysics(world, Actor.RenderOrder.MIDTOP) { +open class DroppedItem(world: GameWorld, private val item: GameItem) : ActorWithPhysics(world, RenderOrder.MIDTOP) { init { if (item.dynamicID >= ItemCodex.ACTORID_MIN) diff --git a/src/net/torvald/terrarum/gameactors/FixtureBase.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt similarity index 85% rename from src/net/torvald/terrarum/gameactors/FixtureBase.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt index 611713db2..23771b74e 100644 --- a/src/net/torvald/terrarum/gameactors/FixtureBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.gameworld.GameWorld @@ -6,7 +6,7 @@ import net.torvald.terrarum.gameworld.GameWorld * Created by minjaesong on 2016-06-17. */ open class FixtureBase(world: GameWorld, physics: Boolean = true) : - ActorWithPhysics(world, Actor.RenderOrder.BEHIND, immobileBody = true, usePhysics = physics) { + ActorWithPhysics(world, RenderOrder.BEHIND, immobileBody = true, usePhysics = physics) { /** * 0: Open * 1: Blocked diff --git a/src/net/torvald/terrarum/gameactors/FixtureTikiTorch.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTikiTorch.kt similarity index 87% rename from src/net/torvald/terrarum/gameactors/FixtureTikiTorch.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTikiTorch.kt index c83676502..93d7f607b 100644 --- a/src/net/torvald/terrarum/gameactors/FixtureTikiTorch.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTikiTorch.kt @@ -1,9 +1,11 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Color import net.torvald.terrarum.ModMgr import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockCodex +import net.torvald.terrarum.gameactors.Hitbox +import net.torvald.terrarum.gameactors.Luminous import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack import java.util.* diff --git a/src/net/torvald/terrarum/gameactors/HistoricalFigure.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/HistoricalFigure.kt similarity index 85% rename from src/net/torvald/terrarum/gameactors/HistoricalFigure.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/HistoricalFigure.kt index e8f08aea7..455039c12 100644 --- a/src/net/torvald/terrarum/gameactors/HistoricalFigure.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/HistoricalFigure.kt @@ -1,9 +1,10 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.random.HQRNG import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameworld.GameWorld -import net.torvald.terrarum.gameworld.WorldTime +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameworld.WorldTime typealias AnyPlayer = HistoricalFigure @@ -21,7 +22,7 @@ open class HistoricalFigure( val dead: GameDate? = null, realAirFriction: Boolean = false, usePhysics: Boolean = true -) : ActorWithPhysics(world, Actor.RenderOrder.MIDDLE, realAirFriction, usePhysics) { +) : ActorWithPhysics(world, RenderOrder.MIDDLE, realAirFriction, usePhysics) { var historicalFigureIdentifier: Int = generateHistoricalFigureIdentifier() internal set @@ -29,7 +30,7 @@ open class HistoricalFigure( private fun generateHistoricalFigureIdentifier(): Int { fun hasCollision(value: Int) = try { - Terrarum.ingame!!.historicalFigureIDBucket.contains(value) + (Terrarum.ingame!! as Ingame).historicalFigureIDBucket.contains(value) } catch (gameNotInitialisedException: KotlinNullPointerException) { false diff --git a/src/net/torvald/terrarum/gameactors/HumanoidNPC.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt similarity index 89% rename from src/net/torvald/terrarum/gameactors/HumanoidNPC.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt index 04599fa31..058ecdaee 100644 --- a/src/net/torvald/terrarum/gameactors/HumanoidNPC.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt @@ -1,8 +1,8 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.gameactors.AIControlled import net.torvald.terrarum.gameactors.ai.ActorAI -import net.torvald.terrarum.gameactors.ai.LuaAIWrapper import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.Material @@ -16,15 +16,12 @@ open class HumanoidNPC( world: GameWorld, override val ai: ActorAI, // it's there for written-in-Kotlin, "hard-wired" AIs born: GameDate, - usePhysics: Boolean = true + usePhysics: Boolean = true, + forceAssignRefID: Int? = null ) : ActorHumanoid(world, born, usePhysics = usePhysics), AIControlled, CanBeAnItem { - constructor(world: GameWorld, luaAi: LuaAIWrapper, born: GameDate) : this(world, luaAi as ActorAI, born) { - luaAi.attachActor(this) - } - companion object { - val DEFAULT_COLLISION_TYPE = ActorWithPhysics.COLLISION_DYNAMIC + val DEFAULT_COLLISION_TYPE = COLLISION_DYNAMIC } init { @@ -33,7 +30,7 @@ open class HumanoidNPC( // we're having GameItem data so that this class could be somewhat universal override var itemData: GameItem = object : GameItem() { - override var dynamicID = referenceID + override var dynamicID = referenceID ?: forceAssignRefID!! override val originalID = dynamicID override val isUnique = true override var baseMass: Double diff --git a/src/net/torvald/terrarum/gameactors/InjectCreatureRaw.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/InjectCreatureRaw.kt similarity index 97% rename from src/net/torvald/terrarum/gameactors/InjectCreatureRaw.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/InjectCreatureRaw.kt index 3ce108754..f5df73b6d 100644 --- a/src/net/torvald/terrarum/gameactors/InjectCreatureRaw.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/InjectCreatureRaw.kt @@ -1,10 +1,11 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.utils.JsonFetcher import net.torvald.random.Fudge3 import net.torvald.terrarum.langpack.Lang import com.google.gson.JsonObject import net.torvald.terrarum.ModMgr +import net.torvald.terrarum.gameactors.ActorValue import java.security.SecureRandom /** diff --git a/src/net/torvald/terrarum/gameactors/LandHolder.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/LandHolder.kt similarity index 87% rename from src/net/torvald/terrarum/gameactors/LandHolder.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/LandHolder.kt index 14bf3898a..47fbce046 100644 --- a/src/net/torvald/terrarum/gameactors/LandHolder.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/LandHolder.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import java.util.* diff --git a/src/net/torvald/terrarum/gameactors/ParticleBase.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ParticleBase.kt similarity index 80% rename from src/net/torvald/terrarum/gameactors/ParticleBase.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ParticleBase.kt index d5cfec8da..206bfb465 100644 --- a/src/net/torvald/terrarum/gameactors/ParticleBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ParticleBase.kt @@ -1,13 +1,17 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors -import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion +import net.torvald.terrarum.Second import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.ActorWithPhysics.Companion.SI_TO_GAME_ACC +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics.Companion.SI_TO_GAME_ACC import net.torvald.terrarum.worlddrawer.FeaturesDrawer.TILE_SIZE import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockCodex +import net.torvald.terrarum.floorInt +import net.torvald.terrarum.gameactors.Actor +import net.torvald.terrarum.gameactors.Hitbox +import net.torvald.terrarum.modulebasegame.Ingame import org.dyn4j.geometry.Vector2 /** @@ -44,7 +48,7 @@ open class ParticleBase(renderOrder: Actor.RenderOrder, val despawnUponCollision if (despawnUponCollision) { if (velocity.isZero || // simple stuck check - BlockCodex[Terrarum.ingame!!.world.getTileFromTerrain( + BlockCodex[(Terrarum.ingame!! as Ingame).world.getTileFromTerrain( hitbox.canonicalX.div(TILE_SIZE).floorInt(), hitbox.canonicalY.div(TILE_SIZE).floorInt() ) ?: Block.STONE].isSolid) { @@ -58,7 +62,7 @@ open class ParticleBase(renderOrder: Actor.RenderOrder, val despawnUponCollision // gravity, winds, etc. (external forces) if (!isNoSubjectToGrav) { - velocity += Terrarum.ingame!!.world.gravitation / dragCoefficient * SI_TO_GAME_ACC + velocity += (Terrarum.ingame!! as Ingame).world.gravitation / dragCoefficient * SI_TO_GAME_ACC } diff --git a/src/net/torvald/terrarum/gameactors/ParticleMegaRain.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ParticleMegaRain.kt similarity index 95% rename from src/net/torvald/terrarum/gameactors/ParticleMegaRain.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ParticleMegaRain.kt index 9d72aabcb..c0884abc9 100644 --- a/src/net/torvald/terrarum/gameactors/ParticleMegaRain.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ParticleMegaRain.kt @@ -1,11 +1,12 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.random.HQRNG import net.torvald.terrarum.ModMgr -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.Second +import net.torvald.terrarum.gameactors.Actor /** * Created by minjaesong on 2017-12-18. diff --git a/src/net/torvald/terrarum/gameactors/ParticleTestRain.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ParticleTestRain.kt similarity index 86% rename from src/net/torvald/terrarum/gameactors/ParticleTestRain.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ParticleTestRain.kt index 8145f04b1..a7f594e81 100644 --- a/src/net/torvald/terrarum/gameactors/ParticleTestRain.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ParticleTestRain.kt @@ -1,8 +1,9 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.ModMgr +import net.torvald.terrarum.gameactors.Actor /** * Created by minjaesong on 2017-01-20. diff --git a/src/net/torvald/terrarum/gameactors/PhysTestBall.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestBall.kt similarity index 68% rename from src/net/torvald/terrarum/gameactors/PhysTestBall.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestBall.kt index 9522c2c3e..e74ddb1c3 100644 --- a/src/net/torvald/terrarum/gameactors/PhysTestBall.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestBall.kt @@ -1,15 +1,16 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameworld.GameWorld -import net.torvald.terrarum.worldgenerator.RoguelikeRandomiser +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.worldgenerator.RoguelikeRandomiser /** * Created by minjaesong on 2016-03-05. */ -class PhysTestBall(world: GameWorld) : ActorWithPhysics(world, Actor.RenderOrder.MIDDLE, immobileBody = true) { +class PhysTestBall(world: GameWorld) : ActorWithPhysics(world, RenderOrder.MIDDLE, immobileBody = true) { private var color = Color.GOLD @@ -31,13 +32,13 @@ class PhysTestBall(world: GameWorld) : ActorWithPhysics(world, Actor.RenderOrder ) it.circle( - hitbox.startX.toFloat() + Terrarum.ingame!!.world.width * TILE_SIZE - 1f, + hitbox.startX.toFloat() + (Terrarum.ingame!! as Ingame).world.width * TILE_SIZE - 1f, hitbox.startY.toFloat() - 1f, hitbox.width.toFloat() ) it.circle( - hitbox.startX.toFloat() - Terrarum.ingame!!.world.width * TILE_SIZE - 1f, + hitbox.startX.toFloat() - (Terrarum.ingame!! as Ingame).world.width * TILE_SIZE - 1f, hitbox.startY.toFloat() - 1f, hitbox.width.toFloat() ) diff --git a/src/net/torvald/terrarum/gameactors/PhysTestLuarLander.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestLuarLander.kt similarity index 90% rename from src/net/torvald/terrarum/gameactors/PhysTestLuarLander.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestLuarLander.kt index a5d4a538e..c4837123e 100644 --- a/src/net/torvald/terrarum/gameactors/PhysTestLuarLander.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PhysTestLuarLander.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.Gdx import com.badlogic.gdx.Input @@ -6,6 +6,8 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.ModMgr +import net.torvald.terrarum.gameactors.Controllable +import net.torvald.terrarum.gameactors.Hitbox import net.torvald.terrarum.gameworld.GameWorld /** diff --git a/src/net/torvald/terrarum/gameactors/PlayableActorDelegate.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayableActorDelegate.kt similarity index 88% rename from src/net/torvald/terrarum/gameactors/PlayableActorDelegate.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/PlayableActorDelegate.kt index da6a64031..38f138bce 100644 --- a/src/net/torvald/terrarum/gameactors/PlayableActorDelegate.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayableActorDelegate.kt @@ -1,6 +1,6 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors -import net.torvald.terrarum.worlddrawer.LightmapRenderer +import net.torvald.terrarum.gameactors.Controllable /** * A wrapper to support instant player changing (or possessing other NPCs maybe) diff --git a/src/net/torvald/terrarum/gameactors/Player.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/Player.kt similarity index 92% rename from src/net/torvald/terrarum/gameactors/Player.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/Player.kt index 6f1f0f2a7..913b3085f 100644 --- a/src/net/torvald/terrarum/gameactors/Player.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/Player.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.gameworld.GameWorld diff --git a/src/net/torvald/terrarum/gameactors/PlayerBuilder.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt similarity index 62% rename from src/net/torvald/terrarum/gameactors/PlayerBuilder.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt index 0f637c31f..4cf72ae74 100644 --- a/src/net/torvald/terrarum/gameactors/PlayerBuilder.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilder.kt @@ -1,6 +1,8 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.gameactors.Actor +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-02-03. @@ -8,7 +10,7 @@ import net.torvald.terrarum.Terrarum object PlayerBuilder { operator fun invoke(): Actor { - val p: Actor = Player(Terrarum.ingame!!.world, Terrarum.ingame!!.world.time.currentTimeAsGameDate) + val p: Actor = Player((Terrarum.ingame!! as Ingame).world, (Terrarum.ingame!! as Ingame).world.time.currentTimeAsGameDate) InjectCreatureRaw(p.actorValue, "basegame", "CreatureHuman.json") // attach sprite diff --git a/src/net/torvald/terrarum/gameactors/PlayerBuilderCynthia.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderCynthia.kt similarity index 84% rename from src/net/torvald/terrarum/gameactors/PlayerBuilderCynthia.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderCynthia.kt index 41106023d..38be22f0b 100644 --- a/src/net/torvald/terrarum/gameactors/PlayerBuilderCynthia.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderCynthia.kt @@ -1,8 +1,9 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.ModMgr import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.ai.LuaAIWrapper +import net.torvald.terrarum.gameactors.ai.NullAI +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.worlddrawer.FeaturesDrawer import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack @@ -14,8 +15,8 @@ object PlayerBuilderCynthia { operator fun invoke(): ActorWithPhysics { //val p: Player = Player(GameDate(100, 143)) // random value thrown val p: HumanoidNPC = HumanoidNPC( - Terrarum.ingame!!.world, - LuaAIWrapper("/net/torvald/terrarum/gameactors/ai/scripts/PokemonNPCAI.lua"), + (Terrarum.ingame!! as Ingame).world, + NullAI(), GameDate(100, 143)) // random value thrown InjectCreatureRaw(p.actorValue, "basegame", "CreatureHuman.json") diff --git a/src/net/torvald/terrarum/gameactors/PlayerBuilderSigrid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt similarity index 95% rename from src/net/torvald/terrarum/gameactors/PlayerBuilderSigrid.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt index 26eda5b47..bc134cecd 100644 --- a/src/net/torvald/terrarum/gameactors/PlayerBuilderSigrid.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderSigrid.kt @@ -1,11 +1,11 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.ModMgr import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.faction.FactionFactory import net.torvald.terrarum.itemproperties.ItemCodex -import net.torvald.terrarum.worlddrawer.FeaturesDrawer import net.torvald.terrarum.blockproperties.Block +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** @@ -15,7 +15,7 @@ import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack object PlayerBuilderSigrid { operator fun invoke(): Player { - val p = Player(Terrarum.ingame!!.world, GameDate(-2147483648, 0)) // XD + val p = Player((Terrarum.ingame!! as Ingame).world, GameDate(-2147483648, 0)) // XD p.referenceID = 0x51621D // the only constant of this procedural universe p.historicalFigureIdentifier = 0x51621D // the only constant of this procedural universe diff --git a/src/net/torvald/terrarum/gameactors/PlayerBuilderTestSubject1.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt similarity index 82% rename from src/net/torvald/terrarum/gameactors/PlayerBuilderTestSubject1.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt index fab02f739..f9815c565 100644 --- a/src/net/torvald/terrarum/gameactors/PlayerBuilderTestSubject1.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/PlayerBuilderTestSubject1.kt @@ -1,7 +1,8 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.ModMgr import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.worlddrawer.FeaturesDrawer import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack @@ -10,7 +11,7 @@ import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack */ object PlayerBuilderTestSubject1 { operator fun invoke(): Player { - val p: Player = Player(Terrarum.ingame!!.world, GameDate(100, 143)) // random value thrown + val p: Player = Player((Terrarum.ingame!! as Ingame).world, GameDate(100, 143)) // random value thrown InjectCreatureRaw(p.actorValue, "basegame", "CreatureHuman.json") diff --git a/src/net/torvald/terrarum/gameactors/Pocketed.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/Pocketed.kt similarity index 96% rename from src/net/torvald/terrarum/gameactors/Pocketed.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/Pocketed.kt index 415f19a2c..666a2d4c1 100644 --- a/src/net/torvald/terrarum/gameactors/Pocketed.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/Pocketed.kt @@ -1,7 +1,7 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors -import com.badlogic.gdx.Gdx import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.gameactors.Actor import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.ItemCodex diff --git a/src/net/torvald/terrarum/gameactors/Projectile.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/Projectile.kt similarity index 77% rename from src/net/torvald/terrarum/gameactors/Projectile.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/Projectile.kt index 7553a927b..66984eae4 100644 --- a/src/net/torvald/terrarum/gameactors/Projectile.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/Projectile.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors /** * Projectile marker. Used to kill them when they're far away from the player, instead of making them sleep. diff --git a/src/net/torvald/terrarum/gameactors/ProjectileHoming.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileHoming.kt similarity index 86% rename from src/net/torvald/terrarum/gameactors/ProjectileHoming.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileHoming.kt index 0f6194d79..720b980c2 100644 --- a/src/net/torvald/terrarum/gameactors/ProjectileHoming.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileHoming.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.gameworld.GameWorld import org.dyn4j.geometry.Vector2 diff --git a/src/net/torvald/terrarum/gameactors/ProjectileSimple.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileSimple.kt similarity index 90% rename from src/net/torvald/terrarum/gameactors/ProjectileSimple.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileSimple.kt index ed95045a7..03028fb06 100644 --- a/src/net/torvald/terrarum/gameactors/ProjectileSimple.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ProjectileSimple.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch @@ -6,7 +6,10 @@ import net.torvald.point.Point2d import net.torvald.terrarum.Terrarum import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockCodex +import net.torvald.terrarum.gameactors.Hitbox +import net.torvald.terrarum.gameactors.Luminous import net.torvald.terrarum.gameworld.GameWorld +import net.torvald.terrarum.modulebasegame.Ingame import org.dyn4j.geometry.Vector2 import java.util.* @@ -22,7 +25,7 @@ open class ProjectileSimple( private val type: Int, fromPoint: Vector2, // projected coord toPoint: Vector2 // arriving coord -) : ActorWithPhysics(world, Actor.RenderOrder.MIDTOP), Luminous, Projectile { +) : ActorWithPhysics(world, RenderOrder.MIDTOP), Luminous, Projectile { val damage: Int val displayColour: Color @@ -74,7 +77,7 @@ open class ProjectileSimple( lifetimeCounter += delta if (walledTop || walledBottom || walledRight || walledLeft || lifetimeCounter >= lifetimeMax || // stuck check - BlockCodex[Terrarum.ingame!!.world.getTileFromTerrain(feetPosTile[0], feetPosTile[1]) ?: Block.STONE].isSolid + BlockCodex[(Terrarum.ingame!! as Ingame).world.getTileFromTerrain(feetPosTile[0], feetPosTile[1]) ?: Block.STONE].isSolid ) { flagDespawn() } diff --git a/src/net/torvald/terrarum/gameactors/TapestryObject.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/TapestryObject.kt similarity index 95% rename from src/net/torvald/terrarum/gameactors/TapestryObject.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/TapestryObject.kt index c8e5c389a..667ae1d96 100644 --- a/src/net/torvald/terrarum/gameactors/TapestryObject.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/TapestryObject.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Texture diff --git a/src/net/torvald/terrarum/gameactors/ThreadActorUpdate.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ThreadActorUpdate.kt similarity index 91% rename from src/net/torvald/terrarum/gameactors/ThreadActorUpdate.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ThreadActorUpdate.kt index 411a18da9..665b0f860 100644 --- a/src/net/torvald/terrarum/gameactors/ThreadActorUpdate.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ThreadActorUpdate.kt @@ -1,6 +1,5 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors -import com.badlogic.gdx.Gdx import net.torvald.terrarum.Terrarum /** diff --git a/src/net/torvald/terrarum/gameactors/WeaponSwung.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/WeaponSwung.kt similarity index 81% rename from src/net/torvald/terrarum/gameactors/WeaponSwung.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/WeaponSwung.kt index 7a5c56021..9019fa536 100644 --- a/src/net/torvald/terrarum/gameactors/WeaponSwung.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/WeaponSwung.kt @@ -1,12 +1,14 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Color +import net.torvald.terrarum.gameactors.Hitbox +import net.torvald.terrarum.gameactors.Luminous import net.torvald.terrarum.gameworld.GameWorld /** * Created by minjaesong on 2016-04-26. */ -class WeaponSwung(world: GameWorld, val itemID: Int) : ActorWithPhysics(world, Actor.RenderOrder.MIDTOP), Luminous { +class WeaponSwung(world: GameWorld, val itemID: Int) : ActorWithPhysics(world, RenderOrder.MIDTOP), Luminous { // just let the solver use AABB; it's cheap but works just enough /** diff --git a/src/net/torvald/terrarum/gameactors/ai/SmarterSlimes.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ai/SmarterSlimes.kt similarity index 70% rename from src/net/torvald/terrarum/gameactors/ai/SmarterSlimes.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/ai/SmarterSlimes.kt index b469b2b36..455784afe 100644 --- a/src/net/torvald/terrarum/gameactors/ai/SmarterSlimes.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ai/SmarterSlimes.kt @@ -1,8 +1,11 @@ -package net.torvald.terrarum.gameactors.ai +package net.torvald.terrarum.modulebasegame.gameactors.ai import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.HumanoidNPC -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.modulebasegame.gameactors.HumanoidNPC +import net.torvald.terrarum.Second +import net.torvald.terrarum.gameactors.Actor +import net.torvald.terrarum.gameactors.ai.ActorAI +import net.torvald.terrarum.modulebasegame.Ingame /** * Slime's stupid AI but can adjust his jump power to smack you as fast as possible @@ -22,14 +25,17 @@ class SmarterSlimes : ActorAI { var cooltime: Second = 5f - override fun update(actor: HumanoidNPC, delta: Float) { + override fun update(actor: Actor, delta: Float) { + val actor = actor as HumanoidNPC + + // sensor: compare(my X pos, nearest enemy's X pos) maxJumpDist = actor.avSpeedCap * actor.jumpAirTime // speed * air_time // (to be precise, we need simulation just like jumpAirTime, but oh well; we like it LINEAR) // TEST: just target player - val playerXPos = Terrarum.ingame!!.player.centrePosPoint.x + val playerXPos = (Terrarum.ingame!! as Ingame).player.centrePosPoint.x val thisXPos = actor.centrePosPoint.x val xDiff = thisXPos - playerXPos @@ -46,6 +52,4 @@ class SmarterSlimes : ActorAI { } - - } \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameactors/physicssolver/CollisionSolver.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/CollisionSolver.kt similarity index 96% rename from src/net/torvald/terrarum/gameactors/physicssolver/CollisionSolver.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/CollisionSolver.kt index 5b24b9670..378a23dd3 100644 --- a/src/net/torvald/terrarum/gameactors/physicssolver/CollisionSolver.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/CollisionSolver.kt @@ -1,7 +1,8 @@ -package net.torvald.terrarum.gameactors.physicssolver +package net.torvald.terrarum.modulebasegame.gameactors.physicssolver import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.ActorWithPhysics +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics import java.util.* /** @@ -38,7 +39,7 @@ object CollisionSolver { collCandidateY.clear() // mark list x - Terrarum.ingame!!.actorContainer.forEach { it -> + (Terrarum.ingame!! as Ingame).actorContainer.forEach { it -> if (it is ActorWithPhysics) { collListX.add(CollisionMarkings(it.hitbox.hitboxStart.x, STARTPOINT, it)) collListX.add(CollisionMarkings(it.hitbox.hitboxEnd.x, ENDPOINT, it)) @@ -71,7 +72,7 @@ object CollisionSolver { collCandidateStack.clear() // mark list y - Terrarum.ingame!!.actorContainer.forEach { it -> + (Terrarum.ingame!! as Ingame).actorContainer.forEach { it -> if (it is ActorWithPhysics) { collListY.add(CollisionMarkings(it.hitbox.hitboxStart.y, STARTPOINT, it)) collListY.add(CollisionMarkings(it.hitbox.hitboxEnd.y, ENDPOINT, it)) diff --git a/src/net/torvald/terrarum/gameactors/physicssolver/SolveByUnit.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/SolveByUnit.kt similarity index 76% rename from src/net/torvald/terrarum/gameactors/physicssolver/SolveByUnit.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/SolveByUnit.kt index f95d252b3..8faa9c3ed 100644 --- a/src/net/torvald/terrarum/gameactors/physicssolver/SolveByUnit.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/SolveByUnit.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameactors.physicssolver +package net.torvald.terrarum.modulebasegame.gameactors.physicssolver /** * multithreaded version of CollisionSolver#solveCollision diff --git a/src/net/torvald/terrarum/gameactors/physicssolver/VelocitySolver.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/VelocitySolver.kt similarity index 54% rename from src/net/torvald/terrarum/gameactors/physicssolver/VelocitySolver.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/VelocitySolver.kt index 85b9260cd..f6193fb4b 100644 --- a/src/net/torvald/terrarum/gameactors/physicssolver/VelocitySolver.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/physicssolver/VelocitySolver.kt @@ -1,6 +1,6 @@ -package net.torvald.terrarum.gameactors.physicssolver +package net.torvald.terrarum.modulebasegame.gameactors.physicssolver -import net.torvald.terrarum.gameactors.ActorWithPhysics +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics /** * Created by minjaesong on 2016-05-01. diff --git a/src/net/torvald/terrarum/gameworld/GameEconomy.kt b/src/net/torvald/terrarum/modulebasegame/gameworld/GameEconomy.kt similarity index 94% rename from src/net/torvald/terrarum/gameworld/GameEconomy.kt rename to src/net/torvald/terrarum/modulebasegame/gameworld/GameEconomy.kt index 5a0ba1716..0abc4549a 100644 --- a/src/net/torvald/terrarum/gameworld/GameEconomy.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameworld/GameEconomy.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameworld +package net.torvald.terrarum.modulebasegame.gameworld import net.torvald.terrarum.gameactors.ActorID diff --git a/src/net/torvald/terrarum/gameworld/WorldSimulator.kt b/src/net/torvald/terrarum/modulebasegame/gameworld/WorldSimulator.kt similarity index 96% rename from src/net/torvald/terrarum/gameworld/WorldSimulator.kt rename to src/net/torvald/terrarum/modulebasegame/gameworld/WorldSimulator.kt index 0dd9eb9f7..90b67ac2d 100644 --- a/src/net/torvald/terrarum/gameworld/WorldSimulator.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameworld/WorldSimulator.kt @@ -1,14 +1,17 @@ -package net.torvald.terrarum.gameworld +package net.torvald.terrarum.modulebasegame.gameworld import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.AnyPlayer -import net.torvald.terrarum.gameactors.roundInt +import net.torvald.terrarum.modulebasegame.gameactors.AnyPlayer +import net.torvald.terrarum.roundInt import net.torvald.terrarum.worlddrawer.BlocksDrawer import net.torvald.terrarum.worlddrawer.FeaturesDrawer import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockCodex +import net.torvald.terrarum.gameworld.FluidCodex +import net.torvald.terrarum.gameworld.GameWorld +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-08-03. @@ -35,7 +38,7 @@ object WorldSimulator { val colourNone = Color(0x808080FF.toInt()) val colourWater = Color(0x66BBFFFF.toInt()) - private val world = Terrarum.ingame!!.world + private val world = (Terrarum.ingame!! as Ingame).world operator fun invoke(p: AnyPlayer?, delta: Float) { if (p != null) { diff --git a/src/net/torvald/terrarum/gameworld/WorldTime.kt b/src/net/torvald/terrarum/modulebasegame/gameworld/WorldTime.kt similarity index 97% rename from src/net/torvald/terrarum/gameworld/WorldTime.kt rename to src/net/torvald/terrarum/modulebasegame/gameworld/WorldTime.kt index 4f6232492..14b428f5a 100644 --- a/src/net/torvald/terrarum/gameworld/WorldTime.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameworld/WorldTime.kt @@ -1,6 +1,6 @@ -package net.torvald.terrarum.gameworld +package net.torvald.terrarum.modulebasegame.gameworld -import net.torvald.terrarum.gameactors.GameDate +import net.torvald.terrarum.modulebasegame.gameactors.GameDate /** * The World Calendar implementation of Dwarven Calendar, except: @@ -128,11 +128,11 @@ class WorldTime(initTime: Long = 0L) { fun parseTime(s: String): Int = if (s.length >= 4 && s.contains('h')) { - s.toLowerCase().substringBefore('h').toInt() * WorldTime.HOUR_SEC + - s.toLowerCase().substringAfter('h').toInt() * WorldTime.MINUTE_SEC + s.toLowerCase().substringBefore('h').toInt() * HOUR_SEC + + s.toLowerCase().substringAfter('h').toInt() * MINUTE_SEC } else if (s.endsWith("h", true)) { - s.toLowerCase().substring(0, s.length - 1).toInt() * WorldTime.HOUR_SEC + s.toLowerCase().substring(0, s.length - 1).toInt() * HOUR_SEC } else { s.toInt() diff --git a/src/net/torvald/terrarum/gameworld/WorldTime_old.kt b/src/net/torvald/terrarum/modulebasegame/gameworld/WorldTime_old.kt similarity index 98% rename from src/net/torvald/terrarum/gameworld/WorldTime_old.kt rename to src/net/torvald/terrarum/modulebasegame/gameworld/WorldTime_old.kt index c996bc58b..ad0f406d9 100644 --- a/src/net/torvald/terrarum/gameworld/WorldTime_old.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameworld/WorldTime_old.kt @@ -1,6 +1,6 @@ -package net.torvald.terrarum.gameworld +package net.torvald.terrarum.modulebasegame.gameworld -import net.torvald.terrarum.gameactors.GameDate +import net.torvald.terrarum.modulebasegame.gameactors.GameDate /** * The World Calendar implementation of Dwarven Calendar (we're talking about DF!) diff --git a/src/net/torvald/terrarum/imagefont/NewRunes.kt b/src/net/torvald/terrarum/modulebasegame/imagefont/NewRunes.kt similarity index 97% rename from src/net/torvald/terrarum/imagefont/NewRunes.kt rename to src/net/torvald/terrarum/modulebasegame/imagefont/NewRunes.kt index 3d20b01ca..cc00a81f6 100644 --- a/src/net/torvald/terrarum/imagefont/NewRunes.kt +++ b/src/net/torvald/terrarum/modulebasegame/imagefont/NewRunes.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.imagefont +package net.torvald.terrarum.modulebasegame.imagefont import com.badlogic.gdx.graphics.g2d.Batch import com.badlogic.gdx.graphics.g2d.BitmapFont diff --git a/src/net/torvald/terrarum/imagefont/Watch7SegMain.kt b/src/net/torvald/terrarum/modulebasegame/imagefont/Watch7SegMain.kt similarity index 95% rename from src/net/torvald/terrarum/imagefont/Watch7SegMain.kt rename to src/net/torvald/terrarum/modulebasegame/imagefont/Watch7SegMain.kt index 28a9d5938..1a69bad37 100644 --- a/src/net/torvald/terrarum/imagefont/Watch7SegMain.kt +++ b/src/net/torvald/terrarum/modulebasegame/imagefont/Watch7SegMain.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.imagefont +package net.torvald.terrarum.modulebasegame.imagefont import com.badlogic.gdx.graphics.g2d.Batch import com.badlogic.gdx.graphics.g2d.BitmapFont diff --git a/src/net/torvald/terrarum/imagefont/Watch7SegSmall.kt b/src/net/torvald/terrarum/modulebasegame/imagefont/Watch7SegSmall.kt similarity index 95% rename from src/net/torvald/terrarum/imagefont/Watch7SegSmall.kt rename to src/net/torvald/terrarum/modulebasegame/imagefont/Watch7SegSmall.kt index cbae2aa52..cd2e2b25b 100644 --- a/src/net/torvald/terrarum/imagefont/Watch7SegSmall.kt +++ b/src/net/torvald/terrarum/modulebasegame/imagefont/Watch7SegSmall.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.imagefont +package net.torvald.terrarum.modulebasegame.imagefont import com.badlogic.gdx.graphics.g2d.Batch import com.badlogic.gdx.graphics.g2d.BitmapFont diff --git a/src/net/torvald/terrarum/imagefont/WatchDotAlph.kt b/src/net/torvald/terrarum/modulebasegame/imagefont/WatchDotAlph.kt similarity index 95% rename from src/net/torvald/terrarum/imagefont/WatchDotAlph.kt rename to src/net/torvald/terrarum/modulebasegame/imagefont/WatchDotAlph.kt index 04bd7797e..5794b10c4 100644 --- a/src/net/torvald/terrarum/imagefont/WatchDotAlph.kt +++ b/src/net/torvald/terrarum/modulebasegame/imagefont/WatchDotAlph.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.imagefont +package net.torvald.terrarum.modulebasegame.imagefont import com.badlogic.gdx.graphics.g2d.Batch import com.badlogic.gdx.graphics.g2d.BitmapFont diff --git a/src/net/torvald/terrarum/modulebasegame/items/PickaxeGeneric.kt b/src/net/torvald/terrarum/modulebasegame/items/PickaxeGeneric.kt index 665eb9b7b..6d6ce28de 100644 --- a/src/net/torvald/terrarum/modulebasegame/items/PickaxeGeneric.kt +++ b/src/net/torvald/terrarum/modulebasegame/items/PickaxeGeneric.kt @@ -3,12 +3,13 @@ package net.torvald.terrarum.modulebasegame.items import net.torvald.point.Point2d import net.torvald.terrarum.Terrarum import net.torvald.terrarum.blockproperties.Block -import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameactors.ActorWithPhysics +import net.torvald.terrarum.modulebasegame.gameactors.AVKey +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics import net.torvald.terrarum.itemproperties.Calculate import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.ItemID import net.torvald.terrarum.itemproperties.Material +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2017-07-17. @@ -37,7 +38,7 @@ class PickaxeGeneric(override val originalID: ItemID) : GameItem() { val mouseTileY = Terrarum.mouseTileY val mousePoint = Point2d(mouseTileX.toDouble(), mouseTileY.toDouble()) - val actorvalue = Terrarum.ingame!!.player.actorValue + val actorvalue = (Terrarum.ingame!! as Ingame).player.actorValue using = true @@ -49,15 +50,15 @@ class PickaxeGeneric(override val originalID: ItemID) : GameItem() { }) // return false if here's no tile - if (Block.AIR == Terrarum.ingame!!.world.getTileFromTerrain(mouseTileX, mouseTileY)) + if (Block.AIR == (Terrarum.ingame!! as Ingame).world.getTileFromTerrain(mouseTileX, mouseTileY)) return false // filter passed, do the job val swingDmgToFrameDmg = delta.toDouble() / actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!! - Terrarum.ingame!!.world.inflictTerrainDamage( + (Terrarum.ingame!! as Ingame).world.inflictTerrainDamage( mouseTileX, mouseTileY, - Calculate.pickaxePower(Terrarum.ingame!!.player, material) * swingDmgToFrameDmg + Calculate.pickaxePower((Terrarum.ingame!! as Ingame).player, material) * swingDmgToFrameDmg ) return true @@ -66,7 +67,7 @@ class PickaxeGeneric(override val originalID: ItemID) : GameItem() { override fun endPrimaryUse(delta: Float): Boolean { using = false // reset action timer to zero - Terrarum.ingame!!.player.actorValue.set(AVKey.__ACTION_TIMER, 0.0) + (Terrarum.ingame!! as Ingame).player.actorValue.set(AVKey.__ACTION_TIMER, 0.0) return true } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameactors/MDLInterpreterState.kt b/src/net/torvald/terrarum/modulebasegame/magiccontroller/MDLInterpreterState.kt similarity index 97% rename from src/net/torvald/terrarum/gameactors/MDLInterpreterState.kt rename to src/net/torvald/terrarum/modulebasegame/magiccontroller/MDLInterpreterState.kt index 48b0ebd1e..d3f03e209 100644 --- a/src/net/torvald/terrarum/gameactors/MDLInterpreterState.kt +++ b/src/net/torvald/terrarum/modulebasegame/magiccontroller/MDLInterpreterState.kt @@ -1,8 +1,10 @@ -package net.torvald.terrarum.gameactors +package net.torvald.terrarum.modulebasegame.magiccontroller import java.util.* /** + * YE OLDE MAGIC IDEA No.0 + * * Provides MDL interpretation, pre-compilation and stores state of the interpreter * * Created by minjaesong on 2016-07-30. diff --git a/src/net/torvald/terrarum/modulebasegame/magiccontroller/TheMagicLanguage.kt b/src/net/torvald/terrarum/modulebasegame/magiccontroller/TheMagicLanguage.kt new file mode 100644 index 000000000..3b405b75b --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/magiccontroller/TheMagicLanguage.kt @@ -0,0 +1,109 @@ +package net.torvald.terrarum.modulebasegame.magiccontroller + +import net.torvald.terrarum.modulebasegame.gameactors.AVKey +import net.torvald.terrarum.gameactors.Actor + +/** + * "Data Type" describing magical force + * + * Created by minjaesong on 2018-06-03. + */ +class TheMagicLanguage(vm: TheMagicMachine) { + + open class MagicException : Exception() + class MagicPortReadError : MagicException() + class MagicPortWriteError : MagicException() + + + /** + * A vessel contains magical power to be process. + * + * Negative numbers are tsraoatrsed as if it's negative power (still has >0 amount) + */ + class MagicAccumulator { + private var power = 0.0 + + fun pourIn(value: Double) { + power += value // positive powers and negative powers will cancel eath other + } + fun pourOut(value: Double) { + power -= value + } + fun pourOutInto(other: MagicAccumulator, value: Double) { + if (power >= 0) { + // pour out positive power without inversion; result is positive power + if (value >= 0) { + val value = minOf(power, value) + other.pourIn(value) + power -= value + } + // pour out positive power with inversion; result is negative power + else { + val value = minOf(-power, value) + other.pourIn(value) + power += value + } + } + else { + // pour out negative power without inversion; result is negative power + if (value < 0) { + val value = minOf(power, value) + other.pourIn(-value) + } + // pour out negative power with inversion; result is positive power + else { + val value = minOf(-power, value) + other.pourIn(-value) + } + } + } + fun dumpAllInto(other: MagicAccumulator) { + pourOutInto(other, this.power) + } + fun empty() { + // release residual power as heat or something + + power = 0.0 + } + fun readForPortWrite(): Double { + val r = power + power = 0.0 + return r + } + } + + interface MagicOutputPort { + fun read(a: MagicAccumulator): Double? + fun write(a: MagicAccumulator) + } + + class HealthPort(val output1: Actor) : MagicOutputPort { + + override fun read(a: MagicAccumulator): Double { + val value = output1.actorValue.getAsDouble(AVKey.HEALTH) ?: throw MagicPortReadError() + a.pourIn(value) + return value + } + + override fun write(a: MagicAccumulator) { + val value = output1.actorValue.getAsDouble(AVKey.HEALTH) ?: throw MagicPortReadError() + output1.actorValue[AVKey.HEALTH] = value + a.readForPortWrite() + } + } + + + + fun opCombine(a: MagicAccumulator, b: MagicAccumulator, c: MagicAccumulator) { + b.dumpAllInto(a) + c.dumpAllInto(a) + } + + fun opRelease(akku: MagicAccumulator, port: MagicOutputPort) { + port.write(akku) + } + + fun opSiphon(akku: MagicAccumulator, port: MagicOutputPort) { + port.read(akku) + } + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/magiccontroller/TheMagicMachine.kt b/src/net/torvald/terrarum/modulebasegame/magiccontroller/TheMagicMachine.kt new file mode 100644 index 000000000..935737e3e --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/magiccontroller/TheMagicMachine.kt @@ -0,0 +1,18 @@ +package net.torvald.terrarum.modulebasegame.magiccontroller + +/** + * Created by minjaesong on 2018-06-03. + */ +class TheMagicMachine(skill: MagicianSkillDefinition) { + + val akkuPack = Array(skill.numberOfAccumulator, { TheMagicLanguage.MagicAccumulator() }) + + + +} + +data class MagicianSkillDefinition( + var numberOfAccumulator: Int, + var useableMagicPower: Double, + var runeComprehensionLevel: Int +) \ No newline at end of file diff --git a/src/net/torvald/terrarum/ui/AmmoMeterProxy.kt b/src/net/torvald/terrarum/modulebasegame/ui/AmmoMeterProxy.kt similarity index 88% rename from src/net/torvald/terrarum/ui/AmmoMeterProxy.kt rename to src/net/torvald/terrarum/modulebasegame/ui/AmmoMeterProxy.kt index afd970ec9..8419b7211 100644 --- a/src/net/torvald/terrarum/ui/AmmoMeterProxy.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/AmmoMeterProxy.kt @@ -1,8 +1,7 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui -import net.torvald.terrarum.gameactors.ActorHumanoid +import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid import net.torvald.terrarum.itemproperties.GameItem -import net.torvald.terrarum.ui.UIVitalMetre /** * Created by minjaesong on 2017-04-21. diff --git a/src/net/torvald/terrarum/ui/ItemSlotImageBuilder.kt b/src/net/torvald/terrarum/modulebasegame/ui/ItemSlotImageBuilder.kt similarity index 89% rename from src/net/torvald/terrarum/ui/ItemSlotImageBuilder.kt rename to src/net/torvald/terrarum/modulebasegame/ui/ItemSlotImageBuilder.kt index e8da7bbb4..3211cf874 100644 --- a/src/net/torvald/terrarum/ui/ItemSlotImageBuilder.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/ItemSlotImageBuilder.kt @@ -1,11 +1,9 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Color -import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.TextureRegion -import com.badlogic.gdx.graphics.glutils.FrameBuffer import net.torvald.terrarum.gameactors.ai.toInt import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack diff --git a/src/net/torvald/terrarum/ui/MessageWindow.kt b/src/net/torvald/terrarum/modulebasegame/ui/MessageWindow.kt similarity index 94% rename from src/net/torvald/terrarum/ui/MessageWindow.kt rename to src/net/torvald/terrarum/modulebasegame/ui/MessageWindow.kt index f7039c102..c33ae152c 100644 --- a/src/net/torvald/terrarum/ui/MessageWindow.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/MessageWindow.kt @@ -1,11 +1,12 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum import net.torvald.terrarum.blendNormal -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.Second +import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack diff --git a/src/net/torvald/terrarum/ui/Notification.kt b/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt similarity index 85% rename from src/net/torvald/terrarum/ui/Notification.kt rename to src/net/torvald/terrarum/modulebasegame/ui/Notification.kt index ef7138195..032e303df 100644 --- a/src/net/torvald/terrarum/ui/Notification.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt @@ -1,9 +1,10 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.Second +import net.torvald.terrarum.ui.UICanvas /** * Created by minjaesong on 2016-01-23. @@ -42,19 +43,19 @@ class Notification : UICanvas() { } override fun doOpening(delta: Float) { - UICanvas.doOpeningFade(this, openCloseTime) + doOpeningFade(this, openCloseTime) } override fun doClosing(delta: Float) { - UICanvas.doClosingFade(this, openCloseTime) + doClosingFade(this, openCloseTime) } override fun endOpening(delta: Float) { - UICanvas.endOpeningFade(this) + endOpeningFade(this) } override fun endClosing(delta: Float) { - UICanvas.endClosingFade(this) + endClosingFade(this) } fun sendNotification(message: Array) { diff --git a/src/net/torvald/terrarum/ui/NullUI.kt b/src/net/torvald/terrarum/modulebasegame/ui/NullUI.kt similarity index 87% rename from src/net/torvald/terrarum/ui/NullUI.kt rename to src/net/torvald/terrarum/modulebasegame/ui/NullUI.kt index 96fc34014..68d4a892f 100644 --- a/src/net/torvald/terrarum/ui/NullUI.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/NullUI.kt @@ -1,7 +1,8 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.g2d.SpriteBatch +import net.torvald.terrarum.ui.UICanvas /** * Created by minjaesong on 2017-03-13. diff --git a/src/net/torvald/terrarum/ui/UIBasicNotifier.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIBasicNotifier.kt similarity index 83% rename from src/net/torvald/terrarum/ui/UIBasicNotifier.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIBasicNotifier.kt index 6d772ca3c..cfa2af29e 100644 --- a/src/net/torvald/terrarum/ui/UIBasicNotifier.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIBasicNotifier.kt @@ -1,15 +1,17 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.* -import net.torvald.terrarum.gameactors.ActorHumanoid -import net.torvald.terrarum.gameactors.Second -import net.torvald.terrarum.gameactors.abs -import net.torvald.terrarum.gameactors.roundInt -import net.torvald.terrarum.imagefont.Watch7SegSmall +import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid +import net.torvald.terrarum.Second +import net.torvald.terrarum.abs +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.roundInt +import net.torvald.terrarum.modulebasegame.imagefont.Watch7SegSmall +import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.worlddrawer.LightmapRenderer import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack @@ -48,7 +50,7 @@ class UIBasicNotifier(private val player: ActorHumanoid?) : UICanvas() { get() { if (player != null) { val playerTilePos = player.hIntTilewiseHitbox - val tempCelsius = -273f + (Terrarum.ingame?.world?.getTemperature(playerTilePos.centeredX.toInt(), playerTilePos.centeredY.toInt()) ?: 288f) + val tempCelsius = -273f + ((Terrarum.ingame as? Ingame)?.world?.getTemperature(playerTilePos.centeredX.toInt(), playerTilePos.centeredY.toInt()) ?: 288f) return if (Terrarum.getConfigBoolean("useamericanunit")) { tempCelsius.times(1.8f).plus(32f).roundInt() } @@ -113,11 +115,11 @@ class UIBasicNotifier(private val player: ActorHumanoid?) : UICanvas() { if (player != null) { val playerPos = player.hIntTilewiseHitbox lightLevel = (LightmapRenderer.getLight(playerPos.centeredX.toInt(), playerPos.centeredY.toInt()) ?: - Terrarum.ingame!!.world.globalLight + (Terrarum.ingame!! as Ingame).world.globalLight ) } else { - lightLevel = Terrarum.ingame!!.world.globalLight + lightLevel = (Terrarum.ingame!! as Ingame).world.globalLight } diff --git a/src/net/torvald/terrarum/ui/UICheatDetected.kt b/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt similarity index 92% rename from src/net/torvald/terrarum/ui/UICheatDetected.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt index 7ef0cb123..c30cfe83b 100644 --- a/src/net/torvald/terrarum/ui/UICheatDetected.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UICheatDetected.kt @@ -1,12 +1,13 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum import net.torvald.terrarum.fillRect -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.Second import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.ui.UICanvas /** * Created by minjaesong on 2017-12-06. diff --git a/src/net/torvald/terrarum/ui/UIInventory.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt similarity index 95% rename from src/net/torvald/terrarum/ui/UIInventory.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt index 03fe794c3..260efc7bb 100644 --- a/src/net/torvald/terrarum/ui/UIInventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt @@ -1,21 +1,4 @@ -package net.torvald.terrarum.ui - -import com.badlogic.gdx.Gdx -import com.badlogic.gdx.Input -import com.badlogic.gdx.graphics.Camera -import com.badlogic.gdx.graphics.Color -import com.badlogic.gdx.graphics.g2d.SpriteBatch -import net.torvald.terrarum.* -import net.torvald.terrarum.Terrarum.joypadLabelNinA -import net.torvald.terrarum.Terrarum.joypadLabelNinY -import net.torvald.terrarum.gameactors.* -import net.torvald.terrarum.gameactors.ActorInventory.Companion.CAPACITY_MODE_NO_ENCUMBER -import net.torvald.terrarum.gameworld.fmod -import net.torvald.terrarum.itemproperties.GameItem -import net.torvald.terrarum.itemproperties.ItemCodex -import net.torvald.terrarum.langpack.Lang -import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack -import java.util.* +package net.torvald.terrarum.modulebasegame.ui /** * Created by minjaesong on 2017-03-13. diff --git a/src/net/torvald/terrarum/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt similarity index 93% rename from src/net/torvald/terrarum/ui/UIInventoryFull.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index ca88cc55a..2c6807199 100644 --- a/src/net/torvald/terrarum/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Camera @@ -7,11 +7,13 @@ import com.badlogic.gdx.graphics.GL20 import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.glutils.ShapeRenderer import net.torvald.terrarum.* -import net.torvald.terrarum.gameactors.ActorWithPhysics -import net.torvald.terrarum.gameactors.ActorInventory.Companion.CAPACITY_MODE_NO_ENCUMBER -import net.torvald.terrarum.gameactors.Pocketed -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics +import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory.Companion.CAPACITY_MODE_NO_ENCUMBER +import net.torvald.terrarum.modulebasegame.gameactors.Pocketed +import net.torvald.terrarum.Second import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** @@ -227,18 +229,18 @@ class UIInventoryFull( override fun doOpening(delta: Float) { - Terrarum.ingame?.setTooltipMessage(null) + (Terrarum.ingame as? Ingame)?.setTooltipMessage(null) } override fun doClosing(delta: Float) { - Terrarum.ingame?.setTooltipMessage(null) + (Terrarum.ingame as? Ingame)?.setTooltipMessage(null) } override fun endOpening(delta: Float) { } override fun endClosing(delta: Float) { - Terrarum.ingame?.setTooltipMessage(null) // required!! + (Terrarum.ingame as? Ingame)?.setTooltipMessage(null) // required!! } diff --git a/src/net/torvald/terrarum/ui/UIItemInventoryCellBase.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryCellBase.kt similarity index 89% rename from src/net/torvald/terrarum/ui/UIItemInventoryCellBase.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryCellBase.kt index 33ec47230..25a48afcd 100644 --- a/src/net/torvald/terrarum/ui/UIItemInventoryCellBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryCellBase.kt @@ -1,9 +1,10 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.itemproperties.GameItem +import net.torvald.terrarum.ui.UIItem /** * Cross section of two inventory cell types diff --git a/src/net/torvald/terrarum/ui/UIItemInventoryDynamicList.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryDynamicList.kt similarity index 94% rename from src/net/torvald/terrarum/ui/UIItemInventoryDynamicList.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryDynamicList.kt index 69c706705..caca10827 100644 --- a/src/net/torvald/terrarum/ui/UIItemInventoryDynamicList.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryDynamicList.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color @@ -7,11 +7,15 @@ import net.torvald.terrarum.BlendMode import net.torvald.terrarum.Terrarum import net.torvald.terrarum.UIItemInventoryElem import net.torvald.terrarum.UIItemInventoryElemSimple -import net.torvald.terrarum.gameactors.ActorInventory -import net.torvald.terrarum.gameactors.InventoryPair -import net.torvald.terrarum.gameactors.ceilInt +import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory +import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair +import net.torvald.terrarum.ceilInt +import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.ItemCodex +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.ui.UIItem +import net.torvald.terrarum.ui.UIItemImageButton import java.util.ArrayList /** @@ -179,12 +183,12 @@ class UIItemInventoryDynamicList( } scrollUpButton.clickOnceListener = { _, _, _ -> - if (itemPage > 0) itemPage-- + itemPage = (itemPage - 1).fmod(itemPageCount) scrollUpButton.highlighted = false rebuild() } scrollDownButton.clickOnceListener = { _, _, _ -> - if (itemPage < itemPageCount - 1) itemPage++ + itemPage = (itemPage + 1).fmod(itemPageCount) scrollDownButton.highlighted = false rebuild() } @@ -237,13 +241,13 @@ class UIItemInventoryDynamicList( // set tooltip accordingly if (isCompactMode && it.mouseUp && !tooltipSet) { - Terrarum.ingame?.setTooltipMessage(it.item?.name) + (Terrarum.ingame as? Ingame)?.setTooltipMessage(it.item?.name) tooltipSet = true } } if (!tooltipSet) { - Terrarum.ingame?.setTooltipMessage(null) + (Terrarum.ingame as? Ingame)?.setTooltipMessage(null) } diff --git a/src/net/torvald/terrarum/ui/UIItemInventoryEquippedView.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt similarity index 95% rename from src/net/torvald/terrarum/ui/UIItemInventoryEquippedView.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt index ae731ad87..47ca7a7b1 100644 --- a/src/net/torvald/terrarum/ui/UIItemInventoryEquippedView.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt @@ -1,15 +1,14 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.* -import net.torvald.terrarum.gameactors.ActorInventory -import net.torvald.terrarum.gameactors.ActorWithPhysics -import net.torvald.terrarum.gameactors.InventoryPair +import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.ItemCodex -import java.util.ArrayList +import net.torvald.terrarum.ui.UIItem /** * Created by minjaesong on 2017-10-28. diff --git a/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemModuleInfoCell.kt similarity index 94% rename from src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIItemModuleInfoCell.kt index 752a141a8..d88ff0001 100644 --- a/src/net/torvald/terrarum/ui/UIItemModuleInfoCell.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemModuleInfoCell.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color @@ -6,7 +6,9 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.ModMgr import net.torvald.terrarum.Terrarum import net.torvald.terrarum.blendNormal -import net.torvald.terrarum.gameactors.floor +import net.torvald.terrarum.floor +import net.torvald.terrarum.ui.UICanvas +import net.torvald.terrarum.ui.UIItem class UIItemModuleInfoCell( parent: UICanvas, diff --git a/src/net/torvald/terrarum/ui/UIPieMenu.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIPieMenu.kt similarity index 82% rename from src/net/torvald/terrarum/ui/UIPieMenu.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIPieMenu.kt index ceb6a6354..02fb69844 100644 --- a/src/net/torvald/terrarum/ui/UIPieMenu.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIPieMenu.kt @@ -1,15 +1,17 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.jme3.math.FastMath import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.modulebasegame.gameactors.AVKey +import net.torvald.terrarum.Second import net.torvald.terrarum.itemproperties.ItemCodex -import net.torvald.terrarum.ui.UIQuickBar.Companion.CELL_SIZE -import net.torvald.terrarum.ui.UIQuickBar.Companion.SLOT_COUNT +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.ui.UIQuickBar.Companion.CELL_SIZE +import net.torvald.terrarum.modulebasegame.ui.UIQuickBar.Companion.SLOT_COUNT +import net.torvald.terrarum.ui.UICanvas import org.dyn4j.geometry.Vector2 /** @@ -37,7 +39,7 @@ class UIPieMenu : UICanvas() { override fun updateUI(delta: Float) { if (selection >= 0) - Terrarum.ingame!!.player.actorValue[AVKey.__PLAYER_QUICKSLOTSEL] = + (Terrarum.ingame!! as Ingame).player.actorValue[AVKey.__PLAYER_QUICKSLOTSEL] = selection % slotCount @@ -81,7 +83,7 @@ class UIPieMenu : UICanvas() { // draw item - val itemPair = Terrarum.ingame!!.player.inventory.getQuickBar(i) + val itemPair = (Terrarum.ingame!! as Ingame).player.inventory.getQuickBar(i) if (itemPair != null) { val itemImage = ItemCodex.getItemImage(itemPair.item) @@ -99,22 +101,22 @@ class UIPieMenu : UICanvas() { } override fun doOpening(delta: Float) { - UICanvas.doOpeningFade(this, openCloseTime) + doOpeningFade(this, openCloseTime) handler.scale = smallenSize + (1f.minus(smallenSize) * handler.opacity) } override fun doClosing(delta: Float) { - UICanvas.doClosingFade(this, openCloseTime) + doClosingFade(this, openCloseTime) handler.scale = smallenSize + (1f.minus(smallenSize) * handler.opacity) } override fun endOpening(delta: Float) { - UICanvas.endOpeningFade(this) + endOpeningFade(this) handler.scale = 1f } override fun endClosing(delta: Float) { - UICanvas.endClosingFade(this) + endClosingFade(this) handler.scale = 1f } diff --git a/src/net/torvald/terrarum/ui/UIQuickBar.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIQuickBar.kt similarity index 86% rename from src/net/torvald/terrarum/ui/UIQuickBar.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIQuickBar.kt index 4a3cff9aa..b4a34d5c4 100644 --- a/src/net/torvald/terrarum/ui/UIQuickBar.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIQuickBar.kt @@ -1,14 +1,16 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.Input import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.modulebasegame.gameactors.AVKey +import net.torvald.terrarum.Second import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.itemproperties.ItemCodex +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.ui.UICanvas /** * Created by minjaesong on 2016-07-20. @@ -26,8 +28,8 @@ class UIQuickBar : UICanvas() { private val startPointY = ItemSlotImageBuilder.slotImage.tileH / 2 private var selection: Int - get() = Terrarum.ingame!!.player.actorValue.getAsInt(AVKey.__PLAYER_QUICKSLOTSEL) ?: 0 - set(value) { Terrarum.ingame!!.player.actorValue.set(AVKey.__PLAYER_QUICKSLOTSEL, value.fmod(SLOT_COUNT)) } + get() = (Terrarum.ingame!! as Ingame).player.actorValue.getAsInt(AVKey.__PLAYER_QUICKSLOTSEL) ?: 0 + set(value) { (Terrarum.ingame!! as Ingame).player.actorValue.set(AVKey.__PLAYER_QUICKSLOTSEL, value.fmod(SLOT_COUNT)) } override fun updateUI(delta: Float) { } @@ -52,7 +54,7 @@ class UIQuickBar : UICanvas() { ) // draw item - val itemPair = Terrarum.ingame!!.player.inventory.getQuickBar(i) + val itemPair = (Terrarum.ingame!! as Ingame).player.inventory.getQuickBar(i) if (itemPair != null) { val itemImage = ItemCodex.getItemImage(itemPair.item) diff --git a/src/net/torvald/terrarum/ui/UITierOneWatch.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt similarity index 81% rename from src/net/torvald/terrarum/ui/UITierOneWatch.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt index 4e8ec115e..43d00c70e 100644 --- a/src/net/torvald/terrarum/ui/UITierOneWatch.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITierOneWatch.kt @@ -1,17 +1,19 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.* -import net.torvald.terrarum.gameactors.ActorHumanoid -import net.torvald.terrarum.gameactors.Second -import net.torvald.terrarum.gameactors.roundInt -import net.torvald.terrarum.gameworld.WorldTime -import net.torvald.terrarum.imagefont.Watch7SegMain -import net.torvald.terrarum.imagefont.Watch7SegSmall -import net.torvald.terrarum.imagefont.WatchDotAlph +import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid +import net.torvald.terrarum.Second +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.roundInt +import net.torvald.terrarum.modulebasegame.gameworld.WorldTime +import net.torvald.terrarum.modulebasegame.imagefont.Watch7SegMain +import net.torvald.terrarum.modulebasegame.imagefont.Watch7SegSmall +import net.torvald.terrarum.modulebasegame.imagefont.WatchDotAlph +import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.worlddrawer.LightmapRenderer import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack @@ -38,7 +40,7 @@ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() { private val lcdLitCol = Color(0x141414_ff) private val worldTime: WorldTime - get() = Terrarum.ingame!!.world.time + get() = (Terrarum.ingame!! as Ingame).world.time override fun updateUI(delta: Float) { @@ -68,11 +70,11 @@ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas() { if (player != null) { val playerPos = player.hIntTilewiseHitbox lightLevel = (LightmapRenderer.getLight(playerPos.centeredX.toInt(), playerPos.centeredY.toInt()) ?: - Terrarum.ingame!!.world.globalLight + (Terrarum.ingame!! as Ingame).world.globalLight ) } else { - lightLevel = Terrarum.ingame!!.world.globalLight + lightLevel = (Terrarum.ingame!! as Ingame).world.globalLight } // backplate diff --git a/src/net/torvald/terrarum/ui/UITitleRemoConCredits.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConCredits.kt similarity index 93% rename from src/net/torvald/terrarum/ui/UITitleRemoConCredits.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConCredits.kt index 10a2fbd6b..8a7cde65b 100644 --- a/src/net/torvald/terrarum/ui/UITitleRemoConCredits.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConCredits.kt @@ -1,11 +1,14 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.CreditSingleton import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.Second +import net.torvald.terrarum.ui.UICanvas +import net.torvald.terrarum.ui.UIItemTextArea +import net.torvald.terrarum.ui.UIItemTextButtonList class UITitleRemoConCredits(val superMenu: UICanvas) : UICanvas() { diff --git a/src/net/torvald/terrarum/ui/UITitleRemoConLanguage.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConLanguage.kt similarity index 91% rename from src/net/torvald/terrarum/ui/UITitleRemoConLanguage.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConLanguage.kt index e657bf6e5..f9005016b 100644 --- a/src/net/torvald/terrarum/ui/UITitleRemoConLanguage.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConLanguage.kt @@ -1,12 +1,14 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.TerrarumAppLoader -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.AppLoader +import net.torvald.terrarum.Second import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.ui.UICanvas +import net.torvald.terrarum.ui.UIItemTextButtonList class UITitleRemoConLanguage(val superMenu: UICanvas) : UICanvas() { @@ -71,7 +73,7 @@ class UITitleRemoConLanguage(val superMenu: UICanvas) : UICanvas() { // attach listeners textArea.selectionChangeListener = { _, newSelectionIndex -> - TerrarumAppLoader.GAME_LOCALE = localeList[newSelectionIndex] + AppLoader.GAME_LOCALE = localeList[newSelectionIndex] } menubar.buttons[menuLabels.indexOf("MENU_LABEL_RETURN")].clickOnceListener = { _, _, _ -> diff --git a/src/net/torvald/terrarum/ui/UITitleRemoConModules.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConModules.kt similarity index 93% rename from src/net/torvald/terrarum/ui/UITitleRemoConModules.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConModules.kt index 8ed8b3b70..c43df0c81 100644 --- a/src/net/torvald/terrarum/ui/UITitleRemoConModules.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConModules.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color @@ -6,8 +6,10 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.ModMgr import net.torvald.terrarum.Terrarum import net.torvald.terrarum.blendNormal -import net.torvald.terrarum.gameactors.Second -import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.Second +import net.torvald.terrarum.ui.UICanvas +import net.torvald.terrarum.ui.UIItemList +import net.torvald.terrarum.ui.UIItemTextButtonList /** * Created by minjaesong on 2017-08-01. diff --git a/src/net/torvald/terrarum/ui/UITitleRemoConRoot.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConRoot.kt similarity index 88% rename from src/net/torvald/terrarum/ui/UITitleRemoConRoot.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConRoot.kt index bc4f367cf..ebb18eaa2 100644 --- a/src/net/torvald/terrarum/ui/UITitleRemoConRoot.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConRoot.kt @@ -1,12 +1,14 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.random.HQRNG -import net.torvald.terrarum.Ingame +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.LoadScreen import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.ui.UICanvas +import net.torvald.terrarum.ui.UIItemTextButtonList class UITitleRemoConRoot : UICanvas() { @@ -78,9 +80,9 @@ class UITitleRemoConRoot : UICanvas() { Thread.sleep(50) Terrarum.ingame = Ingame(Terrarum.batch) - Terrarum.ingame!!.gameLoadInfoPayload = Ingame.NewWorldParameters(2400, 800, HQRNG().nextLong()) - Terrarum.ingame!!.gameLoadMode = Ingame.GameLoadMode.CREATE_NEW - LoadScreen.screenToLoad = Terrarum.ingame!! + (Terrarum.ingame!! as Ingame).gameLoadInfoPayload = Ingame.NewWorldParameters(2400, 800, HQRNG().nextLong()) + (Terrarum.ingame!! as Ingame).gameLoadMode = Ingame.GameLoadMode.CREATE_NEW + LoadScreen.screenToLoad = (Terrarum.ingame!! as Ingame) Terrarum.setScreen(LoadScreen) } diff --git a/src/net/torvald/terrarum/ui/UITooltip.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt similarity index 93% rename from src/net/torvald/terrarum/ui/UITooltip.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt index 0a10b1d35..6cc032abd 100644 --- a/src/net/torvald/terrarum/ui/UITooltip.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITooltip.kt @@ -1,13 +1,12 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui -import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.fillRect -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.Second +import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** diff --git a/src/net/torvald/terrarum/ui/UIVitalMetre.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIVitalMetre.kt similarity index 91% rename from src/net/torvald/terrarum/ui/UIVitalMetre.kt rename to src/net/torvald/terrarum/modulebasegame/ui/UIVitalMetre.kt index e90e3d7a8..568a4e390 100644 --- a/src/net/torvald/terrarum/ui/UIVitalMetre.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIVitalMetre.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.ui +package net.torvald.terrarum.modulebasegame.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color @@ -6,8 +6,9 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.jme3.math.FastMath import net.torvald.colourutil.CIELabUtil.darkerLab import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.ActorHumanoid -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid +import net.torvald.terrarum.Second +import net.torvald.terrarum.ui.UICanvas /** * Created by minjaesong on 2017-03-03. @@ -100,19 +101,19 @@ class UIVitalMetre( } override fun doOpening(delta: Float) { - UICanvas.doOpeningFade(this, openCloseTime) + doOpeningFade(this, openCloseTime) } override fun doClosing(delta: Float) { - UICanvas.doClosingFade(this, openCloseTime) + doClosingFade(this, openCloseTime) } override fun endOpening(delta: Float) { - UICanvas.endOpeningFade(this) + endOpeningFade(this) } override fun endClosing(delta: Float) { - UICanvas.endClosingFade(this) + endClosingFade(this) } override fun dispose() { diff --git a/src/net/torvald/terrarum/worldgenerator/FloatingIslandsPreset.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslandsPreset.kt similarity index 97% rename from src/net/torvald/terrarum/worldgenerator/FloatingIslandsPreset.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslandsPreset.kt index dee4df78c..a5a29e980 100644 --- a/src/net/torvald/terrarum/worldgenerator/FloatingIslandsPreset.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslandsPreset.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator import net.torvald.random.HQRNG diff --git a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset01.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset01.kt similarity index 99% rename from src/net/torvald/terrarum/worldgenerator/FloatingIslePreset01.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset01.kt index 57384aaf4..227c88930 100644 --- a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset01.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset01.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator internal object FloatingIslePreset01 { var w = 100 diff --git a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset02.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset02.kt similarity index 99% rename from src/net/torvald/terrarum/worldgenerator/FloatingIslePreset02.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset02.kt index 09372ebae..f9c625220 100644 --- a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset02.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset02.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator internal object FloatingIslePreset02 { var w = 80 diff --git a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset03.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset03.kt similarity index 99% rename from src/net/torvald/terrarum/worldgenerator/FloatingIslePreset03.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset03.kt index 21f09492c..049f0ecbd 100644 --- a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset03.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset03.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator internal object FloatingIslePreset03 { var w = 66 diff --git a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset04.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset04.kt similarity index 99% rename from src/net/torvald/terrarum/worldgenerator/FloatingIslePreset04.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset04.kt index d5c379870..e1e108050 100644 --- a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset04.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset04.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator internal object FloatingIslePreset04 { var w = 88 diff --git a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset05.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset05.kt similarity index 99% rename from src/net/torvald/terrarum/worldgenerator/FloatingIslePreset05.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset05.kt index d7d20668a..f1597a477 100644 --- a/src/net/torvald/terrarum/worldgenerator/FloatingIslePreset05.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/FloatingIslePreset05.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator internal object FloatingIslePreset05 { var w = 74 diff --git a/src/net/torvald/terrarum/worldgenerator/NoiseFilter.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilter.kt similarity index 70% rename from src/net/torvald/terrarum/worldgenerator/NoiseFilter.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilter.kt index 27cb21425..1813ddc87 100644 --- a/src/net/torvald/terrarum/worldgenerator/NoiseFilter.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilter.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator /** * Created by minjaesong on 2016-03-31. diff --git a/src/net/torvald/terrarum/worldgenerator/NoiseFilterCubic.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterCubic.kt similarity index 95% rename from src/net/torvald/terrarum/worldgenerator/NoiseFilterCubic.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterCubic.kt index 54a5eeccb..60cb01769 100644 --- a/src/net/torvald/terrarum/worldgenerator/NoiseFilterCubic.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterCubic.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator import com.jme3.math.FastMath diff --git a/src/net/torvald/terrarum/worldgenerator/NoiseFilterMinusQuadratic.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterMinusQuadratic.kt similarity index 95% rename from src/net/torvald/terrarum/worldgenerator/NoiseFilterMinusQuadratic.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterMinusQuadratic.kt index 307ca63b0..8b10343fe 100644 --- a/src/net/torvald/terrarum/worldgenerator/NoiseFilterMinusQuadratic.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterMinusQuadratic.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator import com.jme3.math.FastMath diff --git a/src/net/torvald/terrarum/worldgenerator/NoiseFilterQuadratic.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterQuadratic.kt similarity index 95% rename from src/net/torvald/terrarum/worldgenerator/NoiseFilterQuadratic.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterQuadratic.kt index cb1f7e30b..62e619b84 100644 --- a/src/net/torvald/terrarum/worldgenerator/NoiseFilterQuadratic.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterQuadratic.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator import com.jme3.math.FastMath diff --git a/src/net/torvald/terrarum/worldgenerator/NoiseFilterSqrt.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterSqrt.kt similarity index 91% rename from src/net/torvald/terrarum/worldgenerator/NoiseFilterSqrt.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterSqrt.kt index 1ff4123cf..85aca998b 100644 --- a/src/net/torvald/terrarum/worldgenerator/NoiseFilterSqrt.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterSqrt.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator import com.jme3.math.FastMath diff --git a/src/net/torvald/terrarum/worldgenerator/NoiseFilterUniform.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterUniform.kt similarity index 76% rename from src/net/torvald/terrarum/worldgenerator/NoiseFilterUniform.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterUniform.kt index b6bd7a178..63a143197 100644 --- a/src/net/torvald/terrarum/worldgenerator/NoiseFilterUniform.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/NoiseFilterUniform.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator /** * Created by minjaesong on 2016-03-31. diff --git a/src/net/torvald/terrarum/worldgenerator/RoguelikeRandomiser.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/RoguelikeRandomiser.kt similarity index 96% rename from src/net/torvald/terrarum/worldgenerator/RoguelikeRandomiser.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/RoguelikeRandomiser.kt index c453b52b0..58851aa0a 100644 --- a/src/net/torvald/terrarum/worldgenerator/RoguelikeRandomiser.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/RoguelikeRandomiser.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator import com.badlogic.gdx.graphics.Color import net.torvald.dataclass.IntArrayStack diff --git a/src/net/torvald/terrarum/worldgenerator/SimplexNoise.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/SimplexNoise.kt similarity index 97% rename from src/net/torvald/terrarum/worldgenerator/SimplexNoise.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/SimplexNoise.kt index 2307d5170..61dc10536 100644 --- a/src/net/torvald/terrarum/worldgenerator/SimplexNoise.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/SimplexNoise.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator import net.torvald.random.HQRNG import com.jme3.math.FastMath diff --git a/src/net/torvald/terrarum/worldgenerator/SimplexNoise_octave.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/SimplexNoise_octave.kt similarity index 99% rename from src/net/torvald/terrarum/worldgenerator/SimplexNoise_octave.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/SimplexNoise_octave.kt index 7075193af..53a242b80 100644 --- a/src/net/torvald/terrarum/worldgenerator/SimplexNoise_octave.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/SimplexNoise_octave.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator /* * A speed-improved simplex noise algorithm for 2D, 3D and 4D in Java. diff --git a/src/net/torvald/terrarum/worldgenerator/ThreadProcessNoiseLayers.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/ThreadProcessNoiseLayers.kt similarity index 98% rename from src/net/torvald/terrarum/worldgenerator/ThreadProcessNoiseLayers.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/ThreadProcessNoiseLayers.kt index e39122755..4a344c714 100644 --- a/src/net/torvald/terrarum/worldgenerator/ThreadProcessNoiseLayers.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/ThreadProcessNoiseLayers.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator import net.torvald.terrarum.LoadScreen diff --git a/src/net/torvald/terrarum/worldgenerator/WorldGenerator.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt similarity index 99% rename from src/net/torvald/terrarum/worldgenerator/WorldGenerator.kt rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt index 554cdeb91..417a32b36 100644 --- a/src/net/torvald/terrarum/worldgenerator/WorldGenerator.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.worldgenerator +package net.torvald.terrarum.modulebasegame.worldgenerator import net.torvald.random.HQRNG import net.torvald.terrarum.gameworld.GameWorld @@ -10,7 +10,7 @@ import net.torvald.terrarum.LoadScreen import net.torvald.terrarum.Terrarum import net.torvald.terrarum.blockproperties.BlockCodex import net.torvald.terrarum.concurrent.ThreadParallel -import net.torvald.terrarum.gameactors.roundInt +import net.torvald.terrarum.roundInt import java.util.* object WorldGenerator { diff --git a/src/net/torvald/terrarum/worldgenerator/floatingIslePreset01.png b/src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset01.png similarity index 100% rename from src/net/torvald/terrarum/worldgenerator/floatingIslePreset01.png rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset01.png diff --git a/src/net/torvald/terrarum/worldgenerator/floatingIslePreset02.png b/src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset02.png similarity index 100% rename from src/net/torvald/terrarum/worldgenerator/floatingIslePreset02.png rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset02.png diff --git a/src/net/torvald/terrarum/worldgenerator/floatingIslePreset03.png b/src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset03.png similarity index 100% rename from src/net/torvald/terrarum/worldgenerator/floatingIslePreset03.png rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset03.png diff --git a/src/net/torvald/terrarum/worldgenerator/floatingIslePreset04.png b/src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset04.png similarity index 100% rename from src/net/torvald/terrarum/worldgenerator/floatingIslePreset04.png rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset04.png diff --git a/src/net/torvald/terrarum/worldgenerator/floatingIslePreset05.png b/src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset05.png similarity index 100% rename from src/net/torvald/terrarum/worldgenerator/floatingIslePreset05.png rename to src/net/torvald/terrarum/modulebasegame/worldgenerator/floatingIslePreset05.png diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/cp.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/cp.lua old mode 100755 new mode 100644 similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/cp.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/cp.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/dsh.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/dsh.lua old mode 100755 new mode 100644 similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/dsh.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/dsh.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/lessismore.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/lessismore.lua old mode 100755 new mode 100644 similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/lessismore.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/lessismore.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/ls.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/ls.lua similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/ls.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/ls.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/msh.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/msh.lua old mode 100755 new mode 100644 similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/msh.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/msh.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/mv.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/mv.lua old mode 100755 new mode 100644 similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/bin/mv.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/bin/mv.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/boot/efi b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/boot/efi old mode 100755 new mode 100644 similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/boot/efi rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/boot/efi diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/etc/.dshrc b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/etc/.dshrc old mode 100755 new mode 100644 similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/etc/.dshrc rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/etc/.dshrc diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/etc/_boot.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/etc/_boot.lua old mode 100755 new mode 100644 similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/etc/_boot.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/etc/_boot.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/usr/share/man/msh b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/usr/share/man/msh old mode 100755 new mode 100644 similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/loots/dummix/usr/share/man/msh rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/loots/dummix/usr/share/man/msh diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/BOOT.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/BOOT.lua similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/lua/BOOT.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/BOOT.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/BRAINFUCK.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/BRAINFUCK.lua similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/lua/BRAINFUCK.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/BRAINFUCK.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/CCAPI.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/CCAPI.lua similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/lua/CCAPI.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/CCAPI.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/ROMLIB.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/ROMLIB.lua similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/lua/ROMLIB.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/ROMLIB.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/TBASEXEC.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/TBASEXEC.lua similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/lua/TBASEXEC.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/TBASEXEC.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/TBASEXTN.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/TBASEXTN.lua similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/lua/TBASEXTN.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/TBASEXTN.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/TBASIC.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/TBASIC.lua similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/lua/TBASIC.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/TBASIC.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/TBASINCL.lua b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/TBASINCL.lua similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/lua/TBASINCL.lua rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/TBASINCL.lua diff --git a/src/net/torvald/terrarum/virtualcomputer/assets/lua/rombasicman.txt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/rombasicman.txt similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/assets/lua/rombasicman.txt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/assets/lua/rombasicman.txt diff --git a/src/net/torvald/terrarum/virtualcomputer/computer/TerrarumComputer.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/computer/TerrarumComputer.kt similarity index 85% rename from src/net/torvald/terrarum/virtualcomputer/computer/TerrarumComputer.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/computer/TerrarumComputer.kt index 85764670d..9092c9723 100644 --- a/src/net/torvald/terrarum/virtualcomputer/computer/TerrarumComputer.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/computer/TerrarumComputer.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.computer +package net.torvald.terrarum.modulecomputers.virtualcomputer.computer import org.luaj.vm2.Globals import org.luaj.vm2.LuaError @@ -9,14 +9,11 @@ import org.luaj.vm2.lib.ZeroArgFunction import org.luaj.vm2.lib.jse.JsePlatform import net.torvald.terrarum.KVHashMap import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.Second -import net.torvald.terrarum.gameactors.ceilInt -import net.torvald.terrarum.virtualcomputer.luaapi.* -import net.torvald.terrarum.virtualcomputer.peripheral.* -import net.torvald.terrarum.virtualcomputer.terminal.* -import net.torvald.terrarum.virtualcomputer.tvd.VDUtil -import net.torvald.terrarum.virtualcomputer.tvd.VirtualDisk -import net.torvald.terrarum.virtualcomputer.worldobject.ComputerPartsCodex +import net.torvald.terrarum.Second +import net.torvald.terrarum.ceilInt +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.VDUtil +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.VirtualDisk +import net.torvald.terrarum.modulecomputers.virtualcomputer.worldobject.ComputerPartsCodex import org.lwjgl.BufferUtils import org.lwjgl.openal.AL10 import java.io.* @@ -71,10 +68,10 @@ class TerrarumComputer(peripheralSlots: Int) { var isHalted = false - lateinit var term: Teletype + lateinit var term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype private set - val peripheralTable = Array(peripheralSlots, { null }) // index == slot number + val peripheralTable = Array(peripheralSlots, { null }) // index == slot number var stdinInput: Int = -1 private set @@ -101,7 +98,7 @@ class TerrarumComputer(peripheralSlots: Int) { File(Terrarum.currentSaveDir.path + "/computers/$filename").absoluteFile, Level.WARNING, { }, - Filesystem.sysCharset + net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.Filesystem.sysCharset ) } } @@ -131,7 +128,7 @@ class TerrarumComputer(peripheralSlots: Int) { computerValue["boot"] = "hda" } - fun getPeripheral(tableName: String): Peripheral? { + fun getPeripheral(tableName: String): net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral.Peripheral? { peripheralTable.forEach { if (it?.tableName == tableName) return it @@ -148,7 +145,7 @@ class TerrarumComputer(peripheralSlots: Int) { } /** @return installed slot */ - fun attachPeripheral(peri: Peripheral): Int { + fun attachPeripheral(peri: net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral.Peripheral): Int { (0..maxPeripherals - 1).forEach { try { attachPeripheralTo(peri, it) @@ -160,7 +157,7 @@ class TerrarumComputer(peripheralSlots: Int) { throw RuntimeException("No vacant peripheral slot") } - fun attachPeripheralTo(peri: Peripheral, slot: Int) { + fun attachPeripheralTo(peri: net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral.Peripheral, slot: Int) { if (peripheralTable[slot] == null) { peripheralTable[slot] = peri peri.loadLib(luaJ_globals) @@ -171,7 +168,7 @@ class TerrarumComputer(peripheralSlots: Int) { } } - fun detachPeripheral(peri: Peripheral) { + fun detachPeripheral(peri: net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral.Peripheral) { // search for the peripheral var found = -1 for (i in 0..maxPeripherals - 1) { @@ -189,17 +186,17 @@ class TerrarumComputer(peripheralSlots: Int) { } } - fun attachTerminal(term: Teletype) { + fun attachTerminal(term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) { this.term = term initSandbox(term) } - fun initSandbox(term: Teletype) { + fun initSandbox(term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) { luaJ_globals = JsePlatform.debugGlobals() - stdout = TerminalPrintStream(this) - stderr = TerminalPrintStream(this) - stdin = TerminalInputStream(this) + stdout = net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.TerminalPrintStream(this) + stderr = net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.TerminalPrintStream(this) + stdin = net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.TerminalInputStream(this) luaJ_globals.STDOUT = stdout luaJ_globals.STDERR = stderr @@ -208,13 +205,13 @@ class TerrarumComputer(peripheralSlots: Int) { luaJ_globals["bit"] = luaJ_globals["bit32"] // load libraries - Term(luaJ_globals, term) - Security(luaJ_globals) - Filesystem(luaJ_globals, this) - HostAccessProvider(luaJ_globals, this) - Input(luaJ_globals, this) - PcSpeakerDriver(luaJ_globals, this) - WorldInformationProvider(luaJ_globals) + net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.Term(luaJ_globals, term) + net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.Security(luaJ_globals) + net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.Filesystem(luaJ_globals, this) + net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.HostAccessProvider(luaJ_globals, this) + net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.Input(luaJ_globals, this) + net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.PcSpeakerDriver(luaJ_globals, this) + net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.WorldInformationProvider(luaJ_globals) // secure the sandbox //luaJ_globals["io"] = LuaValue.NIL @@ -223,7 +220,7 @@ class TerrarumComputer(peripheralSlots: Int) { //luaJ_globals["debug"] = LuaValue.NIL // ROM BASIC - val inputStream = javaClass.getResourceAsStream("/net/torvald/terrarum/virtualcomputer/assets/lua/BOOT.lua") + val inputStream = javaClass.getResourceAsStream("/net/torvald/terrarum/modulecomputers/virtualcomputer/virtualcomputer/assets/lua/BOOT.lua") runCommand(InputStreamReader(inputStream), "=boot") // computer-related global functions @@ -236,8 +233,8 @@ class TerrarumComputer(peripheralSlots: Int) { // load every peripheral if we're in DEBUG if (DEBUG) { - attachPeripheral(PeripheralInternet(this)) - attachPeripheral(PeripheralPSG(this)) + attachPeripheral(net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral.PeripheralInternet(this)) + attachPeripheral(net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral.PeripheralPSG(this)) // ... } } @@ -581,7 +578,7 @@ class TerrarumComputer(peripheralSlots: Int) { private fun checkALError() { val errorCode = AL10.alGetError() if (errorCode != AL10.AL_NO_ERROR) { - throw ALException(errorCode) + throw net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.ALException(errorCode) } } diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/FilesystemDir.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/FilesystemDir.kt similarity index 89% rename from src/net/torvald/terrarum/virtualcomputer/luaapi/FilesystemDir.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/FilesystemDir.kt index 9379b8283..d5fd5bb6f 100644 --- a/src/net/torvald/terrarum/virtualcomputer/luaapi/FilesystemDir.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/FilesystemDir.kt @@ -1,12 +1,12 @@ -package net.torvald.terrarum.virtualcomputer.luaapi +package net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi import org.luaj.vm2.* import org.luaj.vm2.lib.OneArgFunction import org.luaj.vm2.lib.TwoArgFunction import org.luaj.vm2.lib.ZeroArgFunction import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer -import net.torvald.terrarum.virtualcomputer.luaapi.Term.Companion.checkIBM437 +import net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer +import net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.Term.Companion.checkIBM437 import java.io.* import java.nio.file.Files import java.nio.file.NoSuchFileException @@ -27,7 +27,7 @@ import java.util.* * Use .absoluteFile whenever possible; there's fuckin oddity! (http://bugs.java.com/bugdatabase/view_bug.do;:YfiG?bug_id=4483097) */ @Deprecated("Fuck permission and shit, we go virtual. Use FilesystemTar") -internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { +internal class FilesystemDir(globals: Globals, computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) { init { // load things. WARNING: THIS IS MANUAL! @@ -102,7 +102,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { /** actual directory: /Saves//computers// * directs media/ directory to / directory */ - fun TerrarumComputer.getRealPath(luapath: LuaValue) : String { + fun net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer.getRealPath(luapath: LuaValue) : String { // direct mounted paths to real path val computerDir = Terrarum.currentSaveDir.absolutePath + "/computers/" /* if not begins with "(/?)media/", direct to boot @@ -147,7 +147,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { * * actual directory: /Saves//computers// */ - class ListFiles(val computer: TerrarumComputer) : OneArgFunction() { + class ListFiles(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) @@ -164,7 +164,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { } /** Don't use this. Use isFile */ - class FileExists(val computer: TerrarumComputer) : OneArgFunction() { + class FileExists(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) @@ -172,7 +172,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { } } - class IsDirectory(val computer: TerrarumComputer) : OneArgFunction() { + class IsDirectory(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) @@ -183,7 +183,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { } } - class IsFile(val computer: TerrarumComputer) : OneArgFunction() { + class IsFile(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) @@ -207,7 +207,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { } } - class IsReadOnly(val computer: TerrarumComputer) : OneArgFunction() { + class IsReadOnly(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) @@ -216,7 +216,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { } /** we have 4GB file size limit */ - class GetSize(val computer: TerrarumComputer) : OneArgFunction() { + class GetSize(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) @@ -229,7 +229,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { /** * difference with ComputerCraft: it returns boolean, true on successful. */ - class Mkdir(val computer: TerrarumComputer) : OneArgFunction() { + class Mkdir(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) @@ -240,7 +240,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { /** * moves a directory, overwrites the target */ - class Mv(val computer: TerrarumComputer) : TwoArgFunction() { + class Mv(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : TwoArgFunction() { override fun call(from: LuaValue, to: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(from) FilesystemDir.ensurePathSanity(to) @@ -259,7 +259,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { * copies a directory, overwrites the target * difference with ComputerCraft: it returns boolean, true on successful. */ - class Cp(val computer: TerrarumComputer) : TwoArgFunction() { + class Cp(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : TwoArgFunction() { override fun call(from: LuaValue, to: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(from) FilesystemDir.ensurePathSanity(to) @@ -275,7 +275,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { /** * difference with ComputerCraft: it returns boolean, true on successful. */ - class Rm(val computer: TerrarumComputer) : OneArgFunction() { + class Rm(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) @@ -285,7 +285,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { } } - class ConcatPath(val computer: TerrarumComputer) : TwoArgFunction() { + class ConcatPath(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : TwoArgFunction() { override fun call(base: LuaValue, local: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(base) FilesystemDir.ensurePathSanity(local) @@ -321,7 +321,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { * writeBytes = function(string as bytearray) * } */ - class OpenFile(val computer: TerrarumComputer) : TwoArgFunction() { + class OpenFile(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : TwoArgFunction() { override fun call(path: LuaValue, mode: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) @@ -401,7 +401,7 @@ internal class FilesystemDir(globals: Globals, computer: TerrarumComputer) { } } - class GetParentDir(val computer: TerrarumComputer) : OneArgFunction() { + class GetParentDir(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { FilesystemDir.ensurePathSanity(path) diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/FilesystemFactory.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/FilesystemFactory.kt similarity index 52% rename from src/net/torvald/terrarum/virtualcomputer/luaapi/FilesystemFactory.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/FilesystemFactory.kt index b1446fa45..f691f51c1 100644 --- a/src/net/torvald/terrarum/virtualcomputer/luaapi/FilesystemFactory.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/FilesystemFactory.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.luaapi +package net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi /** * Created by minjaesong on 2016-09-17. diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/FilesystemTEVD.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/FilesystemTEVD.kt similarity index 86% rename from src/net/torvald/terrarum/virtualcomputer/luaapi/FilesystemTEVD.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/FilesystemTEVD.kt index 954d44f03..b36a7fc90 100644 --- a/src/net/torvald/terrarum/virtualcomputer/luaapi/FilesystemTEVD.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/FilesystemTEVD.kt @@ -1,15 +1,14 @@ -package net.torvald.terrarum.virtualcomputer.luaapi +package net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi import org.luaj.vm2.* import org.luaj.vm2.lib.OneArgFunction import org.luaj.vm2.lib.TwoArgFunction import org.luaj.vm2.lib.ZeroArgFunction -import net.torvald.terrarum.virtualcomputer.tvd.VDUtil.VDPath -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer -import net.torvald.terrarum.virtualcomputer.luaapi.Term.Companion.checkIBM437 -import net.torvald.terrarum.virtualcomputer.tvd.VDUtil -import net.torvald.terrarum.virtualcomputer.tvd.* -import net.torvald.terrarum.virtualcomputer.tvd.VDFileWriter +import net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.Term.Companion.checkIBM437 +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.* +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.VDUtil +import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.VDUtil.VDPath + import java.io.* import java.nio.charset.Charset import java.util.* @@ -26,7 +25,7 @@ import java.util.* * Don't convert '\' to '/'! Rev-slash is used for escape character in sh, and we're sh-compatible! * Use .absoluteFile whenever possible; there's fuckin oddity! (http://bugs.java.com/bugdatabase/view_bug.do;:YfiG?bug_id=4483097) */ -internal class Filesystem(globals: Globals, computer: TerrarumComputer) { +internal class Filesystem(globals: Globals, computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) { init { // load things. WARNING: THIS IS MANUAL! @@ -87,7 +86,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { * computer.diskRack[SOMEUUID]->subpath * else, computer.diskRack["hda"]->subpath */ - fun TerrarumComputer.getFile(path: VDPath) : DiskEntry? { + fun net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer.getFile(path: VDPath) : DiskEntry? { val disk = this.getTargetDisk(path) if (disk == null) return null @@ -102,7 +101,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { * computer.diskRack["fd1"] * else, computer.diskRack[] */ - fun TerrarumComputer.getTargetDisk(path: VDPath) : VirtualDisk? { + fun net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer.getTargetDisk(path: VDPath) : VirtualDisk? { if (path.hierarchy.size >= 2 && Arrays.equals(path[0], "media".toEntryName(DiskEntry.NAME_LENGTH, sysCharset))) { val diskName = path[1].toCanonicalString(sysCharset) @@ -115,7 +114,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { } } - fun TerrarumComputer.getDirectoryEntries(path: VDPath) : Array? { + fun net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer.getDirectoryEntries(path: VDPath) : Array? { val directory = this.getFile(path) if (directory == null) return null @@ -142,7 +141,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { * * actual directory: /Saves//computers// */ - class ListFiles(val computer: TerrarumComputer) : OneArgFunction() { + class ListFiles(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { val path = VDPath(path.checkPath(), sysCharset) @@ -159,7 +158,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { } } - class FileExists(val computer: TerrarumComputer) : OneArgFunction() { + class FileExists(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { val path = VDPath(path.checkPath(), sysCharset) val disk = computer.getTargetDisk(path) @@ -172,30 +171,30 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { } } - class IsDirectory(val computer: TerrarumComputer) : OneArgFunction() { + class IsDirectory(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { val path = VDPath(path.checkPath(), sysCharset) return LuaValue.valueOf(computer.getFile(path)?.contents is EntryDirectory) } } - class IsFile(val computer: TerrarumComputer) : OneArgFunction() { + class IsFile(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { val path = VDPath(path.checkPath(), sysCharset) return LuaValue.valueOf(computer.getFile(path)?.contents is EntryFile) } } - class IsReadOnly(val computer: TerrarumComputer) : OneArgFunction() { + class IsReadOnly(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { return LuaValue.valueOf(false) } } /** we have 2 GB file size limit */ - class GetSize(val computer: TerrarumComputer) : OneArgFunction() { + class GetSize(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { - val path = VDPath(path.checkPath(), sysCharset) + val path = VDUtil.VDPath(path.checkPath(), sysCharset) val file = computer.getFile(path) try { if (file!!.contents is EntryFile) @@ -215,7 +214,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { /** * returns true on success */ - class Mkdir(val computer: TerrarumComputer) : OneArgFunction() { + class Mkdir(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { return tryBool { val path = VDPath(path.checkPath(), sysCharset) @@ -243,7 +242,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { /** * moves a directory, overwrites the target */ - class Mv(val computer: TerrarumComputer) : TwoArgFunction() { + class Mv(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : TwoArgFunction() { override fun call(from: LuaValue, to: LuaValue) : LuaValue { return tryBool { val pathFrom = VDPath(from.checkPath(), sysCharset) @@ -260,7 +259,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { * copies a directory, overwrites the target * difference with ComputerCraft: it returns boolean, true on successful. */ - class Cp(val computer: TerrarumComputer) : TwoArgFunction() { + class Cp(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : TwoArgFunction() { override fun call(from: LuaValue, to: LuaValue) : LuaValue { return tryBool { val pathFrom = VDPath(from.checkPath(), sysCharset) @@ -295,7 +294,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { /** * difference with ComputerCraft: it returns boolean, true on successful. */ - class Rm(val computer: TerrarumComputer) : OneArgFunction() { + class Rm(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { return tryBool { val path = VDPath(path.checkPath(), sysCharset) @@ -306,7 +305,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { } } - class ConcatPath(val computer: TerrarumComputer) : TwoArgFunction() { + class ConcatPath(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : TwoArgFunction() { override fun call(base: LuaValue, local: LuaValue) : LuaValue { TODO() } @@ -338,7 +337,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { * writeBytes = function(string as bytearray) * } */ - class OpenFile(val computer: TerrarumComputer) : TwoArgFunction() { + class OpenFile(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : TwoArgFunction() { override fun call(path: LuaValue, mode: LuaValue) : LuaValue { val path = VDPath(path.checkPath(), sysCharset) val disk = computer.getTargetDisk(path)!! @@ -423,7 +422,7 @@ internal class Filesystem(globals: Globals, computer: TerrarumComputer) { } } - class GetParentDir(val computer: TerrarumComputer) : OneArgFunction() { + class GetParentDir(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(path: LuaValue) : LuaValue { val path = VDPath(path.checkPath(), sysCharset).getParent() return LuaValue.valueOf(path.toString()) diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/HostAccessProvider.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/HostAccessProvider.kt similarity index 60% rename from src/net/torvald/terrarum/virtualcomputer/luaapi/HostAccessProvider.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/HostAccessProvider.kt index 2384a134d..e2211d837 100644 --- a/src/net/torvald/terrarum/virtualcomputer/luaapi/HostAccessProvider.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/HostAccessProvider.kt @@ -1,11 +1,11 @@ -package net.torvald.terrarum.virtualcomputer.luaapi +package net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi import net.torvald.terrarum.gameactors.ai.toLua import org.luaj.vm2.lib.OneArgFunction import org.luaj.vm2.lib.ZeroArgFunction -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer -import net.torvald.terrarum.virtualcomputer.luaapi.Term.Companion.checkIBM437 -import net.torvald.terrarum.virtualcomputer.terminal.Teletype +import net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer +import net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi.Term.Companion.checkIBM437 +import net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype import org.luaj.vm2.* /** @@ -15,7 +15,7 @@ import org.luaj.vm2.* * * Created by minjaesong on 2016-09-19. */ -internal class HostAccessProvider(globals: Globals, computer: TerrarumComputer) { +internal class HostAccessProvider(globals: Globals, computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) { init { globals["machine"] = LuaTable() @@ -42,19 +42,19 @@ internal class HostAccessProvider(globals: Globals, computer: TerrarumComputer) } } - class IsHalted(val computer: TerrarumComputer): ZeroArgFunction() { + class IsHalted(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer): ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(computer.isHalted) } } - class NativeReadStdin(val computer: TerrarumComputer) : ZeroArgFunction() { + class NativeReadStdin(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : ZeroArgFunction() { override fun call(): LuaValue { return computer.stdin!!.read().toLua() } } - class HaltComputer(val computer: TerrarumComputer) : ZeroArgFunction() { + class HaltComputer(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : ZeroArgFunction() { override fun call() : LuaValue { computer.isHalted = true computer.luaJ_globals.load("""print(DC4.."system halted")""").call() @@ -63,13 +63,13 @@ internal class HostAccessProvider(globals: Globals, computer: TerrarumComputer) } /** Time elapsed since the power is on. */ - class NativeGetMilliTime(val computer: TerrarumComputer) : ZeroArgFunction() { + class NativeGetMilliTime(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(computer.milliTime) } } - class NativeThreadSleep(val computer: TerrarumComputer) : OneArgFunction() { + class NativeThreadSleep(val computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OneArgFunction() { override fun call(mills: LuaValue): LuaValue { computer.currentExecutionThread.join(mills.checklong()) return LuaValue.NONE diff --git a/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Input.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Input.kt new file mode 100644 index 000000000..ad4dfc73f --- /dev/null +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Input.kt @@ -0,0 +1,16 @@ +package net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi + +import com.badlogic.gdx.Gdx +import org.luaj.vm2.Globals +import org.luaj.vm2.LuaTable +import org.luaj.vm2.LuaValue +import org.luaj.vm2.lib.OneArgFunction +import net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer + +/** + * Created by minjaesong on 2016-09-25. + */ +class Input(globals: Globals, computer: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) { + + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/PcSpeakerDriver.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/PcSpeakerDriver.kt similarity index 90% rename from src/net/torvald/terrarum/virtualcomputer/luaapi/PcSpeakerDriver.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/PcSpeakerDriver.kt index 104a84187..80cf27339 100644 --- a/src/net/torvald/terrarum/virtualcomputer/luaapi/PcSpeakerDriver.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/PcSpeakerDriver.kt @@ -1,11 +1,11 @@ -package net.torvald.terrarum.virtualcomputer.luaapi +package net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi import org.luaj.vm2.Globals import org.luaj.vm2.LuaTable import org.luaj.vm2.LuaValue import org.luaj.vm2.lib.TwoArgFunction import org.luaj.vm2.lib.ZeroArgFunction -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer +import net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer import org.luaj.vm2.LuaFunction import org.luaj.vm2.lib.OneArgFunction @@ -16,7 +16,7 @@ import org.luaj.vm2.lib.OneArgFunction * * Created by minjaesong on 2016-09-27. */ -class PcSpeakerDriver(val globals: Globals, host: TerrarumComputer) { +class PcSpeakerDriver(val globals: Globals, host: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) { init { globals["speaker"] = LuaTable() @@ -67,7 +67,7 @@ class PcSpeakerDriver(val globals: Globals, host: TerrarumComputer) { } } - class EnqueueTone(val host: TerrarumComputer) : TwoArgFunction() { + class EnqueueTone(val host: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : TwoArgFunction() { /** * @param freq: number (hertz) or string (A-4, A4, B#2, ...) */ @@ -84,7 +84,7 @@ class PcSpeakerDriver(val globals: Globals, host: TerrarumComputer) { } } - class ClearQueue(val host: TerrarumComputer) : ZeroArgFunction() { + class ClearQueue(val host: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : ZeroArgFunction() { override fun call(): LuaValue { host.clearBeepQueue() return LuaValue.NONE diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/Security.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Security.kt similarity index 97% rename from src/net/torvald/terrarum/virtualcomputer/luaapi/Security.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Security.kt index 8f6dc9e8f..9c4ab3346 100644 --- a/src/net/torvald/terrarum/virtualcomputer/luaapi/Security.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Security.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.luaapi +package net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi import org.luaj.vm2.Globals import org.luaj.vm2.LuaValue diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/Term.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Term.kt similarity index 63% rename from src/net/torvald/terrarum/virtualcomputer/luaapi/Term.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Term.kt index a5f532ecf..c9a0487ba 100644 --- a/src/net/torvald/terrarum/virtualcomputer/luaapi/Term.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/Term.kt @@ -1,9 +1,9 @@ -package net.torvald.terrarum.virtualcomputer.luaapi +package net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi import org.luaj.vm2.* import org.luaj.vm2.lib.* -import net.torvald.terrarum.virtualcomputer.terminal.Teletype -import net.torvald.terrarum.virtualcomputer.terminal.Terminal +import net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype +import net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal import java.nio.charset.Charset /** @@ -12,7 +12,7 @@ import java.nio.charset.Charset * * Created by minjaesong on 2016-09-12. */ -internal class Term(globals: Globals, term: Teletype) { +internal class Term(globals: Globals, term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) { init { // load things. WARNING: THIS IS MANUAL! @@ -26,7 +26,7 @@ internal class Term(globals: Globals, term: Teletype) { globals["term"]["isTeletype"] = Term.IsTeletype(term) globals["term"]["bell"] = Term.Bell(term) - if (term is Terminal) { + if (term is net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) { globals["term"]["emitRaw"] = Term.EmitRaw(term) globals["term"]["emit"] = Term.Emit(term) globals["term"]["emitString"] = Term.EmitString(term) @@ -62,16 +62,16 @@ internal class Term(globals: Globals, term: Teletype) { } } - class Bell(val tty: Teletype) : OneArgFunction() { + class Bell(val tty: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) : OneArgFunction() { override fun call(pattern: LuaValue): LuaValue { tty.bell(pattern.checkjstring()) return LuaValue.NONE } } - class WriteString(val tty: Teletype) : LuaFunction() { + class WriteString(val tty: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) : LuaFunction() { override fun call(p0: LuaValue): LuaValue { - if (tty is Terminal) + if (tty is net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) tty.writeString(p0.checkIBM437(), tty.cursorX, tty.cursorY) else tty.writeChars(p0.checkIBM437()) @@ -79,7 +79,7 @@ internal class Term(globals: Globals, term: Teletype) { } override fun call(s: LuaValue, x: LuaValue, y: LuaValue): LuaValue { - if (tty is Terminal) + if (tty is net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) tty.writeString(s.checkIBM437(), x.checkint(), y.checkint()) else throw LuaError("couldn't move cursor; TTY is one-dimensional") @@ -87,9 +87,9 @@ internal class Term(globals: Globals, term: Teletype) { } } - class PrintString(val tty: Teletype) : LuaFunction() { + class PrintString(val tty: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) : LuaFunction() { override fun call(p0: LuaValue): LuaValue { - if (tty is Terminal) + if (tty is net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) tty.printString(p0.checkIBM437(), tty.cursorX, tty.cursorY) else tty.printChars(p0.checkIBM437()) @@ -97,7 +97,7 @@ internal class Term(globals: Globals, term: Teletype) { } override fun call(s: LuaValue, x: LuaValue, y: LuaValue): LuaValue { - if (tty is Terminal) + if (tty is net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) tty.printString(s.checkIBM437(), x.checkint(), y.checkint()) else throw LuaError("couldn't move cursor; TTY is one-dimensional") @@ -105,14 +105,14 @@ internal class Term(globals: Globals, term: Teletype) { } } - class NewLine(val tty: Teletype) : ZeroArgFunction() { + class NewLine(val tty: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) : ZeroArgFunction() { override fun call(): LuaValue { tty.newLine() return LuaValue.NONE } } - class EmitRaw(val term: Terminal) : ThreeArgFunction() { + class EmitRaw(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ThreeArgFunction() { override fun call(p0: LuaValue, x: LuaValue, y: LuaValue): LuaValue { term.emitChar(p0.checkint(), x.checkint() - 1, y.checkint() - 1) return LuaValue.NONE @@ -120,35 +120,35 @@ internal class Term(globals: Globals, term: Teletype) { } // emitchar - class Emit(val term: Terminal) : ThreeArgFunction() { + class Emit(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ThreeArgFunction() { override fun call(p0: LuaValue, x: LuaValue, y: LuaValue): LuaValue { term.emitChar(p0.checkint().toChar(), x.checkint() - 1, y.checkint() - 1) return LuaValue.NONE } } - class EmitString(val term: Terminal) : ThreeArgFunction() { + class EmitString(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ThreeArgFunction() { override fun call(p0: LuaValue, x: LuaValue, y: LuaValue): LuaValue { term.emitString(p0.checkIBM437(), x.checkint() - 1, y.checkint() - 1) return LuaValue.NONE } } - class ResetColour(val term: Terminal) : ZeroArgFunction() { + class ResetColour(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ZeroArgFunction() { override fun call(): LuaValue { term.resetColour() return LuaValue.NONE } } - class Clear(val term: Terminal) : ZeroArgFunction() { + class Clear(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ZeroArgFunction() { override fun call(): LuaValue { term.clear() return LuaValue.NONE } } - class ClearLine(val term: Terminal) : ZeroArgFunction() { + class ClearLine(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ZeroArgFunction() { override fun call(): LuaValue { term.clearLine() return LuaValue.NONE @@ -156,7 +156,7 @@ internal class Term(globals: Globals, term: Teletype) { } /** term.setCursorPos(number x) */ - class MoveCursor(val tty: Teletype) : OneArgFunction() { + class MoveCursor(val tty: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) : OneArgFunction() { override fun call(p0: LuaValue): LuaValue { for (i in 1..p0.checkint()) tty.printChar(' ') @@ -164,7 +164,7 @@ internal class Term(globals: Globals, term: Teletype) { } } - class SetCursor(val term: Terminal) : TwoArgFunction() { + class SetCursor(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : TwoArgFunction() { override fun call(x: LuaValue, y: LuaValue): LuaValue { term.setCursor(x.checkint() - 1, y.checkint() - 1) return LuaValue.NONE @@ -172,33 +172,33 @@ internal class Term(globals: Globals, term: Teletype) { } /** One-based */ - class GetCursorPos(val term: Terminal) : VarArgFunction() { + class GetCursorPos(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : VarArgFunction() { override fun invoke(args: Varargs?): Varargs { val ret = arrayOf(LuaValue.valueOf(term.cursorX + 1), LuaValue.valueOf(term.cursorY + 1)) return LuaValue.varargsOf(ret) } } - class GetCursorX(val term: Terminal) : ZeroArgFunction() { + class GetCursorX(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(term.cursorX + 1) } } - class GetCursorY(val term: Terminal) : ZeroArgFunction() { + class GetCursorY(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(term.cursorY + 1) } } - class SetCursorX(val term: Terminal) : OneArgFunction() { + class SetCursorX(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : OneArgFunction() { override fun call(p0: LuaValue): LuaValue { term.setCursor(p0.checkint() - 1, term.cursorY) return LuaValue.NONE } } - class SetCursorY(val term: Terminal) : OneArgFunction() { + class SetCursorY(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : OneArgFunction() { override fun call(p0: LuaValue): LuaValue { term.setCursor(term.cursorX - 1, p0.checkint()) return LuaValue.NONE @@ -206,49 +206,49 @@ internal class Term(globals: Globals, term: Teletype) { } /** term.setCursorBlink(boolean bool) */ - class SetCursorBlink(val term: Terminal) : OneArgFunction() { + class SetCursorBlink(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : OneArgFunction() { override fun call(p0: LuaValue): LuaValue { term.cursorBlink = p0.toboolean() return LuaValue.NONE } } - class GetSize(val term: Terminal) : VarArgFunction() { + class GetSize(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : VarArgFunction() { override fun invoke(args: Varargs?): Varargs { val ret = arrayOf(LuaValue.valueOf(term.width), LuaValue.valueOf(term.height)) return LuaValue.varargsOf(ret) } } - class GetWidth(val tty: Teletype) : ZeroArgFunction() { + class GetWidth(val tty: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) : ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(tty.width) } } - class GetHeight(val terminal: Terminal) : ZeroArgFunction() { + class GetHeight(val terminal: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(terminal.height) } } - class IsColour(val term: Terminal) : ZeroArgFunction() { + class IsColour(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(term.coloursCount > 4) } } /** term.scroll(number n) */ - class Scroll(val tty: Teletype) : OneArgFunction() { + class Scroll(val tty: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) : OneArgFunction() { override fun call(p0: LuaValue): LuaValue { - if (tty is Terminal) tty.scroll(p0.checkint()) + if (tty is net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) tty.scroll(p0.checkint()) else for (i in 1..p0.checkint()) tty.newLine() return LuaValue.NONE } } /** term.setTextColor(number color) */ - class SetForeColour(val term: Terminal) : OneArgFunction() { + class SetForeColour(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : OneArgFunction() { override fun call(p0: LuaValue): LuaValue { term.foreColour = p0.checkint() return LuaValue.NONE @@ -256,26 +256,26 @@ internal class Term(globals: Globals, term: Teletype) { } /** term.setBackgroundColor(number color) */ - class SetBackColour(val term: Terminal) : OneArgFunction() { + class SetBackColour(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : OneArgFunction() { override fun call(p0: LuaValue): LuaValue { term.backColour = p0.checkint() return LuaValue.NONE } } - class GetForeColour(val term: Terminal) : ZeroArgFunction() { + class GetForeColour(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(term.foreColour) } } - class GetBackColour(val term: Terminal) : ZeroArgFunction() { + class GetBackColour(val term: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(term.backColour) } } - class IsTeletype(val termInQuestion: Teletype) : ZeroArgFunction() { + class IsTeletype(val termInQuestion: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype) : ZeroArgFunction() { override fun call(): LuaValue { return LuaValue.valueOf(termInQuestion.coloursCount == 0) } diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/WorldInformationProvider.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/WorldInformationProvider.kt similarity index 88% rename from src/net/torvald/terrarum/virtualcomputer/luaapi/WorldInformationProvider.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/WorldInformationProvider.kt index 6285589bc..48b8246b8 100644 --- a/src/net/torvald/terrarum/virtualcomputer/luaapi/WorldInformationProvider.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/luaapi/WorldInformationProvider.kt @@ -1,9 +1,10 @@ -package net.torvald.terrarum.virtualcomputer.luaapi +package net.torvald.terrarum.modulecomputers.virtualcomputer.luaapi import org.luaj.vm2.Globals import org.luaj.vm2.LuaFunction import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameworld.WorldTime +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameworld.WorldTime import org.luaj.vm2.LuaTable import org.luaj.vm2.LuaValue @@ -22,7 +23,7 @@ class WorldInformationProvider(globals: Globals) { companion object { fun getWorldTimeInLuaFormat() : LuaTable { val t = LuaTable() - val time = if (Terrarum.ingame != null) Terrarum.ingame!!.world.time else WorldTime() + val time = if (Terrarum.ingame != null) (Terrarum.ingame!! as Ingame).world.time else WorldTime() // int Terrarum World Time format t["hour"] = time.hours @@ -41,7 +42,7 @@ class WorldInformationProvider(globals: Globals) { /** evaluate single C date format */ fun String.evalAsDate(): String { - val time = if (Terrarum.ingame != null) Terrarum.ingame!!.world.time else WorldTime() + val time = if (Terrarum.ingame != null) (Terrarum.ingame!! as Ingame).world.time else WorldTime() return when (this) { "%a" -> time.getDayNameShort() "%A" -> time.getDayNameFull() diff --git a/src/net/torvald/terrarum/virtualcomputer/peripheral/Peripheral.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/Peripheral.kt similarity index 81% rename from src/net/torvald/terrarum/virtualcomputer/peripheral/Peripheral.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/Peripheral.kt index ccacf70b5..ade0d84c9 100644 --- a/src/net/torvald/terrarum/virtualcomputer/peripheral/Peripheral.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/Peripheral.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.peripheral +package net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral import org.luaj.vm2.Globals import org.luaj.vm2.LuaTable diff --git a/src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralCharLCD.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralCharLCD.kt similarity index 89% rename from src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralCharLCD.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralCharLCD.kt index 0b79b3f84..aca5b2e20 100644 --- a/src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralCharLCD.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralCharLCD.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.peripheral +package net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral import com.badlogic.gdx.graphics.g2d.BitmapFont import com.badlogic.gdx.graphics.g2d.SpriteBatch @@ -8,7 +8,7 @@ import org.luaj.vm2.Globals /** * Created by minjaesong on 2017-05-31. */ -class PeripheralCharLCD(val width: Int, val height: Int) : Peripheral("charLCD") { +class PeripheralCharLCD(val width: Int, val height: Int) : net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral.Peripheral("charLCD") { /*companion object { private val fontSheet = BitmapFont(ModMgr.getPath("dwarventech", "mt-32.tga"), 16, 16) private val font = BitmapFont(fontSheet, 0.toChar()) diff --git a/src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralInternet.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralInternet.kt similarity index 73% rename from src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralInternet.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralInternet.kt index 2c0eb6769..1eab7a624 100644 --- a/src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralInternet.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralInternet.kt @@ -1,7 +1,7 @@ -package net.torvald.terrarum.virtualcomputer.peripheral +package net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral import org.luaj.vm2.Globals -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer +import net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer import org.luaj.vm2.LuaTable import org.luaj.vm2.LuaValue import org.luaj.vm2.lib.OneArgFunction @@ -14,8 +14,8 @@ import java.net.URL * * Created by minjaesong on 2016-09-24. */ -internal class PeripheralInternet(val host: TerrarumComputer) -: Peripheral("internet"){ +internal class PeripheralInternet(val host: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) +: net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral.Peripheral("internet"){ override val memSize = 1024 diff --git a/src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralPSG.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralPSG.kt similarity index 54% rename from src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralPSG.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralPSG.kt index 10250ec7d..74f93e890 100644 --- a/src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralPSG.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralPSG.kt @@ -1,6 +1,6 @@ -package net.torvald.terrarum.virtualcomputer.peripheral +package net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer +import net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer import org.luaj.vm2.Globals import org.luaj.vm2.LuaTable import org.luaj.vm2.LuaValue @@ -11,8 +11,8 @@ import org.luaj.vm2.LuaValue * * Created by minjaesong on 2016-09-27. */ -internal class PeripheralPSG(val host: TerrarumComputer) -: Peripheral("psg") { +internal class PeripheralPSG(val host: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) +: net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral.Peripheral("psg") { override val memSize = 1024 diff --git a/src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralVideoCard.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralVideoCard.kt similarity index 99% rename from src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralVideoCard.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralVideoCard.kt index 477945dc9..95a3d53dc 100644 --- a/src/net/torvald/terrarum/virtualcomputer/peripheral/PeripheralVideoCard.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/peripheral/PeripheralVideoCard.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.peripheral +package net.torvald.terrarum.modulecomputers.virtualcomputer.peripheral import org.luaj.vm2.* import org.luaj.vm2.lib.* diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/GraphicsTerminal.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/GraphicsTerminal.kt similarity index 96% rename from src/net/torvald/terrarum/virtualcomputer/terminal/GraphicsTerminal.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/GraphicsTerminal.kt index 0a2fff5a0..20253aca2 100644 --- a/src/net/torvald/terrarum/virtualcomputer/terminal/GraphicsTerminal.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/GraphicsTerminal.kt @@ -1,10 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.terminal - -import net.torvald.terrarum.blendMul -import net.torvald.terrarum.gameactors.DecodeTapestry -import net.torvald.terrarum.gameactors.abs -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer -import java.util.* +package net.torvald.terrarum.modulecomputers.virtualcomputer.terminal /** * Printing text using Term API triggers 'compatibility' mode, where you are limited to 16 colours. diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/SimpleTextTerminal.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/SimpleTextTerminal.kt similarity index 99% rename from src/net/torvald/terrarum/virtualcomputer/terminal/SimpleTextTerminal.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/SimpleTextTerminal.kt index 147cac95e..8bacf5da4 100644 --- a/src/net/torvald/terrarum/virtualcomputer/terminal/SimpleTextTerminal.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/SimpleTextTerminal.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.terminal +package net.torvald.terrarum.modulecomputers.virtualcomputer.terminal /** diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/Teletype.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/Teletype.kt similarity index 92% rename from src/net/torvald/terrarum/virtualcomputer/terminal/Teletype.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/Teletype.kt index cc7dd805e..15576abe0 100644 --- a/src/net/torvald/terrarum/virtualcomputer/terminal/Teletype.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/Teletype.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.terminal +package net.torvald.terrarum.modulecomputers.virtualcomputer.terminal import com.badlogic.gdx.graphics.g2d.SpriteBatch diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/TeletypeTerminal.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TeletypeTerminal.kt similarity index 98% rename from src/net/torvald/terrarum/virtualcomputer/terminal/TeletypeTerminal.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TeletypeTerminal.kt index b63522bb2..d546c8234 100644 --- a/src/net/torvald/terrarum/virtualcomputer/terminal/TeletypeTerminal.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TeletypeTerminal.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.terminal +package net.torvald.terrarum.modulecomputers.virtualcomputer.terminal import net.torvald.terrarumsansbitmap.slick2d.GameFontBase import net.torvald.terrarum.blendMul diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/Terminal.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/Terminal.kt similarity index 90% rename from src/net/torvald/terrarum/virtualcomputer/terminal/Terminal.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/Terminal.kt index dc8dd14ee..acc3254b3 100644 --- a/src/net/torvald/terrarum/virtualcomputer/terminal/Terminal.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/Terminal.kt @@ -1,8 +1,8 @@ -package net.torvald.terrarum.virtualcomputer.terminal +package net.torvald.terrarum.modulecomputers.virtualcomputer.terminal import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.Second /** * A terminal @@ -13,7 +13,7 @@ import net.torvald.terrarum.gameactors.Second * * Created by minjaesong on 2016-09-07. */ -interface Terminal : Teletype { +interface Terminal : net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Teletype { override val width: Int val height: Int override val coloursCount: Int diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/TerminalInputStream.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TerminalInputStream.kt similarity index 58% rename from src/net/torvald/terrarum/virtualcomputer/terminal/TerminalInputStream.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TerminalInputStream.kt index c3b0882f4..a26ddb87d 100644 --- a/src/net/torvald/terrarum/virtualcomputer/terminal/TerminalInputStream.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TerminalInputStream.kt @@ -1,12 +1,12 @@ -package net.torvald.terrarum.virtualcomputer.terminal +package net.torvald.terrarum.modulecomputers.virtualcomputer.terminal -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer +import net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer import java.io.InputStream /** * Created by minjaesong on 2016-09-10. */ -class TerminalInputStream(val host: TerrarumComputer) : InputStream() { +class TerminalInputStream(val host: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : InputStream() { override fun read(): Int { //System.err.println(Thread.currentThread().name) diff --git a/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TerminalPrintStream.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TerminalPrintStream.kt new file mode 100644 index 000000000..0212f8f9a --- /dev/null +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/terminal/TerminalPrintStream.kt @@ -0,0 +1,14 @@ +package net.torvald.terrarum.modulecomputers.virtualcomputer.terminal + +import net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer +import java.io.OutputStream +import java.io.PrintStream + +/** + * Created by minjaesong on 2016-09-10. + */ +class TerminalPrintStream(val host: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : PrintStream(TerminalOutputStream(host)) + +class TerminalOutputStream(val host: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer) : OutputStream() { + override fun write(b: Int) = host.term.printChar(b.and(0xFF).toChar()) +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/virtualcomputer/tvd/ByteArray64.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/ByteArray64.kt similarity index 98% rename from src/net/torvald/terrarum/virtualcomputer/tvd/ByteArray64.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/ByteArray64.kt index f1a28adf1..904560660 100644 --- a/src/net/torvald/terrarum/virtualcomputer/tvd/ByteArray64.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/ByteArray64.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.tvd +package net.torvald.terrarum.modulecomputers.virtualcomputer.tvd import java.io.BufferedOutputStream import java.io.File diff --git a/src/net/torvald/terrarum/virtualcomputer/tvd/DiskSkimmer.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/DiskSkimmer.kt similarity index 98% rename from src/net/torvald/terrarum/virtualcomputer/tvd/DiskSkimmer.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/DiskSkimmer.kt index 32191ec77..39148bd23 100644 --- a/src/net/torvald/terrarum/virtualcomputer/tvd/DiskSkimmer.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/DiskSkimmer.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.tvd +package net.torvald.terrarum.modulecomputers.virtualcomputer.tvd import java.io.File import java.io.FileInputStream diff --git a/src/net/torvald/terrarum/virtualcomputer/tvd/VDUtil.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/VDUtil.kt similarity index 96% rename from src/net/torvald/terrarum/virtualcomputer/tvd/VDUtil.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/VDUtil.kt index 4e1fdfd0d..22fd674bb 100644 --- a/src/net/torvald/terrarum/virtualcomputer/tvd/VDUtil.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/VDUtil.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.tvd +package net.torvald.terrarum.modulecomputers.virtualcomputer.tvd import java.io.* import java.nio.charset.Charset @@ -85,12 +85,12 @@ object VDUtil { } } - fun File.writeBytes64(array: ByteArray64) { + fun File.writeBytes64(array: net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64) { array.writeToFile(this) } - fun File.readBytes64(): ByteArray64 { - val inbytes = ByteArray64(this.length()) + fun File.readBytes64(): net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64 { + val inbytes = net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64(this.length()) val inputStream = BufferedInputStream(FileInputStream(this)) var readInt = inputStream.read() var readInCounter = 0L @@ -510,7 +510,7 @@ object VDUtil { // read back deflated bytes untouched and store it val tempFile = File(filename) val tempFileFIS = FileInputStream(tempFile) - val readBytes = ByteArray64(tempFile.length()) + val readBytes = net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64(tempFile.length()) var c = 0L @@ -821,7 +821,7 @@ object VDUtil { if (this.usedBytes + newSize > this.capacity) throw IOException("Not enough space on the disk") } - fun ByteArray64.toIntBig(): Int { + fun net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64.toIntBig(): Int { if (this.size != 4L) throw OperationNotSupportedException("ByteArray is not Int") @@ -830,7 +830,7 @@ object VDUtil { this.forEach { byte -> i += byte.toUint().shl(24 - c * 8); c += 1 } return i } - fun ByteArray64.toInt48Big(): Long { + fun net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64.toInt48Big(): Long { if (this.size != 6L) throw OperationNotSupportedException("ByteArray is not Long") @@ -839,7 +839,7 @@ object VDUtil { this.forEach { byte -> i += byte.toUint().shl(40 - c * 8); c += 1 } return i } - fun ByteArray64.toShortBig(): Short { + fun net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64.toShortBig(): Short { if (this.size != 2L) throw OperationNotSupportedException("ByteArray is not Short") @@ -964,15 +964,15 @@ fun ByteArray.toCanonicalString(charset: Charset): String { return String(this.sliceArray(0..lastIndexOfRealStr), charset) } -fun ArrayList.toByteArray64(): ByteArray64 { - val array = ByteArray64(this.size.toLong()) +fun ArrayList.toByteArray64(): net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64 { + val array = net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64(this.size.toLong()) this.forEachIndexed { index, byte -> array[index.toLong()] = byte } return array } -fun ByteArray.toByteArray64(): ByteArray64 { - val array = ByteArray64(this.size.toLong()) +fun ByteArray.toByteArray64(): net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64 { + val array = net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64(this.size.toLong()) this.forEachIndexed { index, byte -> array[index.toLong()] = byte } diff --git a/src/net/torvald/terrarum/virtualcomputer/tvd/VirtualDisk.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/VirtualDisk.kt similarity index 87% rename from src/net/torvald/terrarum/virtualcomputer/tvd/VirtualDisk.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/VirtualDisk.kt index 0173e50cd..1e5da85c1 100644 --- a/src/net/torvald/terrarum/virtualcomputer/tvd/VirtualDisk.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/VirtualDisk.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.tvd +package net.torvald.terrarum.modulecomputers.virtualcomputer.tvd import java.io.IOException import java.nio.charset.Charset @@ -19,9 +19,9 @@ class VirtualDisk( /** capacity of 0 makes the disk read-only */ var capacity: Long, var diskName: ByteArray = ByteArray(NAME_LENGTH), - footer: ByteArray64 = ByteArray64(8) // default to mandatory 8-byte footer + footer: net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64 = net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64(8) // default to mandatory 8-byte footer ) { - var footerBytes: ByteArray64 = footer + var footerBytes: net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64 = footer private set val entries = HashMap() var isReadOnly: Boolean @@ -34,18 +34,18 @@ class VirtualDisk( private fun Boolean.toBit() = if (this) 1.toByte() else 0.toByte() - internal fun __internalSetFooter__(footer: ByteArray64) { + internal fun __internalSetFooter__(footer: net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64) { footerBytes = footer } - private fun serializeEntriesOnly(): ByteArray64 { + private fun serializeEntriesOnly(): net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64 { val bufferList = ArrayList() // FIXME this part would take up excessive memory for large files entries.forEach { val serialised = it.value.serialize() serialised.forEach { bufferList.add(it) } } - val byteArray = ByteArray64(bufferList.size.toLong()) + val byteArray = net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64(bufferList.size.toLong()) bufferList.forEachIndexed { index, byte -> byteArray[index.toLong()] = byte } return byteArray } @@ -187,13 +187,13 @@ interface DiskEntryContent { * Do not retrieve bytes directly from this! Use VDUtil.retrieveFile(DiskEntry) * And besides, the bytes could be compressed. */ -open class EntryFile(internal var bytes: ByteArray64) : DiskEntryContent { +open class EntryFile(internal var bytes: net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64) : DiskEntryContent { override fun getSizePure() = bytes.size override fun getSizeEntry() = getSizePure() + 6 /** Create new blank file */ - constructor(size: Long): this(ByteArray64(size)) + constructor(size: Long): this(net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64(size)) override fun serialize(): AppendableByteBuffer { val buffer = AppendableByteBuffer(getSizeEntry()) @@ -202,7 +202,7 @@ open class EntryFile(internal var bytes: ByteArray64) : DiskEntryContent { return buffer } } -class EntryFileCompressed(internal var uncompressedSize: Long, bytes: ByteArray64) : EntryFile(bytes) { +class EntryFileCompressed(internal var uncompressedSize: Long, bytes: net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64) : EntryFile(bytes) { override fun getSizePure() = bytes.size override fun getSizeEntry() = getSizePure() + 12 @@ -285,10 +285,10 @@ fun AppendableByteBuffer.getCRC32(): Int { return crc.value.toInt() } class AppendableByteBuffer(val size: Long) { - val array = ByteArray64(size) + val array = net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64(size) private var offset = 0L - fun put(byteArray64: ByteArray64): AppendableByteBuffer { + fun put(byteArray64: net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.ByteArray64): AppendableByteBuffer { // it's slow but works // can't do system.arrayCopy directly byteArray64.forEach { put(it) } diff --git a/src/net/torvald/terrarum/virtualcomputer/tvd/tvd_20170723.zip b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/tvd_20170723.zip similarity index 100% rename from src/net/torvald/terrarum/virtualcomputer/tvd/tvd_20170723.zip rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/tvd/tvd_20170723.zip diff --git a/src/net/torvald/terrarum/virtualcomputer/worldobject/ComputerPartsCodex.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/ComputerPartsCodex.kt similarity index 96% rename from src/net/torvald/terrarum/virtualcomputer/worldobject/ComputerPartsCodex.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/ComputerPartsCodex.kt index fa3cc8985..d02f06d63 100644 --- a/src/net/torvald/terrarum/virtualcomputer/worldobject/ComputerPartsCodex.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/ComputerPartsCodex.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.virtualcomputer.worldobject +package net.torvald.terrarum.modulecomputers.virtualcomputer.worldobject import java.util.* diff --git a/src/net/torvald/terrarum/virtualcomputer/worldobject/FixtureBasicTerminal.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/FixtureBasicTerminal.kt similarity index 58% rename from src/net/torvald/terrarum/virtualcomputer/worldobject/FixtureBasicTerminal.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/FixtureBasicTerminal.kt index 85c179712..21b0b0c19 100644 --- a/src/net/torvald/terrarum/virtualcomputer/worldobject/FixtureBasicTerminal.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/FixtureBasicTerminal.kt @@ -1,13 +1,8 @@ -package net.torvald.terrarum.virtualcomputer.worldobject +package net.torvald.terrarum.modulecomputers.virtualcomputer.worldobject import com.badlogic.gdx.graphics.Color -import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameactors.FixtureBase +import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase import net.torvald.terrarum.gameworld.GameWorld -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer -import net.torvald.terrarum.virtualcomputer.terminal.Terminal -import net.torvald.terrarum.virtualcomputer.worldobject.ui.UITextTerminal -import java.util.* /** * Created by minjaesong on 2016-09-08. diff --git a/src/net/torvald/terrarum/virtualcomputer/worldobject/FixtureComputerBase.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/FixtureComputerBase.kt similarity index 72% rename from src/net/torvald/terrarum/virtualcomputer/worldobject/FixtureComputerBase.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/FixtureComputerBase.kt index 92c7943de..2b2dcb744 100644 --- a/src/net/torvald/terrarum/virtualcomputer/worldobject/FixtureComputerBase.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/FixtureComputerBase.kt @@ -1,12 +1,7 @@ -package net.torvald.terrarum.virtualcomputer.worldobject +package net.torvald.terrarum.modulecomputers.virtualcomputer.worldobject -import net.torvald.terrarum.gameactors.FixtureBase +import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase import net.torvald.terrarum.gameworld.GameWorld -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer -import net.torvald.terrarum.virtualcomputer.terminal.Terminal -import java.io.PrintStream -import java.security.SecureRandom -import java.util.* /** * Created by minjaesong on 2016-09-08. @@ -16,7 +11,7 @@ open class FixtureComputerBase(world: GameWorld) : FixtureBase(world) { /** Connected terminal */ var terminal: FixtureBasicTerminal? = null - var computerInside: TerrarumComputer? = null + var computerInside: net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer? = null init { // UUID of the "brain" @@ -32,7 +27,7 @@ open class FixtureComputerBase(world: GameWorld) : FixtureBase(world) { fun attachTerminal(uuid: String) { val fetchedTerminal = getTerminalByUUID(uuid) - computerInside = TerrarumComputer(8) + computerInside = net.torvald.terrarum.modulecomputers.virtualcomputer.computer.TerrarumComputer(8) computerInside!!.attachTerminal(fetchedTerminal!!) actorValue["computerid"] = computerInside!!.UUID } @@ -41,7 +36,7 @@ open class FixtureComputerBase(world: GameWorld) : FixtureBase(world) { terminal = null } - private fun getTerminalByUUID(uuid: String): Terminal? { + private fun getTerminalByUUID(uuid: String): net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal? { TODO("get terminal by UUID. Return null if not found") } diff --git a/src/net/torvald/terrarum/virtualcomputer/worldobject/ui/UITextTerminal.kt b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/ui/UITextTerminal.kt similarity index 79% rename from src/net/torvald/terrarum/virtualcomputer/worldobject/ui/UITextTerminal.kt rename to src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/ui/UITextTerminal.kt index 14c1e5d98..f4a191128 100644 --- a/src/net/torvald/terrarum/virtualcomputer/worldobject/ui/UITextTerminal.kt +++ b/src/net/torvald/terrarum/modulecomputers/virtualcomputer/worldobject/ui/UITextTerminal.kt @@ -1,16 +1,14 @@ -package net.torvald.terrarum.virtualcomputer.worldobject.ui +package net.torvald.terrarum.modulecomputers.virtualcomputer.worldobject.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.g2d.SpriteBatch -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.Second import net.torvald.terrarum.ui.* -import net.torvald.terrarum.ui.UICanvas.Companion.OPENCLOSE_GENERIC -import net.torvald.terrarum.virtualcomputer.terminal.Terminal /** * Created by minjaesong on 2016-09-08. */ -class UITextTerminal(val terminal: Terminal) : UICanvas() { +class UITextTerminal(val terminal: net.torvald.terrarum.modulecomputers.virtualcomputer.terminal.Terminal) : UICanvas() { override var width: Int = terminal.displayW// + some diff --git a/src/net/torvald/terrarum/serialise/WriteLayerData.kt b/src/net/torvald/terrarum/serialise/WriteLayerData.kt index 7fc6d07cf..a1846a50c 100644 --- a/src/net/torvald/terrarum/serialise/WriteLayerData.kt +++ b/src/net/torvald/terrarum/serialise/WriteLayerData.kt @@ -3,6 +3,7 @@ package net.torvald.terrarum.serialise import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.Terrarum import net.torvald.terrarum.console.EchoError +import net.torvald.terrarum.modulebasegame.Ingame import java.io.File import java.io.FileOutputStream import java.io.IOException @@ -25,7 +26,7 @@ internal object WriteLayerData { internal operator fun invoke(saveDirectoryName: String): Boolean { val path = "${Terrarum.defaultSaveDir}/$saveDirectoryName/${META_FILENAME}" val tempPath = "${path}_bak" - val map = Terrarum.ingame!!.world + val map = (Terrarum.ingame!! as Ingame).world val parentDir = File("${Terrarum.defaultSaveDir}/$saveDirectoryName") if (!parentDir.exists()) { diff --git a/src/net/torvald/terrarum/serialise/WriteMeta.kt b/src/net/torvald/terrarum/serialise/WriteMeta.kt index 38744632d..ccd1b53f3 100644 --- a/src/net/torvald/terrarum/serialise/WriteMeta.kt +++ b/src/net/torvald/terrarum/serialise/WriteMeta.kt @@ -1,7 +1,7 @@ package net.torvald.terrarum.serialise -import net.torvald.terrarum.worldgenerator.WorldGenerator -import net.torvald.terrarum.worldgenerator.RoguelikeRandomiser +import net.torvald.terrarum.modulebasegame.worldgenerator.WorldGenerator +import net.torvald.terrarum.modulebasegame.worldgenerator.RoguelikeRandomiser import java.nio.charset.Charset /** diff --git a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt index 34c3e3f4d..45bd24bca 100644 --- a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt +++ b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt @@ -9,6 +9,7 @@ import net.torvald.terrarum.worlddrawer.LightmapRenderer import net.torvald.terrarum.worlddrawer.FeaturesDrawer import net.torvald.terrarum.Terrarum.mouseTileX import net.torvald.terrarum.Terrarum.mouseTileY +import net.torvald.terrarum.modulebasegame.Ingame /** * Created by minjaesong on 2016-03-14. @@ -26,10 +27,10 @@ class BasicDebugInfoWindow : UICanvas() { private var xdelta = 0.0 private var ydelta = 0.0 - + private val ingame = Terrarum.ingame!! as Ingame override fun updateUI(delta: Float) { - val player = Terrarum.ingame!!.player + val player = ingame.player val hitbox = player.hitbox xdelta = hitbox.canonicalX - prevPlayerX @@ -44,7 +45,7 @@ class BasicDebugInfoWindow : UICanvas() { fun Int.rawG() = this % LightmapRenderer.MUL_2 / LightmapRenderer.MUL fun Int.rawB() = this % LightmapRenderer.MUL - val player = Terrarum.ingame!!.player + val player = ingame.player batch.color = Color(0xFFEE88FF.toInt()) @@ -114,7 +115,7 @@ class BasicDebugInfoWindow : UICanvas() { else "$rawR $rawG $rawB $rawA" printLine(batch, 8, "light@cursor $ccG$lightVal") - val tileNum = Terrarum.ingame!!.world.getTileFromTerrain(mouseTileX, mouseTileY) ?: -1 + val tileNum = ingame.world.getTileFromTerrain(mouseTileX, mouseTileY) ?: -1 printLine(batch, 9, "tile@cursor $ccG$tileNum ($mtX, $mtY)") @@ -125,8 +126,8 @@ class BasicDebugInfoWindow : UICanvas() { //printLineColumn(batch, 2, 1, "VSync $ccG" + Terrarum.appgc.isVSyncRequested) //printLineColumn(batch, 2, 2, "Env colour temp $ccG" + FeaturesDrawer.colTemp) - printLineColumn(batch, 2, 5, "Time $ccG${Terrarum.ingame!!.world.time.todaySeconds.toString().padStart(5, '0')}" + - " (${Terrarum.ingame!!.world.time.getFormattedTime()})") + printLineColumn(batch, 2, 5, "Time $ccG${ingame.world.time.todaySeconds.toString().padStart(5, '0')}" + + " (${ingame.world.time.getFormattedTime()})") printLineColumn(batch, 2, 6, "Mass $ccG${player.mass}") printLineColumn(batch, 2, 7, "noClip $ccG${player.noClip}") @@ -171,13 +172,13 @@ class BasicDebugInfoWindow : UICanvas() { * Bottom left */ - Terrarum.fontSmallNumbers.draw(batch, "${ccY}Actors total $ccG${Terrarum.ingame!!.actorContainer.size + Terrarum.ingame!!.actorContainerInactive.size}", + Terrarum.fontSmallNumbers.draw(batch, "${ccY}Actors total $ccG${ingame.actorContainer.size + ingame.actorContainerInactive.size}", 2f, Terrarum.HEIGHT - 10f) - Terrarum.fontSmallNumbers.draw(batch, "${ccY}Active $ccG${Terrarum.ingame!!.actorContainer.size}", + Terrarum.fontSmallNumbers.draw(batch, "${ccY}Active $ccG${ingame.actorContainer.size}", (2 + 17*8).toFloat(), Terrarum.HEIGHT - 10f) - Terrarum.fontSmallNumbers.draw(batch, "${ccY}Dormant $ccG${Terrarum.ingame!!.actorContainerInactive.size}", + Terrarum.fontSmallNumbers.draw(batch, "${ccY}Dormant $ccG${ingame.actorContainerInactive.size}", (2 + 28*8).toFloat(), Terrarum.HEIGHT - 10f) - Terrarum.fontSmallNumbers.draw(batch, "${ccM}Particles $ccG${Terrarum.ingame!!.particlesActive}", + Terrarum.fontSmallNumbers.draw(batch, "${ccM}Particles $ccG${ingame.particlesActive}", (2 + 41*8).toFloat(), Terrarum.HEIGHT - 10f) } diff --git a/src/net/torvald/terrarum/ui/ConsoleWindow.kt b/src/net/torvald/terrarum/ui/ConsoleWindow.kt index 5652ef4b4..d3606e25a 100644 --- a/src/net/torvald/terrarum/ui/ConsoleWindow.kt +++ b/src/net/torvald/terrarum/ui/ConsoleWindow.kt @@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.dataclass.HistoryArray import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.TerrarumAppLoader +import net.torvald.terrarum.AppLoader import net.torvald.terrarum.console.Authenticator import net.torvald.terrarum.console.CommandInterpreter import net.torvald.terrarum.fillRect @@ -181,7 +181,7 @@ class ConsoleWindow : UICanvas() { commandInputPool = StringBuilder() if (Authenticator.b()) { - sendMessage("${Terrarum.NAME} ${TerrarumAppLoader.getVERSION_STRING()}") + sendMessage("${Terrarum.NAME} ${AppLoader.getVERSION_STRING()}") sendMessage(Lang["DEV_MESSAGE_CONSOLE_CODEX"]) } } diff --git a/src/net/torvald/terrarum/ui/UICanvas.kt b/src/net/torvald/terrarum/ui/UICanvas.kt index 776026cde..b76d8b7f5 100644 --- a/src/net/torvald/terrarum/ui/UICanvas.kt +++ b/src/net/torvald/terrarum/ui/UICanvas.kt @@ -2,11 +2,10 @@ package net.torvald.terrarum.ui import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Camera -import com.badlogic.gdx.graphics.OrthographicCamera import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.Second -import net.torvald.terrarum.gameactors.roundInt +import net.torvald.terrarum.Second +import net.torvald.terrarum.roundInt /** diff --git a/src/net/torvald/terrarum/ui/UIHandler.kt b/src/net/torvald/terrarum/ui/UIHandler.kt index 93307c1f8..5cd84fb0e 100644 --- a/src/net/torvald/terrarum/ui/UIHandler.kt +++ b/src/net/torvald/terrarum/ui/UIHandler.kt @@ -3,10 +3,8 @@ package net.torvald.terrarum.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch -import net.torvald.terrarum.Ingame -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.gamecontroller.KeyToggler -import net.torvald.terrarum.round /** * UIHandler is a handler for UICanvas. It opens/closes the attached UI, moves the "window" (or "canvas") diff --git a/src/net/torvald/terrarum/ui/UIItemImageGallery.kt b/src/net/torvald/terrarum/ui/UIItemImageGallery.kt index d9b3ebc8b..a0f486cae 100644 --- a/src/net/torvald/terrarum/ui/UIItemImageGallery.kt +++ b/src/net/torvald/terrarum/ui/UIItemImageGallery.kt @@ -3,7 +3,7 @@ package net.torvald.terrarum.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch -import net.torvald.terrarum.gameactors.roundInt +import net.torvald.terrarum.roundInt import java.util.* /** diff --git a/src/net/torvald/terrarum/ui/UIItemList.kt b/src/net/torvald/terrarum/ui/UIItemList.kt index d4ec6e72b..2a7246e97 100644 --- a/src/net/torvald/terrarum/ui/UIItemList.kt +++ b/src/net/torvald/terrarum/ui/UIItemList.kt @@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.BlendMode import net.torvald.terrarum.fillRect -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.Second /** diff --git a/src/net/torvald/terrarum/ui/UIItemTextArea.kt b/src/net/torvald/terrarum/ui/UIItemTextArea.kt index 53481dd99..493f40c4a 100644 --- a/src/net/torvald/terrarum/ui/UIItemTextArea.kt +++ b/src/net/torvald/terrarum/ui/UIItemTextArea.kt @@ -1,10 +1,9 @@ package net.torvald.terrarum.ui import com.badlogic.gdx.graphics.Camera -import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.floor +import net.torvald.terrarum.floor class UIItemTextArea( parentUI: UICanvas, diff --git a/src/net/torvald/terrarum/ui/UIItemTextButtonList.kt b/src/net/torvald/terrarum/ui/UIItemTextButtonList.kt index b7789b842..7f51602eb 100644 --- a/src/net/torvald/terrarum/ui/UIItemTextButtonList.kt +++ b/src/net/torvald/terrarum/ui/UIItemTextButtonList.kt @@ -3,13 +3,11 @@ package net.torvald.terrarum.ui import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch -import com.badlogic.gdx.graphics.glutils.ShapeRenderer import net.torvald.terrarum.BlendMode import net.torvald.terrarum.fillRect -import net.torvald.terrarum.gameactors.Second +import net.torvald.terrarum.Second import net.torvald.terrarum.gameactors.ai.toInt -import net.torvald.terrarum.gameactors.roundInt -import net.torvald.terrarum.inUse +import net.torvald.terrarum.roundInt import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** diff --git a/src/net/torvald/terrarum/ui/UIUtils.kt b/src/net/torvald/terrarum/ui/UIUtils.kt index 7490fe311..75e6a505d 100644 --- a/src/net/torvald/terrarum/ui/UIUtils.kt +++ b/src/net/torvald/terrarum/ui/UIUtils.kt @@ -1,6 +1,6 @@ package net.torvald.terrarum.ui -import net.torvald.terrarum.gameactors.sqr +import net.torvald.terrarum.sqr /** * Created by minjaesong on 2017-03-14. diff --git a/src/net/torvald/terrarum/virtualcomputer/luaapi/Input.kt b/src/net/torvald/terrarum/virtualcomputer/luaapi/Input.kt deleted file mode 100644 index 9dee6d8ee..000000000 --- a/src/net/torvald/terrarum/virtualcomputer/luaapi/Input.kt +++ /dev/null @@ -1,16 +0,0 @@ -package net.torvald.terrarum.virtualcomputer.luaapi - -import com.badlogic.gdx.Gdx -import org.luaj.vm2.Globals -import org.luaj.vm2.LuaTable -import org.luaj.vm2.LuaValue -import org.luaj.vm2.lib.OneArgFunction -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer - -/** - * Created by minjaesong on 2016-09-25. - */ -class Input(globals: Globals, computer: TerrarumComputer) { - - -} \ No newline at end of file diff --git a/src/net/torvald/terrarum/virtualcomputer/terminal/TerminalPrintStream.kt b/src/net/torvald/terrarum/virtualcomputer/terminal/TerminalPrintStream.kt deleted file mode 100644 index 88f16f5ba..000000000 --- a/src/net/torvald/terrarum/virtualcomputer/terminal/TerminalPrintStream.kt +++ /dev/null @@ -1,14 +0,0 @@ -package net.torvald.terrarum.virtualcomputer.terminal - -import net.torvald.terrarum.virtualcomputer.computer.TerrarumComputer -import java.io.OutputStream -import java.io.PrintStream - -/** - * Created by minjaesong on 2016-09-10. - */ -class TerminalPrintStream(val host: TerrarumComputer) : PrintStream(TerminalOutputStream(host)) - -class TerminalOutputStream(val host: TerrarumComputer) : OutputStream() { - override fun write(b: Int) = host.term.printChar(b.and(0xFF).toChar()) -} \ No newline at end of file diff --git a/src/net/torvald/terrarum/weather/WeatherMixer.kt b/src/net/torvald/terrarum/weather/WeatherMixer.kt index f3cd73876..92386611b 100644 --- a/src/net/torvald/terrarum/weather/WeatherMixer.kt +++ b/src/net/torvald/terrarum/weather/WeatherMixer.kt @@ -3,21 +3,19 @@ package net.torvald.terrarum.weather import com.badlogic.gdx.Gdx import com.badlogic.gdx.Input import com.badlogic.gdx.graphics.* -import javafx.scene.effect.Light import net.torvald.terrarum.utils.JsonFetcher import net.torvald.colourutil.* import net.torvald.random.HQRNG import net.torvald.terrarum.* import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameactors.ParticleMegaRain -import net.torvald.terrarum.gameactors.ParticleTestRain +import net.torvald.terrarum.modulebasegame.gameactors.ParticleMegaRain import net.torvald.terrarum.gamecontroller.KeyToggler import net.torvald.terrarum.gameworld.GameWorld -import net.torvald.terrarum.gameworld.WorldTime +import net.torvald.terrarum.modulebasegame.Ingame +import net.torvald.terrarum.modulebasegame.gameworld.WorldTime import net.torvald.terrarum.worlddrawer.FeaturesDrawer -import net.torvald.terrarum.worlddrawer.LightmapRenderer import net.torvald.terrarum.worlddrawer.WorldCamera -import net.torvald.terrarum.worldgenerator.WorldGenerator +import net.torvald.terrarum.modulebasegame.worldgenerator.WorldGenerator import java.io.File import java.util.* @@ -89,9 +87,9 @@ object WeatherMixer { playerPosX + HQRNG().nextInt(Terrarum.WIDTH) - Terrarum.HALFW, playerPosY - Terrarum.HEIGHT ) - Terrarum.ingame!!.addParticle(rainParticle) + (Terrarum.ingame!! as Ingame).addParticle(rainParticle) } - //globalLightNow.set(getGlobalLightOfTime(Terrarum.ingame!!.world.time.todaySeconds).mul(0.3f, 0.3f, 0.3f, 0.58f)) + //globalLightNow.set(getGlobalLightOfTime((Terrarum.ingame!! as Ingame).world.time.todaySeconds).mul(0.3f, 0.3f, 0.3f, 0.58f)) } } diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt index e9c258727..8748b975c 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt @@ -10,7 +10,7 @@ import net.torvald.terrarum.gameworld.PairedMapLayer import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockCodex import net.torvald.terrarum.* -import net.torvald.terrarum.gameactors.ceilInt +import net.torvald.terrarum.ceilInt import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.itemproperties.ItemCodex.ITEM_TILES import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt index 921309db6..372db439d 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt @@ -10,7 +10,7 @@ import net.torvald.terrarum.gameworld.PairedMapLayer import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockCodex import net.torvald.terrarum.* -import net.torvald.terrarum.gameactors.roundInt +import net.torvald.terrarum.roundInt import net.torvald.terrarum.itemproperties.ItemCodex.ITEM_TILES import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack import java.io.BufferedOutputStream diff --git a/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt b/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt index 7fc6f99b8..f5cd785ab 100644 --- a/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt +++ b/src/net/torvald/terrarum/worlddrawer/LightmapRenderer.kt @@ -4,13 +4,14 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.blockproperties.BlockCodex import com.jme3.math.FastMath -import net.torvald.dataclass.Float16 -import net.torvald.terrarum.Ingame +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.fillRect import net.torvald.terrarum.gameactors.* +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics +import net.torvald.terrarum.floorInt import java.util.* /** diff --git a/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt b/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt index e3384c2b9..17c59749c 100644 --- a/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/LightmapRendererNew.kt @@ -8,12 +8,14 @@ import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.blockproperties.BlockCodex import com.jme3.math.FastMath -import net.torvald.terrarum.Ingame +import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.TerrarumAppLoader import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.gameactors.* +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics +import net.torvald.terrarum.ceilInt +import net.torvald.terrarum.floorInt import java.util.* /** diff --git a/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt b/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt index a17ecda3a..447bc3b4c 100644 --- a/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt +++ b/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt @@ -2,8 +2,9 @@ package net.torvald.terrarum.worlddrawer import com.jme3.math.FastMath import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.* import net.torvald.terrarum.gameworld.GameWorld +import net.torvald.terrarum.modulebasegame.gameactors.ActorWithPhysics +import net.torvald.terrarum.floorInt /** * Created by minjaesong on 2016-12-30. diff --git a/work_files/GameDesign/MISC_FEATURES.md b/work_files/GameDesign/MISC_FEATURES.md index 1e49c8b68..dd74707dc 100644 --- a/work_files/GameDesign/MISC_FEATURES.md +++ b/work_files/GameDesign/MISC_FEATURES.md @@ -4,7 +4,7 @@ - Players can create their own décors (hang on wall), dresses. - Two looms (16 palette mode, 64 palette mode) -- __IMPLEMENTED__ — see net.torvald.terrarum.gameactors.DecodeTapestry +- __IMPLEMENTED__ — see net.torvald.terrarum.modulebasegame.gameactors.DecodeTapestry ### Music making ### diff --git a/work_files/graphics/gui/setting_audio_channels.psd b/work_files/graphics/gui/setting_audio_channels.psd index c1fc2e387..10aa6b16d 100644 --- a/work_files/graphics/gui/setting_audio_channels.psd +++ b/work_files/graphics/gui/setting_audio_channels.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:329d283add664debc4b27f64b0a6900ee8f2fafc01c822f656254b93b9862657 -size 98576 +oid sha256:6c6898314c1a7bd5aed9bde1088aa388f2f80980be291b166227763a3ab5b374 +size 183355 diff --git a/work_files/graphics/gui/watches/poketch_prg01_graphics.bin b/work_files/graphics/gui/watches/poketch_prg01_graphics.bin index dcda455d97c38fec0b348063634a94eb4d5a433a..433fe6d296d9fae940461c074e515215b94be7de 100644 GIT binary patch delta 180 zcmZo@U~J&okib|k5g_~-1QswXU;u#+KmLOOm;)s2?eX&kfcigtKLH;rfKv**um2lBi$@54Thxjnz9rP*_uR^JztrlC;E>O`OD zVVWLwQPqEk*8y=3tGoG$lqqr4$@xCw+Jb_>eos*~Kj&VpR&i|gIIijue@owdU+8E3 zhfaQ@8?*V{`u-2UDEQ<(6|a=l^CMq#o=&T06SMh(pev*l-P75qC*8*X_36$Z1l9Z@ zslsf23ah$s=XdUh?@x(u_QTbcs^%w(3p>_#_N(mf>;3yx-0taq-1&Y6*F@c~^}pS( znV&@Wc>ivG!%v*;kGsF_eC~dh+jZ*C-LF!o$nuGt{Wdy9U+;fOJI{5p%MJ&7GS9;y z+a)?*Z{OecS*91sZkHL`zrAnQIXk;uve2`5^}5_7$wV&}i^SMw`MQc{>~KI&)HDj` zbFIC}WTFe3&%hHz)r$_@+e6%7~Z$9>O2Ft!Sx%h+lM|onj7U=weCOMwi;f>GjJPc#(gf5 z%m$P%g&-oY)wsB)47DP{kzebZ^OBP9paSjuMSrhV7X$K$ct zQ9T%rdcAU6Ig~5a>y3s3oo$x$Fy#C-p1ZIxoG&+-aXIAe)75h{m6D-wU1QVed6n+j z;Q-b0?fT_$rW7;dvc_hQFY9g24)-NKel2-U+%uOwGw#cmWaq>a1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; bKmY_l00ck)1V8`;KmY_l00cnb{~+)O=IA8v diff --git a/work_files/graphics/gui/watches/poketch_prg01_graphics.bin.bak b/work_files/graphics/gui/watches/poketch_prg01_graphics.bin.bak new file mode 100644 index 0000000000000000000000000000000000000000..dcda455d97c38fec0b348063634a94eb4d5a433a GIT binary patch literal 16384 zcmeH{zi#3{5XKD?Who*SDGf!0Bk=-}+@xZ8lglF@U4wK;Ah~eKBP4IaqAODR5dum< ziIEG4V(`t{S-`6#CtY>LH;rfKv**um2lBi$@54Thxjnz9rP*_uR^JztrlC;E>O`OD zVVWLwQPqEk*8y=3tGoG$lqqr4$@xCw+Jb_>eos*~Kj&VpR&i|gIIijue@owdU+8E3 zhfaQ@8?*V{`u-2UDEQ<(6|a=l^CMq#o=&T06SMh(pev*l-P75qC*8*X_36$Z1l9Z@ zslsf23ah$s=XdUh?@x(u_QTbcs^%w(3p>_#_N(mf>;3yx-0taq-1&Y6*F@c~^}pS( znV&@Wc>ivG!%v*;kGsF_eC~dh+jZ*C-LF!o$nuGt{Wdy9U+;fOJI{5p%MJ&7GS9;y z+a)?*Z{OecS*91sZkHL`zrAnQIXk;uve2`5^}5_7$wV&}i^SMw`MQc{>~KI&)HDj` zbFIC}WTFe3&%hHz)r$_@+e6%7~Z$9>O2Ft!Sx%h+lM|onj7U=weCOMwi;f>GjJPc#(gf5 z%m$P%g&-oY)wsB)47DP{kzebZ^OBP9paSjuMSrhV7X$K$ct zQ9T%rdcAU6Ig~5a>y3s3oo$x$Fy#C-p1ZIxoG&+-aXIAe)75h{m6D-wU1QVed6n+j z;Q-b0?fT_$rW7;dvc_hQFY9g24)-NKel2-U+%uOwGw#cmWaq>a1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; bKmY_l00ck)1V8`;KmY_l00cnb{~+)O=IA8v literal 0 HcmV?d00001 diff --git a/work_files/graphics/gui/watches/poketch_prg01_graphics_alphonly.bin b/work_files/graphics/gui/watches/poketch_prg01_graphics_alphonly.bin new file mode 100644 index 0000000000000000000000000000000000000000..c1f12b7afcb3f53e3dda6716694b701b34cb119f GIT binary patch literal 8192 zcmeIu!3o1K429wDKh+ELkb`M9DAo+V3fjoBNV-D#1%bTCmcnOhP3P0vXI7u@=eM3& za_`+;`pxc@$E@o6s><&*z2?8#E&!+i_g~ll#WVeoTtex?jm| yeOcVe^A8FE1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmdV16!-#>A=jS( literal 0 HcmV?d00001 diff --git a/work_files/graphics/gui/watches/poketch_prg01_graphics_no_moon.bin b/work_files/graphics/gui/watches/poketch_prg01_graphics_no_moon.bin new file mode 100644 index 0000000000000000000000000000000000000000..2f17e7c5c3d6f8074abd8253ce1c36f5e0b255d6 GIT binary patch literal 8192 zcmeH@I}*Y$3`8jznzVGBic4||d7wz)K{o)q$^p`P0$$4^nH+)HEu5_Nv)=V;x^=zP z^=V3?8d51D8y{39nZJiIO3hI|*J+yOD)Sk!O}zQqKlFTf$m>h7 zI{%(eV|(y$S?`y{{&5~_d>D|j-i7{l-1z($EsnRgc|E7@Q_^OC_dZ_)yUermDP8Vg zZ9864e8{R(8`Jof!eB9;E*J5~~_1m8ZiUdf21W14cNPq-L mfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W4d72z&wm3&NuS literal 0 HcmV?d00001 diff --git a/work_files/graphics/gui/watches/poketch_prg01_graphics_no_moon.bin.bak b/work_files/graphics/gui/watches/poketch_prg01_graphics_no_moon.bin.bak new file mode 100644 index 0000000000000000000000000000000000000000..d02b6370e807fc86bb7049a1b93410196f6d24e2 GIT binary patch literal 1536 zcmeHFJFdbo5JZ~7?UT~ba|9p2S9lF4p`@U2;cHOm8XUmKNE>MzB#PiqHsBEn2Y7Fq zXfxi~-}HUo9}{*nrWqPPq(Wnn`aoj?5pSH+82G?@k%c!cfAgJ1(omlD0hdcGJSab; z+6LBYK0>RXw1;7cQTZ5KKBQc1p`NUZQ*#mP>BzO21R`RY0R$>>S$mTHwg z-Q1N%Uv1kJJMN=PwH_Nh*zDL&I<{@wM#r{o+eXLg*iOf`(Xs8kyU#g~?sLBHKXC8EHH3bq0%q#D}psgOhmu7 z22*Nk5>_w;9hp3U8Hl+ma+tx;9fXi2Sm6AZ)Yc`_%!KlAoI3gf%Z_a0JE$P%O+z`& zIW4Vd9auPc(qWAGQkxd%6XuLLZf_YEjJ>(JefWrode^L%FRxD|1AGcFwAq{S7P6Dp z8yQZ&2aZu^c1}3VtRc49E>MWhJIu z_;iPTW8C14dyM)JU5980V_dMCF=KjQ+@UPiP5L!h=OWjL?A_>kG%c}5Shy_U)u=Vm z!pzRfmN{6@&|A0%1m33N5EMdMLowS{U+r?U0?{}>{J5ZpZ$GL{yBO_HxK`=wJC=Qy z`>1cax^H2DfIdEef#m*!02-9(h;9L>mIA~#G=Knf?TsxRXlZ_b|6kz$FOK$qGrb~S zTDFf4Cip_^HRR{R{CX^cfTRn*SQ~+ox3Bmbd_z;FM=OCvZwq`(zQjitT{6#QX7>Ry1Wdt1-y7=OA>`HL~o!5z6R7e)FW3$^5B6$b|IB zFey4jl6&W)QO|TWn&sBd3fWiw^K#ff0!e?rvSYUq`{2#Ru)1!t814cy=lUIAQUT#Gk`_z#t1CB`_PQVb zLe*TQONkzzzqXxQt=FK6gQrmAk+=|=C=`{04=o8sL{@SC!{JWxb>1xYkld(FMnRSQ zzFBMBb`v-XS+;>LCB(}$X21TS;q~T5XBlQd%tpJ@;iFXG-p`Nqu?+X%G2 z-(r#7Aoss1qvNi)+Rla)*}aFQkg=+H{w}Lfst0*?%jAAuEC-QI|ozF0lR6`n$SHy1Obf=r5qc_Qwv^b4u5&4CJ z*Vr?&H(Bv}&`mPv+EaVv#eo*zB=QzPy*!(7vlMo?4v`9{+jBk651&rYGL9CO#z#_N z`GL-$G(0x<9K0e{z-Kx`w12^bQB?N7 z`r4;4&~U*|m9jp^bWcBbG*r{gxLGstW2&MkMD85m;^Cf7kSWuF+W)|v*vq7 zU*ov(SK@3^_2faO^tZ&FiTHTcDTxnXLYPZeyZ8a|nf3mBn!*E>fCGmDZu`f8H=kc$ z^(HL>j$=LETfQV4DmvDW7e9g~_l>OkRf}5~^B+82PwPKPlH8JQO&s3Y%gs~M3qm(4 zk5&!yI4iaM`t)|Gu-b(Hq&6fJsC0XDf1gu7R;=y73)$(^1##YJ^g!ik)(AQvzl^uE zy5)^pR1KXTUE4)*jbSSZNNSRh>7%mVHU`p^Cf)0*umc|ahNvvO8(`JVa z#aq|xLom@L9U2lr2>pv`J<<3?^juYaH353faX&ddPU`&o19zjLL2jOz_^OB%GTG3< zdzPWct#Jy{F61xJVs%pv)<&~jsyyh-N`ae;kP=3^DF1-`tT0QFl{k?&kgp?WU^iOunt_CC*R}u zSDFDmY93QNcAoUfOvwVr>q*Ds>$pZoj-8@qTHSF$#_-miXTIQRE1z$xRt){E%#+Ng zqOax&+d;OL%C#JeNqL**sa)R^Pzm33IKfbkRQNje1?o>zfOiprums&udo&B$eU@zS z#~Hiz(yA_x2dY)w+Fi8b)KCv@3HkXUb!?l}r9qn$(?w~zKy;-U;4l}ZFomZbR~8D5 zsepVL#^UBWkHGoqY~2HT@Go1V4{UuqE4`Q=X35u0MY9MWlXZ%WImF)?ExG#I*Pv8xwe zc?+-}Ilo8p2hibC+qUPcOSx_*CNSj(ia@y+PZ?QcatWm4DBEI$#t)2Q*O%7yNfq6H znbFjWQiupf5ircN75q#WRVO7F&f-{c?4*dp9R7{N90b;Bj(laxZs%H3$WD;g9A(^b z4g&MIM7})-Zz?`2l^-Ii)M0X{@X(qjHd zk`%McB9KOyrEdZx;a;}jBJU`$8XVvF`pnNpv&6b;Iq^^TPnZJh0w!`B626J>-DS}b z3#RQ^Y()O{s5UG{A6^*~^0;C1gqzY*3dESc@u#9P7!s*!>)}=P(LPN( z@cBvteUG5;i?+AsY@c6Tb|4y+Sil-6aromUS-_ea4Gp^nhY&cUytojB+i=`+)je4D z^y6671v8{*eG82!QE#1`TY=2tHBR;BN7xjOyn- zD&cb>WyA!qJFL~RZM`WQ6Dio{3cNI1nOGx;j6FFoI1(%vd<`{eO+^1HtSXhC?C`lW z7Lo~l!PCZ;e1W=J!QH_ACB+$@Ed=O+CYVuJ85f73D4!7yBE)y!+fY;d3EDY{Ql)c? z#${Zg-5^y($qEsf7SDqdto$e8f)WBfF|P@%s&K!X(+3}`G*TqpBU8fRyF-4`%WVTy z>Zg9s$ehZsfvui$1V!lj$fiJUY@Oh5P9NXZP=U*@%kdt=80dvfRUS4URW!}qJD*_2 zW<9^&=ebcGy-X{1@y<_nk9bv=UUbJS(N2?7^Ft}}#d?0#V}*IgTE!08?{Z1-rfZ8> zo9NDl;m|>Q%IeM;F<2n6YLD%t)Z*|; z&__YYrihsPS{37evVG-`lzbhioJA1x0seRS!igu%ECG-&A~AnUM1SN9M^j@fW73?U9Q+3UVRS^_#+FM?T4$e;Tx{iJ<%Vn9BQ&NJH!aY07n9AX3CK1MsC`i9}uDc>R zF-cu0uMWjk=4v-Q7=h3<;P2oEYI?Idf#3fQ zhG)5qlK6hW4AcHuIFUF6>o6Q|u5aFSF_xl0wc;}Q0v5Aj&CSo>Tun9Q)L;auwsOJ1 zF{KC?NDN=tpEz1=;tC}yFI-S)n4Dw+H%(a1)gh4%ZahiDSgy3s=jmoHDI8*@N9;#( zyD#LXX}l*kkIb-E{km*Vc{zVJuZQ#X<%(`=4M=> zBLM`-N!5ZSpmRo%HmU}&t+G?eh)dhJvD2*Y&^Rv0c|@9<1QL-T4`>dtss;`iB1^e$ z0r^6?7&0}sdyLMZwZ@Jv5cE5(vV#=6mXw*C{YQibu*0#Dkph&FRk7&Tb@hmWN?5ha zU1yFM4N(A7Vo-iQ$uv)Q0X_e5EGojAeZM z*_)QNWcAxMW~%*rmu5R;GnjpI?v)b=&;CmK86wE)Mc)MW#Bo|w8Blbw7ECJtmlq@aKn~_h@iH?_sx*ZqVBHx|%A4|Xr%gL!v?LMPi(r|i zll)01>{elqc`~D-rrXbC^f%#CuCUERMnP%w8QHk7BA7h3H$~LJc#6!Aa062%Y%MN0U!b2lzor-DV-;jeABMcoGFkue-5i5mnkj;PR_+VC#md0# zoAfnixd9Thn(<6!BW(Lr>w?5du3Y7hevBXI7E%zH4f%`#=|=4oeF{HrR1#L$X&~yw zKs0w6vxzF=TvyZZPGwXpGx1eUB$OYI`$FCU=sWj!z1>1_J$n5Y7!UU=+U*~(q6M4QY0~Zk<#9(O2Pal(=m7T=H76j`nALQ?2{A~VR*Us z{j@O2thu_bMOZK@{MD#B9#tC za<>laA9GLv)}?5HQ5(5v&*KYQeka%zHH)PoI#V{u{^sb(?YV?UteQo^s^w1YBHx!E zIN-01VIsK_Vz^KdbOtOQYycVRzXhCA3ujRjz>=F51_%iKU(0R>Q)6RC2iiX_48Idu zqRO)MDjSLyp58nERJ$XF#SJP}WB5wl6biXqecF*=EVxL%C1HFC!4ccji%xtp)pXeq zY-}J$I~SJ=fg2j0PWYPpU?j2zjn(FrC3Fg;w0Mj5%E#J30M_cx=Ol^|v#^x=ulx5Q zmy^7x;3L_OaEAJy1cy`ZWkSu*Te+6EKih?1PHZzV~6Kf(~4?YTG!( z>{DTXo1{)LF~x(ndAN;Cx|-$dj~*~NbLaMqsh`a^rf)%pF1Zl6&-clv(*Ng%Up3}Q87O9^8z6;9Yv}!&K^+O{k6Wj7 zVV!)7=t00}q7s(U2pVh6=5P_!XVlS~`+_ot*IXz1AN|rgjrdhoNF3DjrSy@1VhL(` zTq|L46rZtIx6vHOIv=o{v3GHzH66%^pY`iz`z^RNpRNggx$9o~MzT#6=@si0X-RiZ zscw-VJ!)j0DwMuv>oprONV;NY_RL8mopj&h?l{NOtc3c^_LD@8CpZL?SpfNN#oB#( zNr+QsIOO`6YyFl&>n{I9hiRr{d%Sp&g=IS0x>>Diky~-t)c)$DG!}Y7aXLbz<4~kv zzlYw6ljiCAQ#%Km9yN2i$v#Ae@*KSA8yz;;mm1b=M(4$Xri%@bi-iKek9%&Qadjqm z%uL0G5xlkG{l2cQj}vRrX3&f4zRicLrjU?M!?h^it8kr8X3sa8-mYf}oh-o<2Xc-O z7Mzlo!p5(aAEm)fKfJ|r(Kyy;`xH@`imXi?H@hj2H$joqSQT=}ZYC*xk#uJnNXi5y zlppe6G?uiSL}z52M41Jf$>~YT zq8aDOd!&aP$$qiZq1IXXB5J+FDDjCZ`JCm_4_?}Oz;X3q6y?7Ixy3(lqP~peNAdv| zyRR2%`Al)Vckq8@#Rr>;68zfKshTiAhzg!y)SsKf;zbqc+MmPKvfi+c8W^Q$@ z3tmqv({Mqx=cO9J!L6YFej4qC$7Nm6H6eCA87R&ktH+Zs#{N_I?Aq6W|HS1!+rkSD zq}Xa~^yVJ&@3_=2;P&AZV7VGV#{B>Fz#okIhX*R+$7KLJ2)-9$?SgxpcACV2Q#0BK zGgWlB_>$`^`O^7Iucv2_D{zkKTXhMBn(wc}Bj#_+vc~}oFX%7;HwgC(Ooa4wpWGkq z#H7%-^o1|AH65x6nD3klaMiL%pNM?i>@N6$X`kkYZ=uDxqSIH|avF`#mTzTe zpUgznFPF3`ZC3ZE4Se_ASy3rsLZ5d?{hYWSKum z7A#R$O1=pogzV#|4}9PIuv~O1$os(e~Y{?w@h;$IZVCuZZoD0PGnA|2BNzdiIoG zh-Ezh|5SMq9O9@RHp8e_3gP9x7_Bx!G={P7!;9B}%d4n_Cyqp}QLhyj<(sVG&mTcC zqbGgH1(9e4PtO2tB+e23&AzzY!6FNz&y-QIBxL-!VH;(O60D)Tbj$%v~}%U zOa9Q@L2r6nctOs+gNX5&ep`z6tI&OiV#5;FeCo;Qh%4#ahz)vS=H|&JmJNYrvP3-f zlJ~h5V4=OinO7ki^!ei=^-rOV=+h%I5ntB>6cJFCGc3@Qe9~miCtydYvM2gJ(t|@a zCtn6;3lG;ja_^56av zOre{w0Bn-rnEpQ}ZGX5dF-y~CRSYR;6K&}O|Imx-1a-*&%)jDyd4y4dX#3jh)5FQ=*18n2U(% z!y506_9{5EwukWyOSiQ%T~*PigLgAW*G(H0c;oMjDbst`*RzLC4PIC(h^Q|y{Y%_D z){9scP48E&Zk#Io_Zcbk@>L((ZZF;?1szqqNas!sAMd+wF?Z*8+QE;FUdy;XDf}S; zi+8;~?yG02n>t1tJ~1ZcPB?9^0YN_NRS#`_=U1)-eNkm!ezEJuREaXotdIApe3OHD z(d%++$JvNMGw|ldUSCfHzTG_AU(CC^=&`$#w$x!c+1=+~Fk>Sh{8+Vq=s$Q<3q@lu3>vq6sqoTQiqw3uHzD*ZcUA84V@F13RbbGN`g^DeMg-XrXwq!w^ zFh$rrsRj~bst|X&v|sD7Vzn~jzO(DRMyX_-jFuhdf;mo$LB)`5VZOM#1Sa>q>)L2O z_Xg}oDjaTdU&gedeD5_p_mV305=x3%vcl@jaa6;~0uL95FuIo`Puz4VN{+@;l(;u4 zyuEPncLfyAS+iL-5*4_*RnueXKEr;Ky{|-{hzN)fiRg(Si71FLh}enprR!m}qDxhJ zZ#-1<7QPBUP**)xr1b2Bvr{M)#Rio{Y%%Q6?=W5`#rej?#)ZbE#s$VD#zn?uB2JTP zsPEgC4a2+r8hWvd83-PBOAlXGw1**F~>Iuf?!Kx5KzXzruj* z=8zrcLaEdFAN}r4I?y~D$>NPqy1srbD22<4_Y0KakeI2W$DqLy`&qb4F8-1kWJyjF z8;i517=O?2D^TpM+znTH!VQH~vnZ%Gsy3iDqBf*9#!gR$y1!JIO)t{U-!9xP*e<$O zPpz7{Bba`!HFgtjwSiPLpePeATtio9>Zql>rwr@1vTtyyXK7%mZ)u2)ytwY>D5%*a z(5`}xy@XUP%OF!f(~t^%;bi?pHC38S&T1DQZjfdWcaUe$ zkG%omArghObU-ajFY_N2Eu?ABU|*b_p4K;-hEH1)4>spJ$0s^YQ0++q0o|Sr>>?b3 zLvy*LyQhZ>F9)xqPXOtg03pI=9AxWZJCma8!?BM9?Q>s`klcpPA=^N6{)B;Qe_fM^ z)Ex7bsv5_1T^}54$d1n0f(n+IyFG;S5gmLVL~xDKe8HC#eHRXLkYZ5X#Gm~fA7F!y zmc>Jfhm+aH#^%w$>LYR$XFsaSDmo|gw|S=wRE}d@xL=0YVp6P@@p_>iBIrZtWa!_s zAirfn?z1HVyy#(9x><0Z#5h&ONnew^`&G*&l)9pk-q~Dg5`Mi33?BTN9*($Jne0yo z{vLppB;kem*j+w<{f_;C3lna0ou79%&h}E;(Y(9qf|mLXQMHPOEb`6L(7c0vpf9eF ze*M9}JKxLpm-Q!7bVGR{0P~?;N<`PcGM08!>z+6qDZG2DWX;CiEYoVks;u)>FDl_1 zII-%dZY$EJGP$yK#@OY0e{d!k{AC4+cY8+6-gM!s_|f$aa#pSa31*X!A>{}U;YgC{ zN;p%|ODJ9FE#B7%T?^jMUs6yl-u?K+8wwIr>I8$RgDitGQOi`*^IO||zX!PkFvxV# z^fD-F-gE{C*Y$d|i7R?zw zT4MMABM#`kqwZuQ4${j|_Z*|_!t7!j_SEQ{c<)aJdJxSmr68%DK>bJqDYN=8Lf1uQgprazq>X&0m8UOFr-FT zvDlGw#JHUe!F*o?a=r`YV2I~Z^V=Sau_&*#o*_0mGW4Bn`5$0oOG7wF0F!=9fHb!0i@po8ThG{2!PtWxf&^pXlym>X zQliCrS+cu+A6}@-AFy8?h!}>>K zih#z7|KE+BI9-^`OFwB#%*~}BSsuGEt2qJF-(hik&E=ZqHhQZDgrsZ%`k4UJW*^py zY0zF#XpuBq?6>-wAr#Mr|=-Gn&8Op4iQe_q*YsVfnEhb2LMEL%iMY zOpU)#&(?ra{?EZ~VYnWyzn%skPc@mh7K)F1&;b<<+FY2MqnLo^u@-W+*$<4`<5lGD|Z2*>b!zJ{93IH&(l zcsj{ChhZ>NpZ4O?QunY8u=TP1MuBR3P6p#IYq*X(9f_^X7@KW*^W%yCpxc^raax*! zs$g{5um7sH*p?H)_=^V4=@2k3ZM~Kfe&$%<0D}ByFaTP!1GIL#!!Rf*Nhd=;K{r8< z3S;pl=kCTvqUC&3E=NZ~Zs1QC{H}&Vij@{K|C`;xBW=5XgXiDiy)ho?!8(@#hzN_* zbv*!|{h5cV>6Sr0JD3x|p>O-rs{m*e-30vr9Xj|<BI{$#)cI*Npd z`M)xVoOqc7f;(Bzf|!iBVf)y>we{dlGalK-G#3MC%jIP}4sgrW4)PmrMoUy- zXAe&Ig#?466907PNz#Rj>U`v;vT&9Lg`WqPcOe`Ar=_$p^Z!hiHRr=s(`~;&{%=-Z zcxR7QTpP_1J^Y9mwK(%RJ+6#nrFo+e*qw1Oa@e!ov){AZb3nD_Il`U-0Ip;;@e1_Y&z2f!rnzF(cn22l zSh?fm4=EzF`hZCa-^z%rU#4V$?`OZ>fqLM z1%^?5JRH5pxdJ}jW+kZc+)#27t@9Z>EQTQLyt|PvdHp3x#s?cXMgP_ z*SaaO+Y8wP?>A1#rF?#MoBu^@CBz!k^HF+d8VreZII9i+tf+C{)@C|!L6bkx0Ensu z`1om7Ku-Q0ANQ-E3x67W3o!P$bfaXgicC;^y;fVcc%+%~4=k4YDk1`RT2maVOHI`rc@pGV%NFCnn?@Dhl;E3u&M%d( zI+9PNnXB6`);??1jiN1q11jFU-!6C~M`in%@a|h){`O=5HC!2$D?kPO1_}g(@~5ET z0MK`gjT9a2e=A(ScT@tEHf2}o5WI8hKeiK7tdPv~4C$1u5P_kRG?voy&*sIe8qy3+ z?t^ANybl!k>?zMEuHPQd&)aBO**waax$G=4l@DNgYehw;Qg(cKy7-_Zmi}6GSLup_A0?O0hPk4UJx&y_6Jo5V!>{M06vs z0KuqUL(mGz*v7#`VunfxDr@{@ce>>6CTT+){rLc_Hn=o!+cB|`fT;~@Lnxt}VAXn* z_UbS>Jqm&9?1*k!W6HLBIrcB_46!?L+_2%iYl;QJVa&7$mV&Rq)*gy;5$tKH!4aYP zwvQ!hxY(t3LB+>Iaa8?0p{)>Qhn5!KE6_egX)1zMu$@=AcE@u`Nx4(I2F9!vGnCGM zQPoyBo|8agnq+uIF}av}NLB3o6rJXLND?rB*yIvX&a-xP#g-#rtbR(IwrBtx&UO6j z6IZ>b!$No=tfkU61yodC(uZDGWW|8{X0?5QejyzEY8J$L2;_qy&(zKJV-0qFuxmzkkZG|1Q90D)#(7f7=1S z#0$|{-KgkF5xF!lmD@+74ZjMGP=^g&LmZ%h{BR*UY@Y?f4Rh6#E7tMQPiFqWcI1ac z!eJ~u9?_P`XclOd#6I_Wk#k@JpUDni9MprUe&cfVXn1osYHeQ2(ZbC@NLQ6_JnnHZ zL^+yySOn%`B5GE$qCU4}78X(=%!b&2TPL0EGr1Ouq_HS@^xzOg#?$O49l+2YMs`E? zLL9Okg4i*@KA$)5Kzus2*GA=t&YBny}1kXOrR1s>-Y_U$0`vs+2{O!WTK9ZLSBlh544iNbc_axV zs4$Y855FyPwjvhwnOeP#gg#7=f`MK>Bu}hNM2(&TVV|`;LLCQK3{igW!WH%)y(asl zMcL9QP*xiFSCR`_v3z)@C=*oRUT$>KLqg4}Nw@@D{^y=Akt;h%r-7~ld&=1=dd(D4 z_Siqv#_#IachT@Un^Am29AtR+Y75mTVc!Ok{0CD$Z#9&Q&Zp0Rm0GZIWMnp(llu8! z&bE5I)8-CA)Vq`#s2VyxG8&h!A=hXT1$Swhh^d2$*DNg4+c(&>`R zbom_CBcuLK@qxl%ccVcKjU~8J(CZ-wYkVO$>q{)MxOT`TLOMUN1S+eazXu+DK%DXM z=e#*qipHfUAxC?-f?=NCa#;95#)X3LyUq3kds}TsLkwL%Xa~EzYOMpPNT^m{qGO7~ z#UbJXDiPI(ZXPjKWU6Qc8m|CvX<$;=3iJIF7q#qm)HpK>W^M$N!3;7RQsh}J+VoHQ z<8b7lxzt`j>#>~X*)x!rfU}xJ+h2+!*(4<3$?4&HD{k?}>f_?7K8g4Y3JALeLJ2fa zLG#lFf%nP*DNZ#^)9au#3fYrv?2P*|l$B(aI_)Py&Zi`z4`oMSOM_975<_LO@WpGj zEJ88G;*V7Ku$D4`*h=qlAxKrQ^FrkNDlSD8ET>aLW5}0-aUw7?z7tIzfmD+Yb>$#V z_*rJjPYCWcZTfJsv77D?-(l$?e)^QOvswz}>znAL$e6FheyMHRjM{N$nr5n^2JVVcnAiaHWx?^9s7opiYAj~hwijKa7(%h`Y^`Eba>LwOMNxQH70F!XG?75qbGd6sb9$yS5zQttY;44**||TT9iGUcr1?$ewQzzw_N!8)+67s^AO@aYQge0k^8QW+=2U} zxWE8aOk}}L^0w5Ff(kzQ)=bm6U~=ozE&FrhZP@hk<(dY}=FKMKRu|9{t*iUH#pbAw zX25jz2bT}p`wd>o$8E8B)Q9D$^((6@#0Ti6{?k%xhu|_T-kpMTm*-lmI3~UqTy`eU zh35CoHs>{ostDny8y(IC+!W4}Z+#7Q&h^x7b_bUPYi{rTYZTvi2U=vNZnv9sxsK1K zZdSSAiuvw> zZFK>Uz8LM7v-@cmg5CZW*>+C_N!#A&DfWhJ_vd~e8v_T<4=FNEnt^eOEP>!7T8$CT zUSzgrok?K3HuntbE&c;S2!H80?gxw@LvMr~PRz?ewlZNT-yg%(^RW@SZ+4riyHk zpniY)B|9yJ@+%%Ku`tI`Ba0aWCo+pL4-N7A*S)V8qN&P^$7-Y8PU#KB(%jPc!w@Or znEd-mvIMgu#j#)mg(r)|TyNu$lLhNY*=<>a{xrx6+4#QqS;g&cgIPn_SCvov&Zddv zCTZj+Ei8&)PZn_j4w-|m;r=?%Z30spgWF&B)fbUneaS~Q@8$T(Y)^yI?0!Y0aCdGfTxQ9m%^%5{7%(0aIK90%erzPrQRhUEt5l^?r%f z@E_O-@hPcqtbWOoa}q2qIwg+Ak6z|lBNVZOMIEj7)UN3s+h7=3!@*kOVe!1NZH|F$ zk{r9Q-NsVsJ~ITymgUO5v@*0*vqpCWdc0oJL#w%P)w0xub9#q_M+)~E5FBOXU(le> z-iSD=d-n8b*XOoo8?Y^ZvSv8(ZEOdSV z!g~FbjiF~ncN(h7(unUa|5J;tPy4RPRjehicSuR|z00Nj*Z5Bw&?&HRTIyTSnOJ&N zG$sC{D7II z=Czk9@=+Xq#De0DDk=(VJiF?De*RF#{`+Ie+3ik6S%4#5E2RH3>;LgI%O5*~ry5p( zr&$o*zb5 zd{`PQCXDEYJ8Gu1Am)#sfl!Y^#L7~UJPGE>lZXzf#HDGpcW_d5x43g*)|W$q#)UT z#G`z0>8Sx1dNXaj1%gjhzLIBlM8^zO6DuwimqgdE1@xK2)dYd(fgwRo_-Fnk-_6|m z`QA>Qc}D!;i9(Hazx(eM%`(}E!l}^pw^#G7OoQb3VKGE9Ft3rwH4UhYkq|kb2>phs z2-%^#e2rO|CQH`2ayZ9;2Pu8{hJzp~aZUvk9SWhr+Y+T*=B-W@9&#FGpNK%KHIdqKvHOS|yK`WU;uwwYO1La{ZB(`UhEjV|D?HTi{{fpwnF zcWZn6pfhbv3nM^gDB8-{!n+t03$jtgC|!cYVpIsx4Ee$wG2L;u7Q~);z8%xK?262K zP~10;L(tJHV>P-Sl+}1ZY&%j4ql#dY$iyN;m<6JnI`d7S-i;87@CJcMkI=A`>@(r# zonKTvrZn@C+TS(<cpL0OvQHb8#fSftI(0w|)e>V4A+B>?1#ZmI6CFdX@ zb}La#7dYD5=w+^`k-0zv3z;$4OWcWJw9ErnUWzl+rtz-C0CB94athazT@G+Tn6w0X zSRA0_%ha%ps4i+oPT;Yu$com#TMh()vBWYvxdK}cWsMV0oN)n_yFjb0sv^a2&+Eaw z^cfRN1e!5Cj_k|qZ?RZyS2G5bpmzY3`kuv+i-EoXpL4&p`Bh0iZ0wA}iDA{NeyRh} zgdKrY=XVrv{~}9Lc>PK76L{IoY0$H4CJsjU$Ljz}6iS$f!}_aSUBbx;CG zR*P~jmG|cGZT+MXJ2FH{D)7b&ZxJ?em={Tw<|BnwZ0d>I&!xQ(V zzVWC*Pw{toQ9qKtAPLelyN9fb<_keRd8<-fH>hR{(dDXDce z$1=w8xD~Dlx9Nhn|$!GBadBtg*#>s(7D z=uJiQA9-;X&4nR-aRF8=fTIOB{PK|3AbM;b(QZqUuNqG(&y-IIfiDSK3&V278cP`n zL}-)5^XUFaJ8{8wBt^SxD^Npx_FhIp-0$g*Rxq^1nZ2p#*l}Ygn!$P^J)xb^MX(Bg zeZzlW9oX2FuKl+wxydcj`d&Z@72tRb*`H3Z1t>|5#`cQFj*fpEn))C2^fU%$)~8D2 z5^Hkk+>EtnhsAIxYmV}TU+oTI5=z&V(+Zs>W&(*Bo9*Zw6(AyqV}*o@{2wuS#8POq z??1IV6AXac7912aE+ywhZizge|7zQuG8V(y;m3IQ^OxI|E1e zBVqW^^PFZEySici_~opx;3Mn0a4D0v8F%YT&<-Lc-BZ;!w>t-aPtM1}nuy0}!MQ6q zj*oZ_Of6QqfUqXhI+X$pwcQHDS)+9$C6g*fo2jNW=4r}08>3sP%^E7lU2<5)FD-BK zsn65=5Th`kX9E&M^fMoB$iucdbhfMyP;rGz>7oTyew|dS`ovNB{aX0) z9r9(2#(4=?$>gYRv&4EUf0Dcp_dyW`;vMbCmNpx4m2`+lWbffAkVDp~E|VD}-3Iz{q4FNDv2B57i}27o72Y5%zVk=i2_Mt`4^YF9nxRqI3p z*Dwu=&qbv`LMo%o#oLO9t=(IS>!A2`(dHH^FiapiIaX!jLZtR{DkJbl(Vj`k>{%&UBZoJcb^G{?dZzn#_y!Hj;Obnp9<0=g`$8lp(L?s|ILVh-Ni}Ky=WvwBYUHo4_v)p_xp{J6zO#S zoVQ`j>Kg8_TlcP=FTsIQPDO$4;&-NV813TkD4-XY2erw7Pw2up* zHzu>nWidLIfsDATE~92m=Qb`shx+_&Y|45*yCefj*Z_lq0C)$2k&U68y^XB{t-h`8 zZ-N56E#&{+d;oxRW&*#(8XZE=MbImFfrrWjX<*$?DC5~!K|wU+*;_EnADNg7Ku$>615n4uv(&Uw!Xgh8Xwol4NVcjWP{zC$p zbYYxcSHe~Xru6XxiM2tpK_y`;Nr}UAOMDtNr|P8wmcEbZ4-864%&vH2dHk~WX$MV6 zF@c@^*L7Ji1BcDWhd$DydhVUKb({?_74uDvP76R+)OQKY^o4Tr_iv_C6zphUX04{N z^NSKDk}~n;7kvAeu}+}01V}cqjuG?Vt$*crOv(GHmU*#P6^yzF^kWo5;qpOc zBj;nHLh_ug@=JVz9@EW*BqXl8m#{~kPTLz<-PvJm?Rb{3BJrs*iO#9mrFhF>g`Ux_ zy6LW?*<|_RRNX|_YOT9Hq6t0NTxZGNk1z!pU~WI@%UpJTf1!ILToDV z+LT$rB1-Da)hCta;j&*Ix+gfnddK`)9W%-EA)?(ColbKow@f8~RA7m-1 zYz0?Q-P$3j5wqQ{4Gp#j(wEzE|?PRUdYb#)x*VIC0#kFe&#Org0_WhoTnn^xN!daYGrWg zU**DZH9yTej=%km?+7+aZ?@R=J*?;0w%o;LuakfL;jD|cxBDLIyl_{np+o99$waml z**==BzZN7&hd!+^dKVTE{Q6qm?P$h7?+Tvn39;S0-k_n8-A+VOYtEGGZ~i52c1o2} z?>3m%da_3N{0U#Tw3F4}f86}5_rzeragP5A%jQ*hZ?g0h7kfv25jUbv4I5L8Cloz^2)B}x> zHL3w8Qg9z{gl-P{aW)8(3V?e@&dMwW9A( zM>ha{Lm249ihO zHVkQh1iBIEn*%uzxQF~q(sbW_k*G9XN`H3FN0v91B#1oRnZgbB}0z$U;08aas3 zO+lZ^M3{2K3?)E7+i1Z3APf`GhD8x3?6N~P0WnC5ZUXv91j2+)XNU>N;}Yn)(JMEE z?mic=ZnO@(J{lj~p+`3qy+epFbgCQJP>k*&x(TSg7leKW1}zT;2K2rRx^C3=BC_sp mUP!uOtw(h2xWlBxmzXdCSN{RtphKG&7{r0l7Rajh2k`(0?stm- literal 0 HcmV?d00001