From 4eef2a2c777f2c0e64e11bdbc53d760ddd18aa51 Mon Sep 17 00:00:00 2001 From: LMH01 Date: Fri, 5 Nov 2021 20:27:26 +0100 Subject: [PATCH 01/15] Updated default content for build "BUILD 2021.11.02A" --- .../lmh01/mgt2mt/util/manager/DefaultContentManager.java | 2 +- src/main/resources/default_content/default_platforms.txt | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index 32aa4f85..9357a1c3 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -33,7 +33,7 @@ public class DefaultContentManager { * This is the version in which the default content files are initially saved. * It indicates to what game update the default files correspond that ship with this tool. */ - private static final String DEFAULT_CONTENT_VERSION = "BUILD 2021.10.11B"; + private static final String DEFAULT_CONTENT_VERSION = "BUILD 2021.11.02A"; private static final String NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL = "https://www.dropbox.com/s/hd7f7c2b9ybr5gt/newest_default_content_version.txt?dl=1"; private static final String NEWEST_DEFAULT_CONTENT_DOWNLOAD_URL = "https://www.dropbox.com/s/7l89pg9x4venqje/newest_default_content.toml?dl=1"; public static final File DEFAULT_CONTENT_FILE = ModManagerPaths.MAIN.getPath().resolve("default_content.toml").toFile(); diff --git a/src/main/resources/default_content/default_platforms.txt b/src/main/resources/default_content/default_platforms.txt index 35033639..30f69c4b 100644 --- a/src/main/resources/default_content/default_platforms.txt +++ b/src/main/resources/default_content/default_platforms.txt @@ -129,4 +129,6 @@ Katari VCC Beam Deck Intelvisual Amikos Mintendu System -Super Mintendu System \ No newline at end of file +Super Mintendu System +Mintendu 3DEX +Siga Play Gear II \ No newline at end of file From 4940d6fd1ef67fea3557477336f0e435d55926a5 Mon Sep 17 00:00:00 2001 From: LMH01 Date: Fri, 5 Nov 2021 20:30:40 +0100 Subject: [PATCH 02/15] added file to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1d817e70..1d95d486 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ .vscode build .gradle +$HOME From 23fc1ec1f117cd1b967ff2a71898b27d9e5f7c46 Mon Sep 17 00:00:00 2001 From: Louis Date: Tue, 21 Dec 2021 11:17:37 +0100 Subject: [PATCH 03/15] Updated default content files --- .../util/manager/DefaultContentManager.java | 2 +- .../default_content/default_npcGames.txt | 900 +++++++++--------- 2 files changed, 451 insertions(+), 451 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index 9357a1c3..9690b8dd 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -33,7 +33,7 @@ public class DefaultContentManager { * This is the version in which the default content files are initially saved. * It indicates to what game update the default files correspond that ship with this tool. */ - private static final String DEFAULT_CONTENT_VERSION = "BUILD 2021.11.02A"; + private static final String DEFAULT_CONTENT_VERSION = "BUILD 2021.12.04A"; private static final String NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL = "https://www.dropbox.com/s/hd7f7c2b9ybr5gt/newest_default_content_version.txt?dl=1"; private static final String NEWEST_DEFAULT_CONTENT_DOWNLOAD_URL = "https://www.dropbox.com/s/7l89pg9x4venqje/newest_default_content.toml?dl=1"; public static final File DEFAULT_CONTENT_FILE = ModManagerPaths.MAIN.getPath().resolve("default_content.toml").toFile(); diff --git a/src/main/resources/default_content/default_npcGames.txt b/src/main/resources/default_content/default_npcGames.txt index e299ae8d..24acd830 100644 --- a/src/main/resources/default_content/default_npcGames.txt +++ b/src/main/resources/default_content/default_npcGames.txt @@ -1,43 +1,75 @@ 1492 <9><11> 1914 <4><13> 360 Degrees <8> +3D Virtual Pool <8> +4x4 Racer <17> +4x4: World Tour <17> 9th Legion <4><13> Academy of Darkness <2><3><15> +Accelerated <17> +Act of Danger <4><5><13><14><16> +Acts of Anarchy <4><5><13><14><16> Adrum Conflict <4><13> Afouriu <0><6> Age of Knights <10> Age of Wars <4><13> Agent 1000 <5><12><14><16> Agents And Hunters <5><12><14><16> +Agriculture Company <9><11> Air War <7> Airport Empire <9><11> Airport Manager <9><11> Alexy Girl <0><6> +Alien Legions <4><13> Alien Quest <2><3><15> +Alien Seed <5> Alien Warrior <10> Alienattack <5><12><14><16> +Alliances and Space <4><13> +Alpha Xenomorph <14> +Alphashot <5><14><16> +Alterium Beast <6> +Amberdoom <3> +Anarchy and Alliances <4><5><13> +Anarchy and Wonder <4><5><13> Anataris <4><13> +Ancient Domination <4><5><13> +Android Master <0><5> Andying <5><12><14><16> +Angelrise <4><5><13><14><16> Angle Dice <1> Anna Kurnikowa Tennis <8> Anno 1283 <9><11> AnReal <5><12><14><16> +Ant War <5> +Antitale <4><5><13><14><16> Apees Exodus <1> Apollo <5><12><14><16> Aquinoxis <1> +Arcade Racer 3000 <17> +Arcanemaster <4><13> +Arcanetech <3><4> Arcania Conflict <7> +Archery Masters <8> Arena 2172 <10> Arena of Death <10> +Armageddon Predator <5><14><16> +Armalites <5> Armalitis <5><12><14><16> Armies And Cats <5><12><14><16> Armies Of The Forest <5><12><14><16> +Armored Destruction <4><5><13><14><16> Army Of A Shadow <5><12><14><16> +Army of Corruption <4><5><13><14><16> Ashes <2><3><15> Ask and Answer <1> -ASS Pro Evo <8> +PEZ Pro Evo <8> Assassins And Soldiers <5><12><14><16> Asteroid Boy <0><6> +Astrofight <4><5><13><14><16> Astrois <5><12><14><16> +Astrostorm <5> +Astroworks <0><1> Athen Games <8> Atominus <0><6> Automobile <9><11> @@ -47,19 +79,36 @@ B-Train <9><11> Back to Earth <2><3><15> Back To Water <2><3><15> Bad Doctors <0><6> +Bad Machine <0><1> +Bad Treasure <0><1> +Balance of Havoc <4><5><13><14><16> Banana Bros <5><12><14><16> Bank Manager <9><11> Baseball Fever <8> Baseball Super Stars <8> +Baseballlife <8> +Basketballlife <8> +Basketslam <8> +Battle Race <17> +Battle Universe <4><13> Battle Warriors <10> +Battlefield Strategy <4><5><13> +Battlerain <4><13> +Beach Buggy <17> +Beach Super Stars <8> +Beach Taxi <17> Beach Tycoon <9><11> Beach Volleyball <8> Beam <1> Beasts And Aliens <10> Beasts In The Elevator <2><3><15> +Beasts of Twilight <4><5><13><14><16> Beer Tycoon <9><11> +Beneath a Iron Sky <2> Bermuda <2><3><15> +Berzerk Quest <3> Best of the Best <10> +Beta Centauri <4> Big Airline Manager <9><11> Big Business Tycoon <9><11> Big City <9><11> @@ -74,19 +123,27 @@ Big Questions <1> Big Samson <2><3><15> Big World <9><11> Big Worms <0><6> +Bionite <5><14><16> +Biopath <4><5><13><14><16> BioRock <5><12><14><16> Black Gates <10> Black Hole <4><13> Black Knight <2><3><15> Black Moon <2><3><15> -Black Sun <2><3><15> Black Ninja <10> +Black Sun <2><3><15> Black Way <1> Blacksmith Of The Caves <2><3><15> Blacksmiths And Robots <2><3><15> Blade Fighter <10> +Bladeblaze <5><6> +Bladeguard <4><5><13><14><16> +Bladeshock <5><6> Blitzkrieg <4><13> +Blocklight <0><1> Blood Kombat <10> +Blood of Ruins <4><5><13><14><16> +Bloodage <4><5><13><14><16> Bloody Doors <5><12><14><16> Bloody Effect <10> Blue Abyss <5><12><14><16> @@ -94,8 +151,10 @@ Blue Boyfriend <0><6> Blue Fantasies <1> Blue Maxim <5><12><14><16> Blue Spiders <0><6> +Bluemind <0><1> Bomb Raider <5><12><14><16> Bombs <0><6> +Bombs and Cannons <4><5><13><14><16> Botal <10> Boulder <1> Bowling Master <8> @@ -112,22 +171,42 @@ Broken Edge <5><12><14><16> Bronco <0><6> Bruce Ley Fighting <10> Brutal Barbarians <10> +Brutalcraft <10> +Brutalfire <5> +Brutalspace <5> Bubbles <0><6> Bucks Dream <2><3><15> Buddies <5><12><14><16> Buggy Racing <7> +Bullet Curse <5><14><16> +Bulletborne <4><5><13><14><16> +Bulletborne <5><14><16> +Bulletfight <4><5><13> +Bulletreign <4><5><13><14><16> Burning Serpent <2><3><15> +Cannon Champion <5> Captain Of Moondust <2><3><15> Car Dealer <9><11> Castle Master <2><3><15> Castle of Blood <10> +Castlegear <4><13> +Castlemania <6> +Castlemaster <3><4> +Castlemaster <4><5><13> +Castleplan <11> +Castles and Crowns <4><5><13> +Cayleth Adventure <2> CC75 - Cyber Cop <5><12><14><16> Celda <2><3><15> Cell <1> +Cell Theory <14> Censaiden <5><12><14><16> Center <1> Center Of The Earth <2><3><15> Champ Manager <9><11> +Champs of Fame <8> +Chaos Lords <3> +Chemicals and Stars <0><1> Chess 2000 <1> Chickens In My Town <0><6> Child Of Joy <2><3><15> @@ -136,6 +215,8 @@ Chip N' Dave <2><3><15> Chopter <7> Chrono <2><3><15> City Bus Driver <7> +Clanlife <4><5><13> +Clans and History <4><13> Claxxor <0><6> Cloud Lord <2><3><15> Clown Of Stunts <2><3><15> @@ -143,101 +224,169 @@ Coal - The Black Gold <9><11> Cobra Quad <5><12><14><16> Code 451 <5><12><14><16> Code Dreamland <4><13> +Codename Raiders <5> Coffee Tycoon <9><11> Cold East <4><13> +Colonies of Androids <11> Colony Crisis <7> Colors <1> Colors Of Outer Space <7> Columbus <4><13> Columnuss <0><6> Comanche Action <7> +Combatcorp <5><14><16> +Combatland <4><5><13><14><16> Comic Girl <5><12><14><16> +Comic Kart <17> Command <4><13> Commander Red <5><12><14><16> Computer Giant <9><11> Constantino <4><13> Contact <5><12><14><16> Cool Dissy <0><6> +Cool Kart Racer <17> Cool Puzzle <1> Cool Simon <2><3><15> Cool Trains <9><11> Core <4><13> Corsair <7> +Cosmic Freedom <4><13> Countdown <10> Cradias Gaiden <5><12><14><16> Crazy Bingo <0><6> Crazy Colors <1> +Crazy Drift <17> Crazy Frog <0><6> Crazy Rabbit <0><6> Crazy Tiger <10> +Crazy Truckers <17> Creators Of The Shield <10> Creators Of Wood <2><3><15> +Cricket Super Stars <8> +Cricketpro <8> +Cricketsim <8> Crocos World <2><3><15> +Crossbow Tales <3><4> +Crown Offensive <4><5><13> +Crowns and Gladiators <4><5><13> +Crowns and Machines <4><5><13> +Crystalcast <3> +Crystalcry <3> +Cyber Driver <17> Cyberbots <10> +Cyberdroids <5> +Cyberforce <4><5><13><14><16> Cyberforce <5><12><14><16> +Cyberrise <4><5><13><14><16> +Cyberstar <5> +Cyborg Warrior <5> D-Force <5><12><14><16> Dangerous Morning <5><12><14><16> Daniels Hotel <2><3><15> Dark Cave <2><3><15> Dark Cloud <2><3><15> Dark Kiss <2><3><15> +Dark Metro <14> Dark SIN <5><12><14><16> Dark Species <10> Dark Spellcaster <2><3><15> Dark Streets <10> +Dark Wasteland <3> Dark X-Dungeons <2><3><15> +Dark Zools <3> +Darkage <3> Darkcraft <4><13> +Darkhunt <5> Darkness <5><12><14><16> Darkness of the Sky <2><3><15> +Darknite <5> +Darkside <3> Darkwing Pig <2><3><15> Dart Champion <8> +Dart Unleashed <8> +Datamania <0><1> Day Of The Moon <2><3><15> Dayfall <5><12><14><16> Dazzmania <2><3><15> Dead In The Dungeons <2><3><15> Dead World <4><13> +Deadfight <10> Deadly Cannons <5><12><14><16> +Deadly Comanche <7> Deadly Dogfights <7> +Deadly Fallout <3> Death of Elves <2><3><15> Deep Sea <5><12><14><16> +Defcore <5><14><16> Defenders Of The Sun <2><3><15> +Deflektor Puzzle <1> +Demon Wars <5> +Demonheart <3> Demonhunter <5><12><14><16> Demons <5><12><14><16> Denchu <5><12><14><16> +Destroy of Logic <1> +Destruction Control <5> Destruction Driver <7> +Destruction Initiative <4><14><16> Destruction's Men <5><12><14><16> Detective <1> Detective Cooper <2><3><15> +Deuz Exit <14> Die Fuger <9><11> +Digital Enigma <2> Dino Tycoon <9><11> Dirty Track <7> Disruptator <5><12><14><16> DNS - Project <4><13> Do you know? <1> +Dodgeballart <8> Dog and Cat <2><3><15> Dogcat <2><3><15> +Domination and Corruption <4><5><13> Donkey World <2><3><15> Double <1> Double Bobble <0><6> +Double Snakes <10> Dr.Bads Labor <0><6> +Drag Racing: Evolution <17> Dragon Brothers <10> +Dragon Chronicles <3> +Dragon Crisis <4><5><13> +Dragon Liberation <4><5><13><14><16> +Dragonbot <5> Dragonhunt <2><3><15> +Dragonpro <4><5><13> Dragons And Mice <2><3><15> +Dragons of Conjury <3> Dragons of Lioma <2><3><15> +Dragonsky <3> +Dreadrage <5><14><16> +Dreadshock <5><14><16> +Dreadtide <4><5><13><14><16> Dreamer of Sword <2><3><15> Dreamland Story <2><3><15> +Dreammist <2> +Dreampath <0><1> Dreamtiger <10> +Drift Champions <17> +Driver & Car <17> Droid Of Sunshine <2><3><15> Droids Of Eternity <2><3><15> Druids And Werewolves <2><3><15> Dunan - The Fighter <5><12><14><16> Dungeonhearth <2><3><15> +Dungeons and Lords <3> Dungeons of Lor <2><3><15> Durimy Fantasy <2><3><15> Duum <5><12><14><16> +Dynablade <5><14><16> +Dynamind <0><1> Dynamite Joe <5><12><14><16> Dynamityman <0><6> +Dynaphaser <0> Eagles Nest <5><12><14><16> +Ear Of The Beholder <3> Earth Control <4><13> Earthworm Jimmy <2><3><15> East City <5><12><14><16> @@ -246,18 +395,32 @@ Eden <9><11> Edge of Danger <5><12><14><16> Electricity Of Gags <1> Elemental Healer <2><3><15> +Elements of Destruction <4><5><13> Eleven <8> Elite Ranger <5><12><14><16> +Elves of Triraldia <3> +Embercrest <3> +Emergency Conflict <4><5><13> Emperor's Storm <4><13> Emperors Of Darkness <4><13> Empire: Rome <4><13> Eons <5><12><14><16> +Epic Destiny <3> Escape <0><6> Escape from the Moon <2><3><15> +Eternal Signs <3> +Eurofighter Action <7> Europe 2034 <4><13> +Evil Dragon <3> +Evomania <4><5><13><14><16> Exdoomed <5><12><14><16> +Exolonia <5> Experiences Of Time <1> Extreme Contact <10> +Extreme Curves <17> +Extreme Decathlon <8> +Extreme Motors <17> +Extreme Sports Ultra <8> F-16: Flight Simulator <7> F/A-18: Crisis <7> F1 Unlimited <7> @@ -270,48 +433,78 @@ Falcon Commander <7> Falcon Simulation <7> Falconeye <5><12><14><16> Fallen Academy <2><3><15> +Fame and Misery <4><5><13> +Familymaster <0><1> Fanatsy Warriors <10> Fantasy Battlefield <4><13> +Fantasy Sports <8> +Fantasy Sports Super Challenge <8> Fantasy Tactics <4><13> Fantasy World <2><3><15> +Farmhero <9> Fast Cars <7> Fast Cars <7> Fat Frog <0><6> +Faxana <6> Felizium <4><13> Fields <1> +Fields of Siege <4><5><13> +Fight Spirit <10> Fighter Squad <10> Fighters And Elves <10> Fighting <10> +Fightinglife <10> Fights on Street <10> +Fightstyle <10> Film Producer <9><11> Fire <5><12><14><16> Fire N' Water <2><3><15> Fire of the Worlds <2><3><15> Fireaxe <5><12><14><16> +Fires of Fortune <4><5><13><14><16> First Ninja <5><12><14><16> Fleet of Britain <4><13> +Fleetnight <4><5><13> Flight Sim <7> +Flightbots <5><7> +Flightcommand <7> +Flightstrike <7> Flip and Flop <0><6> Flying Fortress <7> Flying Hero <5><12><14><16> Flying Isles <4><13> Flying Taxi <7> +Force of Chaos <4><5><13><14><16> +Force of Pain <4><5><13><14><16> Force Of The Slaves <5><12><14><16> +Force of Wrath <4><5><13> +Forgotten Blade <3><4><5> Forgotten Lands <5><12><14><16> +Formula One Master Challenge <17> +Forsaken Curse <3> Fortress of Doom <5><12><14><16> +Freescape Driller <7> Freggy and Froggy <0><6> Frog In My House <0><6> Frogs And Bunnies <2><3><15> +Frontblade <4><5><13><14><16> +Frozen Call <2> Frozen Princess <2><3><15> Frozen Sword <2><3><15> Full Control <1> Full Fire <10> +Full On Magic <0><1> Fussball Manager <9><11> +Future Alert <4><5><13> Future Mega Cop <5><12><14><16> +FX Race Stars <17> +G-Zero: Legends <17> Galactic Trans <9><11> Galactica <7> Galax Forty <2><3><15> Galax Invaders <5><12><14><16> +Galaxis Civlizations <4> +Galaxy Ace <12> Galaxy Crusade <5><12><14><16> Galaxy Harrier <5><12><14><16> Galaxy Hulk <2><3><15> @@ -329,14 +522,20 @@ General <4><13> Genion <7> Genius <0><6> Gexxi <5><12><14><16> +Ghost Castle <6> +Ghost Guardians <3> +Ghostcry <15> Ghosthunter <2><3><15> +Ghostpoint <5> Ghosts N' Zombies <2><3><15> Ghosts Who Smiles <0><6> +Giants of Magic <4><13> Gigo Brothers <2><3><15> Girls And Frogs <2><3><15> Glob <0><6> Glob and Bob <0><6> Globalius <9><11> +God of Retaliation <4><5><13> Gods Quest <5><12><14><16> Gold Quest <0><6> Golden King <2><3><15> @@ -345,6 +544,8 @@ Golden Pole Position <7> Goldrunner <0><6> Golf 2000 <8> Golf World <8> +Golflife <8> +Golfstar <8> Goons Quest <1> Gownlet <5><12><14><16> GP Circuit <7> @@ -353,21 +554,37 @@ Green Dragons <10> Green Slime <0><6> Green Snow <2><3><15> Grey Lord <2><3><15> +Grimclad <4><5><13> +GRIP Motorsport <17> Ground Zero <5><12><14><16> Grunts <2><3><15> +GTI Autosport <17> Guardian <5><12><14><16> Guardian of the Dreams <2><3><15> Guardians And Boys <5><12><14><16> +Gun Paradise <5><14><16 +Gunship Pilot <7> +Gym Stars <8> Hard Future <5><12><14><16> Harry McGulgan Boxing <8> Heart of Europe <4><13> Hearth of Salion <2><3><15> Heaven <9><11> +Heavenborne <4><5><13><14><16> +Heavenmania <4><5><13><14><16> Heavy Robots <7> Helicopter <7> +Helicopters: The Mission <7> Heliuminus <9><11> +Hellbase <4><5><13> +Hellguard <3> +Helltale <5> +HERO Operation <5> +Heroes and Rulers <4> Heroes And Snakes <0><6> Heroes of Mandia <10> +Heroes of Might & Spells <4> +Heroes of Premierships <8><9> Hexagonion <1> Hidden By The Moon <2><3><15> Hiding The Maze <2><3><15> @@ -376,39 +593,63 @@ Hightower <9><11> Hit the Head <0><6> Hobgoblin Of The Skull <2><3><15> Hockey League <8> +Hockeyslam <8> Hokum Pilot <7> Hollywood <9><11> Hope Of Space <2><3><15> +Hordes of Conquest <4><5><13> Horror Effect <5><12><14><16> +Horse Race <8> Horses Of Hell <2><3><15> Hospital <9><11> +Hospital Builder <11> Hot Brain <1> Hot Jungle <2><3><15> +Hot: Turbo Racing <17> Hotball <8> House of Blood <5><12><14><16> Huguna: The Conflict <5><12><14><16> +Human Freedom <4><13> +Huntingace <5><14><16> +Huntingmaster <5><14><16> Hurrican <5><12><14><16> +Hyper Drive Rally <17> Hyperjump <7> Ice Hockey <8> Ice Hockey Action <8> Ice Hockey Manager <9><11> Ice in the Dream <2><3><15> +Ikari Knight <3> Illusions Of The Lake <2><3><15> +Immortal Universe <5><13> In the Future <5><12><14><16> Industrial <9><11> Industry <9><11> +Infinite Revolution <4><5><13><14><16> +Infinite Vendetta <4><5><13><14><16> Int. Karate <10> Inter War <4><13> +Intergalactic Quest <2> +Intergalactic Taxi <0> +International Judo <10> Into the Light <2><3><15> IQ versus AI <1> Iron Marines <4><13> +Iron Speedballs <8> Iron Thunder <7> +Ironbot <4><5><13><14><16> +Ironcraft <4><5><13> +Ironcrest <3> +Ironcry <5> Island of Monkeys <2><3><15> Isle of Death <10> It Came From The Sea <0><6> Jack in Wonderland <2><3><15> Jack the Monkey <2><3><15> +Jetpac Action <5> Jets <7> +Jim Dangerous <6> +Jim Fandango <2> Jimmy Blacks Snooker <8> John Falcon <5><12><14><16> Johnes Basketball <8> @@ -419,6 +660,7 @@ Jumping Rabbit <5><12><14><16> Junglejumper <0><6> K-Zero <7> Karate Masters <10> +Karatestyle <10> Kart Freaks <8> Kickboxer <10> Kid Ucaris <0><6> @@ -426,45 +668,65 @@ Killer Aliens <5><12><14><16> Killer Ninjas <10> Killers <5><12><14><16> King of Europe <4><13> +King of Heaven <4><5><13> +King of Persia <6> +King of Route 99 <17> +Kingdom Tycoon <4><5><13> Kingdoms <4><13> Kingpain <5><12><14><16> +Kings and Champions <4><13> +Kings of the Sky <7> Klonia <0><6> Knight Of Parody <0><6> +Knightcry <3> Knights & Dragons <2><3><15> Knights Without Time <2><3><15> +Knightscape <3> +Knightslayer <4><5><13><14><16> Kolin McRay Rally <7> Kombat <10> Koroshu Final <1> Krillius <5><12><14><16> +Kristalis <3> Kryzzor <1> +L.A. Racers <17> Labyrinth <0><6> Land of Secrets <1> Lands of Shadow <10> Larry Lotter <2><3><15> Laser Crisis <5><12><14><16> +Laser Hyperaction <6> Laser Lights <0><6> Lasertron <5><12><14><16> Last Day <5><12><14><16> +Last Mirror <2> Last Pirate <2><3><15> Last Quest <5><12><14><16> Last Samurai <10> Last Shinobi <5><12><14><16> Law of the Nord <5><12><14><16> +Leaders and Masters <4><5><13> LeBuck's Revenge <2><3><15> +Legend of Fearhill <3> +Legends of Orion <4> Lemmerlings <1> Leopard Commander <7> Life At The Dungeons <2><3><15> +Lifepath <0><1> Light of Dreams <2><3><15> +Lightmind <0><1> Lightstones <1> Limborious <1> Little Bugs <1> Little Dragonknight <2><3><15> Little Dragons <10> Little Heads <1> +Little Icarus <6> Little Joe <2><3><15> Little Kingdom <4><13> Little Kung Fu Girl <10> Little Pieces <1> +Little Settlers <4> Living Danger <5><12><14><16> Load Runner <0><6> Loco Emprie <9><11> @@ -472,12 +734,16 @@ Lord of the Katana <5><12><14><16> Lord Of Wood <2><3><15> Lord Project <2><3><15> Lords of Combat <10> +Lords of Mystery <4><13> Lords of the Slaves <2><3><15> Love For Magics <0><6> Lyrics Adventure <1> M.U.L.I. <9><11> M1A1: Tanks <7> +Machines and Gods <4><13> Magazin <9><11> +Magecraft <4><13> +Magemind <4><5><13><14><16> Mages And Elves <2><3><15> Magic of Palonia <4><13> Magic of Pearls <1> @@ -487,67 +753,99 @@ Maniac Fever <1> Maniac Simson <2><3><15> Mars Colony <9><11> Mars Secrets <2><3><15> +Martial Arts: The Street <10> +Martialtime <5> +Martialworld <5> +Massive Effect <3> Master of Arionis <4><13> +Master of Dungeons <3> Master of Ring <10> Master of Universe <4><13> Masterix <1> +Masters and Times <0><1> +Masters of Swords <4><13> Max IQ <1> +Maximum Speed <17> Maximum Speed <7><17> Maximus <1> MDDK <5><12><14><16> Mech Force <5><12><14><16> +Mech: Steel Warriors <7> Mechanic Soldiers <4><13> Mega Boy <5><12><14><16> Mega Dodge Ball <8> Mega Fights <10> Mega Girl <2><3><15> Mega Gunship <7> +Mega Machines <17> Mega Machines <7> +Mega Off-Road Racing <17> Mega Render Ranger <5><12><14><16> Mega Tennis <8> +Mega Trashman <0> Megablast <5><12><14><16> Megagirl <2><3><15> +Mercenaries and Creatures <4><5><13><14><16> Mercenary With Spaceships <7> Merkantilismus <9><11> Merkur Action <5><12><14><16> Metropole <9><11> Mi-24 Hind <7> Mice In Space <2><3><15> +Midnight Kart <17> +Midnight Resistance <4><5><13> +Might & Spells <3> Might of Magic <2><3><15> Mikey Dison's Punch Out <8> Mine Defender <0><6> Miniature Golf <8> +Mining Tycoon <9><11> +MiniRace <17> +Miracle Knights <3> Mirage <5><12><14><16> Missing <1> Mission Force <7> Mission Invades <4><13> Mission Venus <7> +Mission Vulcan <4> +Mission Wolf <5> +Mission: Rebelstar <4> +Mission: Xecutor <5> Misson Live <4><13> Mister Think <1> +Monaco Racer <17> Money <9><11> -Monkey Song <0><6> Monkey Escape <5><12><14><16> +Monkey Song <0><6> Monkeys World <2><3><15> Monks Without Eyes <10> +Monster Commander <4><5><13> +Monsters and Champions <4><5><13> Moon Jetman <5><12><14><16> Moon Rocks <1> Moonfighter <7> Moonrunner <0><6> Moonstones <2><3><15> +Mortalblade <10> Mostertruck <7> +Mountain Racers <17> Mr.Dooo! <0><6> MrPriller <0><6> Muddon NFL <8> Murder in London <2><3><15> Music Manager <9><11> Music World <9><11> +Mutant Civilization <4><5><13> My Cities <9><11> My Sins <1> My Space Journey <7> Mysteria - The Isle <2><3><15> Mysteria <2><3><15> +Mysteries of Memories <2> NAB Basketball <8> Nabelius <0><6> +Nations of Simalgri <4><13> +Naval Twilight <4><5><13> Net <1> Network <9><11> Neuro <1> @@ -559,7 +857,10 @@ New York Action <5><12><14><16> Newspaper Manager <9><11> NewYork Games <8> Newzealand <0><6> +Nighthawk Pilot <7> +Nightmare Offensive <4><5><13> Nine <5><12><14><16> +Ninja Chaos <6> Ninja Fighter <10> NLF Football <8> Normal <1> @@ -570,9 +871,12 @@ Nuclear Strike <4><13> Nuclear War <4><13> Nuclear Winter <4><13> Nuklear <4><13> +Offroad Xtreme <17> Ogres Of Autumn <2><3><15> OID: Revenge of Moh <0><6> Oil Giant <9><11> +Oil Manager <9><11> +Oltima Quest <3> Oltimo <2><3><15> Olympic Games 2000 <8> One and Two <1> @@ -582,16 +886,24 @@ Orbital Flight <7> Orks and Elves <4><13> Outer Space <7> Over the Top <0><6> +Overdrive Karts <17> Oxelray <5><12><14><16> Pacific <4><13> Pacu Pacu Animals <0><6> Para-Droids <0><6> Paris <1> +Performance <17> +Peril and Tactics <4><5><13> Personis <2><3><15> Peters Day <0><6> Phalanx Crisis <5><12><14><16> +Phantom: SpecOps <5> +Phantombase <5><14><16> +Phantomcry <5><14><16> +Phantomcry <5><14><16> Phaser Ghost <5><12><14><16> Phaser Squad <5><12><14><16> +Phaser Squads <5> Pigs <0><6> Pinball Island <0><6> Ping and Pong <0><6> @@ -600,17 +912,23 @@ Pipelines <0><6> Planet Of Hope <2><3><15> Planet Of The Future <2><3><15> Planet Of The Invaders <5><12><14><16> +Planet Tormen <3> Planet Utopia <9><11> Planet Venomia <4><13> Planets <7> Plantation <9><11> +Plants Vs. Vampires <0> Platinum <5><12><14><16> Plukk <1> Pole Postion Manager <9><11> Police Story <2><3><15> +Policespeed <17> Polybarium <1> Ports <9><11> +Possible Mission <6> Potty <0><6> +Power Rally <17> +Price of Shadows <4><5><13><14><16> Primary <5><12><14><16> Prince of Darkness <2><3><15> Prince of Europe <4><13> @@ -623,6 +941,8 @@ Prince Story <2><3><15> Prixx <0><6> Pro Buggy <7> Probotech <5><12><14><16> +Project DRIVE <17> +Project Stealth Warrior <7> Psycho Cat <0><6> Puk-Man <0><6> Putter <8> @@ -634,16 +954,24 @@ Queen Program <2><3><15> Quest for Identity <2><3><15> Rabbit Crisis <5><12><14><16> Rabbit Quest <1> +Racelife <17> Racing Team Tycoon <9><11> Radio Manager <9><11> Railroad <9><11> +Railroad Extrem <9> +Railroad Manager <9><11> Rain Seven <5><12><14><16> Rainbow World <0><6> Raised By The Champions <10> +Rally Boy <17> +Rally Superstars <17> +Rallymania <17> Raven Adventure <2><3><15> Raven Scheme <2><3><15> RAX <5><12><14><16> +Real Kart <17> Reality <1> +Realms of Steel <4><5><13><14><16> Red Alert <4><13> Red Angel <5><12><14><16> Red Blood <5><12><14><16> @@ -657,35 +985,52 @@ Red Scrolls <2><3><15> Red Spirit <2><3><15> Red Tunnel <5><12><14><16> Red Voyage <2><3><15> +Renegade Warrior <10> Republic Knights <2><3><15> Return Super Fire <5><12><14><16> Return to Mars <2><3><15> Rickys Adventure <2><3><15> +Rifle Combat <5> +Rigar <5> Rising <4><13> +Rising Stars of Zulur <3> +River Action <5> River of Snake <2><3><15> Road Master <7> +Roads of USA <17> Robodog vs. Catinator +Robofish <6> +Robotraid <4><14><16> Robots <10> Robots And Rebels <5><12><14><16> Rock Buck <0><6> +Rock Climbing World Cup <8> Rockets <4><13> Roll not away <0><6> Rollercoaster Empire <9><11> Rollercoaster Giant <9><11> Rollergirl <2><3><15> Rom <9><11> +Rome: The War <4> Rong <0><6> +Royal Code <4> Rugby League <8> Rugby Manager <9><11> +Rugby Masters <8> +Rugbymax <8> +Rune Quest <3> Runner <0><6> Running <5><12><14><16> Ruppelpa the Rapper <0><6> Rusty Axe <5><12><14><16> Rygor <2><3><15> S.D.F.T. <5><12><14><16> +Sail Captain <0> Samurai <10> Sandsturm <4><13> +Sanguine Investigation <2> Scared By The Dungeons <2><3><15> +School Days <0> School Manager <9><11> School of Words <1> Scrolls of Skyrim <2><3><15> @@ -705,13 +1050,18 @@ Seventh Future <5><12><14><16> Shadow Alliance <7> Shadow of the Monster <2><3><15> Shadow Star <2><3><15> +Shadows of Love <15> Shanghai World <1> Shaolin Fights <10> Shock <0><6> Shock Rock <0><6> +Shop Manager <9><11> Shuttlefighter <5><12><14><16> Silent Son <2><3><15> +Silent U-Boat <7> Sillion <5><12><14><16> +Silver Axe <10> +Silver Axe Warrior <3> SimEco <9><11> SimTV <9><11> Six Kings <4><13> @@ -719,23 +1069,39 @@ Skateboard <8> Skateboard Action <8> Skateboard Feaver <8> Skaterboy <0><6> +Skycommand <4><5><13> +Skyfighter <7> +Skystar <5> Snakes and Apples <0><6> Snow Games <8> +Snow Sports League <8> +Snowart <8> +Snowmaster <8> Soccer 2046 <8> Soccer Kids <8> Soccer Manager <9><11> +Soccerstar <8> Soft'n'Heavy <5><12><14><16> Software Tycoon <9><11> +Solar Apocalypse <4><5><13> Solar Clones <5><12><14><16> Solar Craft <4><13> Solar Flares <2><3><15> +Solar Moon <3> Soldiers <4><13> Soldiers Of The Sun <5><12><14><16> Solomons Secret <1> Soul in the Nobody <2><3><15> Star Soul <2><3><15> +Soul Signs <2> +Soulcast <4><5><13><14><16> +Soullife <3><5> +Soulmaster <4><5><13><14><16> Souls of Dark <2><3><15> +Souls of Nightmares <2> Souls of Rose <5><12><14><16> +Soulstrike <4><5><13><14><16> +Soultale <3> Space Civilizations <4><13> Space Colony Tycoon <9><11> Space Empire <4><13> @@ -744,12 +1110,23 @@ Space Shuttle <7> Space Tactics <4><13> Space Transport <9><11> Space Trooper <5><12><14><16> +Spacehunt <4><5><13><14><16> Spacestation 500 <4><13> +Special Assault <5><14><16> Special Command <5><12><14><16> Special Killer <5><12><14><16> Special Team <4><13> +Speedpro <17> +Speedway 2050 <17> +Spelllife <4><5><13> +Spells of Ikuri <3> +Spellspeed <4><5><13> +Spelltale <3> Spider Armageddon <0><6> +Spirits and Leaders <4><5><13> +Spirits of Vengeance <2> Spiru the Chicken <0><6> +Sportmaster <8> Spy Runner <5><12><14><16> Spyda-Man <5><12><14><16> Square <1> @@ -763,10 +1140,13 @@ Star Puzzle <1> Star Soccer <8> Star-Up Tycoon <9><11> Starbase <9><11> +Starbase Atlantis <11> +Starblade <5><14><16> Stardriver <5><12><14><16> Starfighters <7> Starkid <2><3><15> Starrabbit <2><3><15> +Stars of Dynasties <4><13> Stealth Fighter <7> Steel Fighters <10> Steel Gear Solid <5><12><14><16> @@ -782,38 +1162,51 @@ Stranger Of Jokes <1> Stranger Of New Worlds <10> Street Basketball <8> Street Boxer <10> +Street Boxing <10> Street Gangs: The Fight <10> Street Kart <7><17> Street Kombat <10> Streetfrog <0><6> +Streetmania <17> +Streetmaster <17> Streets of New York <5><12><14><16> +Strengthstyle <8> Strike <7> +Stunt Cars <17> Stunt Race <7><17> SUB <4><13> Submarine Torpedos <7> Submarine U88 <7> Subwar General <4><13> +Summerworld <8> Summoners And Thieves <2><3><15> Sun Games <8> Sun Ocean <2><3><15> Super Bionic Force <5><12><14><16> Super Cars <7> Super Chess <1> +Super Crash <17> Super Cyborg <5><12><14><16> Super Darios <2><3><15> +Super Dive <0> Super Drive <7> +Super G Racing <17> Super Giants <5><12><14><16> Super Gladiator <10> Super Grand Prix <7><17> Super Ice Hockey <8> Super Kicker <8> +Super Match Point <8> Super Mega Blade <5><12><14><16> Super Mindgames <1> +Super Motorsport <17> Super Motorsport <7><17> +Super Nitro <17> Super Pang Buster <0><6> Super Pilotwings <7> Super Ping Pong <8> Super Pool <8> +Super Rally <17> Super Rollerskate <8> Super Shoots <5><12><14><16> Super Shuttle <7> @@ -826,6 +1219,7 @@ Super Train Sim <7> Super Wheel <7><17> Super Wings <7> Super Wrestling <10> +Superbike 2000 <17> Superboy <2><3><15> Supernova <4><13> SWAT Missions <5><12><14><16> @@ -834,8 +1228,11 @@ Sword of Antara <10> Swordfighter <10> Swordmage <10> Symphony <1> +System Zok <14> Takatis <5><12><14><16> +Tankfighter <5><7> Tatrus <0><6> +Teams and Trophies <8> Tek-Blade <10> Television Manager <9><11> Ten Secounds <0><6> @@ -843,8 +1240,11 @@ Tenguen <1> Tennis Gold <8> Tentris <0><6> Terra 14 <5><12><14><16> +Terra Cestan <5> +Terror and Command <4><5><13> Thaiboxer <10> The Adventure <2><3><15> +The Ancient Scrolls <3> The Ants <9><11> The Bank <9><11> The Bards Adventure <2><3><15> @@ -864,6 +1264,7 @@ The Crystal <2><3><15> The Dark Brain <1> The Dark Gate <2><3><15> The Darkness <5><12><14><16> +The Darkness Ring <3> The Demonhunter Story <2><3><15> The Destiny <4><13> The Door <1> @@ -894,6 +1295,7 @@ The Hot Eye <5><12><14><16> The Hunter's Sons <2><3><15> The Ice of the Moon <2><3><15> The Inca <2><3><15> +The Kaos Engine <5> The Lands of Orks <4><13> The Last Elf <2><3><15> The Last Mission <5><12><14><16> @@ -927,6 +1329,7 @@ The Railroad <9><11> The Red Hole <2><3><15> The Rising Prince <4><13> The School of the Truth <1> +The Simulated People <4> The Slayer <5><12><14><16> The Soul's Wizards <2><3><15> The stolen Crown <4><13> @@ -942,6 +1345,7 @@ The Third Lightning <5><12><14><16> The Time Project <0><6> The Tombs <2><3><15> The Tower's Man <2><3><15> +The Trucks <17> The Truth's Thief <2><3><15> The Tycoon <9><11> The Underworld <2><3><15> @@ -971,18 +1375,23 @@ Time's Healer <2><3><15> Time's Ships <2><3><15> Times <0><6> Timmy Kid <2><3><15> +Tiny Wish <0><1> +Titan Wrath <4><5><13><14><16> TOKA Touring Cars <7> +Tokyo Racer <17> Tombolius <0><6> Toni Clarks Skateboarding <8> Tornado Pilot <7> Tornado X <10> Touch <0><6> +Touchdown Super Stars <8> Tower <9><11> Tower Run <0><6> Towers of Heaven <1> Town <9><11> Town 2000 <9><11> Town 3000 <9><11> +Tradefront <9> Trainer of Flames <0><6> Trak-Out <0><6> Transport Manager <9><11> @@ -1001,9 +1410,15 @@ Tycoon <9><11> Typhoon <7> UFOs <4><13> Ulandru <2><3><15> +Uldurs Gate <3> Ultimatum <1> +Ultraside <5> +Umbrella Zombies <2> UN Squads <4><13> Under Horizon <5><12><14><16> +Undercover Hell <5> +Urban Auto Club <17> +V8 Street Racing <17> Vampires <5><12><14><16> Vanarkis <5><12><14><16> Vaxhanadu <5><12><14><16> @@ -1017,45 +1432,71 @@ Village Builder <9><11> Vivanus <0><6> Voices At The Graveyard <2><3><15> Voices In The Tombs <0><6> +Volleyballmaster <8> +Volleyballpros <8> Wallstreet <9><11> War <4><13> War 2010 <4><13> War 2020 - The Xemos <4><13> War 2182 <4><13> +War and Annihilation <4><5><13><14><16> War Tactics <4><13> +Warfare and Violence <4><5><13> +Warland <4><13> Warped <5><12><14><16> +Warplan <4><5><13> +Warpro <4><5><13><14><16> Warriors of the Crown <4><13> +Waterchamp <8> Waterland <4><13> +Watersim <7> Wave of the Shard <2><3><15> +Ways of Thunder <17> +Web of Dreams <2> Week Of Rainbows <2><3><15> +Werewolf King <5><6> +Werewolves of Agony <4><5><13> WFW Wrestling <10> +Whispers of Vengeance <4><5><13><14><16> White Sport <8> +Wildlife Simulator <7> Wimbel Tennis <8> +Wing Captain <7> Wings of Flowers <2><3><15> Winter of Lords <4><13> +Winterworld <2><3><4><5><6><11><13><14><16> Wizard of End <2><3><15> Wizard Of Mystery <2><3><15> WizzardBall <0><6> Wonder Rabbit <0><6> Wonderland <2><3><15> WorCroft <4><13> +World Boxing <10> +World Class Master Series <8> +World of Baseball <8> +World of Football <8> +World of Mana <2><3><15> World of Rugby <8> -World of Tennis <8> World of Snooker <8> -World of Football <8> World of Soccer <8> -World of Baseball <8> -World of Mana <2><3><15> +World of Tennis <8> +World Race <17> World War <4><13> +Wrestlinglife <8><10> +Wrestlingtime <8><10> WW2: Wings <7> +X-Drift <17> Xeno Breed <5><12><14><16> Xeno One <7> +Xeno Sports <8> +xRacing <17> Y-COM <4><13> Y-Out <5><12><14><16> Y-Plane <7> Y-Type <5><12><14><16> Yellow Alert <4><13> Yourney <1> +Z-Type: Motorsport <17> Zack <0><6> Zam and Macks <2><3><15> Zelius <10> @@ -1064,451 +1505,10 @@ Zetriss <0><6> Zigaia <5><12><14><16> Zolstize <0><6> Zombie World <5><12><14><16> +Zombies of Rux <5> Zonik Chaos <2><3><15> Zoro the Alien <2><3><15> Zortium <1> Zuk MacCrack <2><3><15> Zweihanders <5><12><14><16> -Oltima Quest <3> -Wing Captain <7> -Might & Spells <3> -Master of Dungeons <3> -Heroes of Might & Spells <4> -The Simulated People <4> -Massive Effect <3> -Planet Tormen <3> -Dark Zools <3> -Deadly Comanche <7> -Umbrella Zombies <2> -Dark Metro <14> -Deadly Fallout <3> -Deuz Exit <14> -Cell Theory <14> -Rome: The War <4> -Beta Centauri <4> -System Zok <14> -Galaxis Civlizations <4> -Jim Fandango <2> -The Ancient Scrolls <3> -Uldurs Gate <3> -Little Settlers <4> -King of Persia <6> -Ear Of The Beholder <3> -Dark Wasteland <3> -Plants Vs. Vampires <0> -The Kaos Engine <5> -Stunt Cars <17> -Iron Speedballs <8> -Intergalactic Quest <2> -Silent U-Boat <7> -Railroad Manager <9><11> -Oil Manager <9><11> -Shop Manager <9><11> -Nighthawk Pilot <7> -Eurofighter Action <7> -Legend of Fearhill <3> -Phaser Squads <5> -Kings of the Sky <7> -International Judo <10> -Fight Spirit <10> -Dynaphaser <0> -Web of Dreams <2> -Amberdoom <3> -Alterium Beast <6> -3D Virtual Pool <8> -Jim Dangerous <6> -Alien Seed <5> -Beneath a Iron Sky <2> -Possible Mission <6> -Project Stealth Warrior <7> -Gunship Pilot <7> -Intergalactic Taxi <0> -Armalites <5> -HERO Operation <5> -Street Boxing <10> -World Boxing <10> -Rigar <5> -Castlemania <6> -Ninja Chaos <6> -Double Snakes <10> -Little Icarus <6> -Faxana <6> -Kristalis <3> -Cyborg Warrior <5> -Ghost Castle <6> -Miracle Knights <3> -Robofish <6> -Silver Axe <10> -Mission Wolf <5> -Silver Axe Warrior <3> -Laser Hyperaction <6> -Super Dive <0> -Codename Raiders <5> -The Darkness Ring <3> -Exolonia <5> -Super Match Point <8> -Mega Trashman <0> -Xeno Sports <8> -Cayleth Adventure <2> -Terra Cestan <5> -Jetpac Action <5> -Extreme Decathlon <8> -Renegade Warrior <10> -Mission: Rebelstar <4> -Mission: Xecutor <5> -Ikari Knight <3> -Freescape Driller <7> -Cyberdroids <5> -Deflektor Puzzle <1> -Ant War <5> -Chaos Lords <3> -Mission Vulcan <4> -School Days <0> -Berzerk Quest <3> -River Action <5> -Starbase Atlantis <11> -Demon Wars <5> -Galaxy Ace <12> -Zybermorphing <5> -Hyper Drive Rally <17> -Mech: Steel Warriors <7> -Alpha Xenomorph <14> -Streetmania <17> -Project DRIVE <17> -Super Motorsport <17> -xRacing <17> -Super Rally <17> -Offroad Xtreme <17> -Mega Off-Road Racing <17> -4x4 Racer <17> -Superbike 2000 <17> -Overdrive Karts <17> -Urban Auto Club <17> -Battle Race <17> -Beach Buggy <17> -Crazy Drift <17> -Crazy Truckers <17> -Mountain Racers <17> -Comic Kart <17> -Rally Boy <17> -Driver & Car <17> -Speedway 2050 <17> -Rally Superstars <17> -Cool Kart Racer <17> -Super Crash <17> -Beach Taxi <17> -Rallymania <17> -Extreme Curves <17> -Ways of Thunder <17> -Drift Champions <17> -L.A. Racers <17> -Z-Type: Motorsport <17> -G-Zero: Legends <17> -FX Race Stars <17> -GRIP Motorsport <17> -GTI Autosport <17> -4x4: World Tour <17> -Hot: Turbo Racing <17> -Drag Racing: Evolution <17> -Arcade Racer 3000 <17> -King of Route 99 <17> -V8 Street Racing <17> -MiniRace <17> -Mega Machines <17> -Midnight Kart <17> -Super Nitro <17> -Monaco Racer <17> -World Race <17> -Performance <17> -Power Rally <17> -Real Kart <17> -Accelerated <17> -Super G Racing <17> -The Trucks <17> -Tokyo Racer <17> -X-Drift <17> -Extreme Motors <17> -Maximum Speed <17> -Fantasy Sports Super Challenge <8> -Snow Sports League <8> -Masters and Times <0><1> -Fightstyle <10> -Huntingace <5><14><16> -Summerworld <8> -Watersim <7> -Rock Climbing World Cup <8> -Gym Stars <8> -Wrestlinglife <8><10> -Huntingmaster <5><14><16> -Fightinglife <10> -Fantasy Sports <8> -Teams and Trophies <8> -Basketslam <8> -Basketballlife <8> -Martialworld <5> -Martialtime <5> -Gun Paradise <5><14><16 -Dart Unleashed <8> -Champs of Fame <8> -Karatestyle <10> -Snowmaster <8> -Sportmaster <8> -World Class Master Series <8> -Beach Super Stars <8> -Golfstar <8> -Baseballlife <8> -Dodgeballart <8> -Cricketsim <8> -Formula One Master Challenge <17> -Martial Arts: The Street <10> -Wrestlingtime <8><10> -Cricket Super Stars <8> -Touchdown Super Stars <8> -Heroes of Premierships <8><9> -Archery Masters <8> -Winterworld <2><3><4><5><6><11><13><14><16> -Speedpro <17> -Hockeyslam <8> -Snowart <8> -Extreme Sports Ultra <8> -Masters of Swords <4><13> -Rugbymax <8> -Volleyballmaster <8> -Soccerstar <8> -Golflife <8> -Rugby Masters <8> -Rising Stars of Zulur <3> -Volleyballpros <8> -Streetmaster <17> -Horse Race <8> -Cricketpro <8> -Strengthstyle <8> -Waterchamp <8> -Nightmare Offensive <4><5><13> -Ancient Domination <4><5><13> -Elements of Destruction <4><5><13> -God of Retaliation <4><5><13> -Crowns and Machines <4><5><13> -Anarchy and Wonder <4><5><13> -Tradefront <9> -Grimclad <4><5><13> -Bulletfight <4><5><13> -Dragonpro <4><5><13> -Future Alert <4><5><13> -Dragon Crisis <4><5><13> -Force of Pain <4><5><13><14><16> -King of Heaven <4><5><13> -Crowns and Gladiators <4><5><13> -Domination and Corruption <4><5><13> -Clanlife <4><5><13> -Dreadtide <4><5><13><14><16> -Angelrise <4><5><13><14><16> -Ironbot <4><5><13><14><16> -Emergency Conflict <4><5><13> -Infinite Vendetta <4><5><13><14><16> -Force of Chaos <4><5><13><14><16> -Balance of Havoc <4><5><13><14><16> -Mercenaries and Creatures <4><5><13><14><16> -War and Annihilation <4><5><13><14><16> -Knightslayer <4><5><13><14><16> -Heavenmania <4><5><13><14><16> -Soulcast <4><5><13><14><16> -Astrofight <4><5><13><14><16> -Mutant Civilization <4><5><13> -Solar Apocalypse <4><5><13> -Werewolves of Agony <4><5><13> -Fields of Siege <4><5><13> -Spirits and Leaders <4><5><13> -Terror and Command <4><5><13> -Ironcraft <4><5><13> -Spacehunt <4><5><13><14><16> -Warplan <4><5><13> -Kingdom Tycoon <4><5><13> -Naval Twilight <4><5><13> -Force of Wrath <4><5><13> -Acts of Anarchy <4><5><13><14><16> -Leaders and Masters <4><5><13> -Fame and Misery <4><5><13> -Evomania <4><5><13><14><16> -Biopath <4><5><13><14><16> -Spellspeed <4><5><13> -Soulmaster <4><5><13><14><16> -Crown Offensive <4><5><13> -Battlefield Strategy <4><5><13> -Whispers of Vengeance <4><5><13><14><16> -Beasts of Twilight <4><5><13><14><16> -Monsters and Champions <4><5><13> -Warfare and Violence <4><5><13> -Antitale <4><5><13><14><16> -Bulletreign <4><5><13><14><16> -Combatland <4><5><13><14><16> -Warpro <4><5><13><14><16> -Titan Wrath <4><5><13><14><16> -Dragon Liberation <4><5><13><14><16> -Hordes of Conquest <4><5><13> -Army of Corruption <4><5><13><14><16> -Bombs and Cannons <4><5><13><14><16> -Anarchy and Alliances <4><5><13> -Cyberforce <4><5><13><14><16> -Spelllife <4><5><13> -Soulstrike <4><5><13><14><16> -Heavenborne <4><5><13><14><16> -Monster Commander <4><5><13> -Midnight Resistance <4><5><13> -Price of Shadows <4><5><13><14><16> -Blood of Ruins <4><5><13><14><16> -Castles and Crowns <4><5><13> -Peril and Tactics <4><5><13> -Bulletborne <4><5><13><14><16> -Bloodage <4><5><13><14><16> -Hellbase <4><5><13> -Skycommand <4><5><13> -Infinite Revolution <4><5><13><14><16> -Armored Destruction <4><5><13><14><16> -Realms of Steel <4><5><13><14><16> -Fires of Fortune <4><5><13><14><16> -Dungeons and Lords <3> -Frontblade <4><5><13><14><16> -Fleetnight <4><5><13> -Cyberrise <4><5><13><14><16> -Magemind <4><5><13><14><16> -Act of Danger <4><5><13><14><16> -Castlemaster <4><5><13> -Bladeguard <4><5><13><14><16> -Crossbow Tales <3><4> -Helicopters: The Mission <7> -Heroes and Rulers <4> -Skyfighter <7> -Castlegear <4><13> -Alliances and Space <4><13> -Combatcorp <5><14><16> -Starblade <5><14><16> -Castlemaster <3><4> -Arcanetech <3><4> -Railroad Extrem <9> -Agriculture Company <9><11> -Nations of Simalgri <4><13> -Tankfighter <5><7> -Soullife <3><5> -Robotraid <4><14><16> -Destruction Initiative <4><14><16> -Machines and Gods <4><13> -Policespeed <17> -Wildlife Simulator <7> -Clans and History <4><13> -Phantombase <5><14><16> -Flightbots <5><7> -Battle Universe <4><13> -Rifle Combat <5> -Zombies of Rux <5> -Chemicals and Stars <0><1> -Magecraft <4><13> -Racelife <17> -Cannon Champion <5> -Colonies of Androids <11> -Farmhero <9> -Lifepath <0><1> -Destruction Control <5> -Stars of Dynasties <4><13> -Kings and Champions <4><13> -Roads of USA <17> -Mining Tycoon <9><11> -Familymaster <0><1> -Phantom: SpecOps <5> -Hospital Builder <11> -Flightcommand <7> -Flightstrike <7> -Sail Captain <0> -Undercover Hell <5> -Spells of Ikuri <3> -Brutalspace <5> -Darkhunt <5> -Lightmind <0><1> -Forsaken Curse <3> -Giants of Magic <4><13> -Brutalfire <5> -Dreampath <0><1> -Arcanemaster <4><13> -Skystar <5> -Ironcrest <3> -Shadows of Love <15> -Mortalblade <10> -Werewolf King <5><6> -Spelltale <3> -Darkside <3> -Dragons of Conjury <3> -Ironcry <5> -Phantomcry <5><14><16> -Epic Destiny <3> -Souls of Nightmares <2> -Embercrest <3> -Deadfight <10> -Alien Legions <4><13> -Rune Quest <3> -Darkage <3> -Hellguard <3> -Phantomcry <5><14><16> -Knightcry <3> -Dreadrage <5><14><16> -Royal Code <4> -Sanguine Investigation <2> -Legends of Orion <4> -Cyber Driver <17> -Ghostcry <15> -Crystalcast <3> -Soultale <3> -Darknite <5> -Evil Dragon <3> -Digital Enigma <2> -Knightscape <3> -Astrostorm <5> -Spirits of Vengeance <2> -Cyberstar <5> -Ghostpoint <5> -Dreammist <2> -Bad Treasure <0><1> -Lords of Mystery <4><13> -Warland <4><13> -Full On Magic <0><1> -Tiny Wish <0><1> -Elves of Triraldia <3> -Brutalcraft <10> -Dynamind <0><1> -Helltale <5> -Bionite <5><14><16> -Solar Moon <3> -Last Mirror <2> -Mysteries of Memories <2> -Soul Signs <2> -Defcore <5><14><16> -Dynablade <5><14><16> -Dragonsky <3> -Bulletborne <5><14><16> -Cosmic Freedom <4><13> -Special Assault <5><14><16> -Dreadshock <5><14><16> -Bad Machine <0><1> -Bladeblaze <5><6> -Astroworks <0><1> -Battlerain <4><13> -Eternal Signs <3> -Human Freedom <4><13> -Alphashot <5><14><16> -Demonheart <3> -Castleplan <11> -Android Master <0><5> -Ghost Guardians <3> -Dragon Chronicles <3> -Bladeshock <5><6> -Crystalcry <3> -Bullet Curse <5><14><16> -Armageddon Predator <5><14><16> -Dragonbot <5> -Forgotten Blade <3><4><5> -Bluemind <0><1> -Immortal Universe <5><13> -Frozen Call <2> -Destroy of Logic <1> -Ultraside <5> -Blocklight <0><1> -Datamania <0><1> \ No newline at end of file +Zybermorphing <5> \ No newline at end of file From b10b6a383410695b10811e340991803036e3960f Mon Sep 17 00:00:00 2001 From: Louis Date: Tue, 21 Dec 2021 11:26:07 +0100 Subject: [PATCH 04/15] Moved one method from AbstractSimpleDependentMod and AbstractAdvancedDependentMod to default method in DependentMod --- .../mod/managed/AbstractAdvancedDependentMod.java | 12 ------------ .../mod/managed/AbstractSimpleDependentMod.java | 12 ------------ .../lmh01/mgt2mt/mod/managed/DependentMod.java | 7 ++++++- 3 files changed, 6 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractAdvancedDependentMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractAdvancedDependentMod.java index 24fd9939..04aeb2d2 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractAdvancedDependentMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractAdvancedDependentMod.java @@ -26,18 +26,6 @@ public void importMod(Map map) throws ModProcessingException { TextAreaHelper.appendText(I18n.INSTANCE.get("textArea.import.imported") + " " + getType() + " - " + map.get("mod_name")); } - /** - * Analyses all dependencies of this mod - * - * @throws ModProcessingException If analysis of a mod fails - */ - @Override - public final void analyzeDependencies() throws ModProcessingException { - for (AbstractBaseMod mod : getDependencies()) { - mod.analyzeFile(); - } - } - @Override @SuppressWarnings("unchecked") public final Map getExportMap(String name) throws ModProcessingException { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleDependentMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleDependentMod.java index 41df8395..001012aa 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleDependentMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleDependentMod.java @@ -21,18 +21,6 @@ public void importMod(Map map) throws ModProcessingException { TextAreaHelper.appendText(I18n.INSTANCE.get("textArea.import.imported") + " " + getType() + " - " + map.get("mod_name")); } - /** - * Analyses all dependencies of this mod - * - * @throws ModProcessingException If analysis of a mod fails - */ - @Override - public final void analyzeDependencies() throws ModProcessingException { - for (AbstractBaseMod mod : getDependencies()) { - mod.analyzeFile(); - } - } - @Override @SuppressWarnings("unchecked") public Map getExportMap(String name) throws ModProcessingException { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/DependentMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/DependentMod.java index 16a24a9b..595d0231 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/DependentMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/DependentMod.java @@ -29,7 +29,12 @@ public interface DependentMod { * * @throws ModProcessingException If analysis of a mod fails */ - void analyzeDependencies() throws ModProcessingException; + default void analyzeDependencies() throws ModProcessingException { + for (AbstractBaseMod mod : getDependencies()) { + mod.analyzeFile(); + } + System.out.println("ANALYZING DEPENDENCIES IN CODE"); + } /** * Returns a map that contains the dependencies of the mod. This map is printed into the export file. From 773335553ce7898196180ff7373a7035fa5f4b37 Mon Sep 17 00:00:00 2001 From: Louis Date: Tue, 21 Dec 2021 19:29:17 +0100 Subject: [PATCH 05/15] Updated default content files for BUILD 2021.12.21A --- .../util/manager/DefaultContentManager.java | 2 +- .../default_content/default_npcGames.txt | 2 +- .../default_content/default_themes_en.txt | 18 ++++++++-- .../default_content/default_themes_ge.txt | 34 +++++++++++++------ 4 files changed, 42 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index 9690b8dd..5eda1f6b 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -33,7 +33,7 @@ public class DefaultContentManager { * This is the version in which the default content files are initially saved. * It indicates to what game update the default files correspond that ship with this tool. */ - private static final String DEFAULT_CONTENT_VERSION = "BUILD 2021.12.04A"; + private static final String DEFAULT_CONTENT_VERSION = "BUILD 2021.12.21A"; private static final String NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL = "https://www.dropbox.com/s/hd7f7c2b9ybr5gt/newest_default_content_version.txt?dl=1"; private static final String NEWEST_DEFAULT_CONTENT_DOWNLOAD_URL = "https://www.dropbox.com/s/7l89pg9x4venqje/newest_default_content.toml?dl=1"; public static final File DEFAULT_CONTENT_FILE = ModManagerPaths.MAIN.getPath().resolve("default_content.toml").toFile(); diff --git a/src/main/resources/default_content/default_npcGames.txt b/src/main/resources/default_content/default_npcGames.txt index 24acd830..a7ad7c66 100644 --- a/src/main/resources/default_content/default_npcGames.txt +++ b/src/main/resources/default_content/default_npcGames.txt @@ -895,7 +895,7 @@ Paris <1> Performance <17> Peril and Tactics <4><5><13> Personis <2><3><15> -Peters Day <0><6> +Peter's Day <0><6> Phalanx Crisis <5><12><14><16> Phantom: SpecOps <5> Phantombase <5><14><16> diff --git a/src/main/resources/default_content/default_themes_en.txt b/src/main/resources/default_content/default_themes_en.txt index ae3dc57d..0b37d7d7 100644 --- a/src/main/resources/default_content/default_themes_en.txt +++ b/src/main/resources/default_content/default_themes_en.txt @@ -105,7 +105,7 @@ Fire Department Trains Special Forces Druids -Fruits +Fruit Chemistry Physics Puzzles @@ -213,4 +213,18 @@ Skateboards Handball Table Tennis Sailing -Fruit \ No newline at end of file +Skiing +Deck Building +Volleyball +Darts +Billiards +Athletics +Mountaineering +Bowling +Fencing +Squash +Hiking +Archery +Kickboxing +Kung Fu +Parkour \ No newline at end of file diff --git a/src/main/resources/default_content/default_themes_ge.txt b/src/main/resources/default_content/default_themes_ge.txt index afc43631..96604486 100644 --- a/src/main/resources/default_content/default_themes_ge.txt +++ b/src/main/resources/default_content/default_themes_ge.txt @@ -42,12 +42,12 @@ Singen <0><1><9><15> Tanzen <0><1><6><8><12><15> Spionage <0><1><4><5><6><12><13><14><16> Sport <0><7><8><9><10><17> -Flugzeuge <4><5><7><8> +Flugzeuge <4><5><7><8><17> Ninjas <5><6><10><12><14><15><16> Panzer <4><5><7><13><14><16> Fantasie <0><1><2><3><4><5><6><10><12><13><14><15><16> Aliens <4><5><12><13><14><16> -Roboter <4><5><7><10><12><13><14><16> +Roboter <4><5><6><7><10><12><13><14><16> Kinder <0><1><2><6><8><12><15> Schule <0><1><6><9><11><15> Dungeons <2><3><5><6><9><11><13><14><16> @@ -78,18 +78,18 @@ Assassinen <5><6><10><14><15><16> Portale <0><1><5><6><14><16> Würmer <0><1><5> Götter <2><3><5><6><10><11><13><14><16> -Feen <0><1><2><6><15> +Feen <0><1><3><2><6><15> Trolle <2><3><5><6><10><13><14><16> Skelette <2><3><5><6><10><12><14><16> Kunst <0><1><9><15> Glücksspiel <0><1><4><7><9> -Erotik <1><9><12><15> +Erotik <1><2><9><12><15> Schätze <0><1><2><3><5><6><9><11><15> Pflanzen <0><1><5><6><11><13> Mathematik <0><1><9> Landwirtschaft <0><1><4><7><9><11> -Cowboys <5><6><11><11><13><14><15><16> -Zeitreisen <0><1><2><5><6><12><14><16> +Cowboys <5><6><11><12><13><14><15><16> +Zeitreisen <0><1><2><3><5><6><12><14><16> Dinosaurier <5><6><10><13><14><16> Parallelwelten <0><1><2><5><6><12><14><16> Elemente <0><1><4><6> @@ -154,7 +154,7 @@ Hexen <2><3><5><6><12><14><16> Kriminalität <2><4><5><9><11><12><14><16> Extremsport <6><7><8> Paintball <5><6><7><8> -Planeten <0><1><2><2><4><5><7><9><11><13> +Planeten <0><1><2><3><4><5><7><9><11><13> Evolution <0><1><4><6><7><11> Komödie <2><5><6><12><15> Survival <5><6><7><11><14><16> @@ -167,7 +167,7 @@ Unternehmen <4><7><8><9><11><13> Wrestling <5><7><8><9><10> Tintenfische <0><1><6> Bildung <0><1><4><9><11> -Anime <2><5><6><12><15> +Anime <2><3><5><6><12><15> Krokodile <5><6> Kino <4><9><11> Fernsehen <1><4><9><11> @@ -209,8 +209,22 @@ Spielkarten <0><1><4> Fallschirmspringen <0><5><6><7><8><14><16><17> Klettern <0><5><6><7><8><14><16> Jetski <0><7><8><17> -Skateboards <1><6><7><8><16><17> +Skateboards <0><6><7><8><17> Handball <0><8><9> Tischtennis <0><8><9> Segeln <0><4><7><8><13><16><17> -Früchte <0><1><6><16> \ No newline at end of file +Skifahren <0><6><7><8><17> +Deck-Building <0><1><2><3><4><13> +Volleyball <0><8><9> +Dart <0><8> +Billiard <0><8> +Leichtathletik <0><8><9> +Bergsteigen <0><5><6><7><8><14><15> +Bowling <0><8> +Fechten <0><2><3><5><6><8><10><13><14><16> +Squash <0><8><9> +Wandern <1><2><6><7><8><16> +Bogenschießen <0><5><6><7><8><14><16> +Kickboxen <5><6><8><9><10> +Kung Fu <5><6><8><9><10> +Parkour <0><5><6><8><14><16> \ No newline at end of file From 2537ca97db55fafca8d6da6579527379b0335d10 Mon Sep 17 00:00:00 2001 From: LMH01 Date: Tue, 4 Jan 2022 11:39:05 +0100 Subject: [PATCH 06/15] Updated default content files for BUILD 2022.01.03A --- .../github/lmh01/mgt2mt/util/manager/DefaultContentManager.java | 2 +- src/main/resources/default_content/default_licences.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index 5eda1f6b..77e50ac1 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -33,7 +33,7 @@ public class DefaultContentManager { * This is the version in which the default content files are initially saved. * It indicates to what game update the default files correspond that ship with this tool. */ - private static final String DEFAULT_CONTENT_VERSION = "BUILD 2021.12.21A"; + private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.03A"; private static final String NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL = "https://www.dropbox.com/s/hd7f7c2b9ybr5gt/newest_default_content_version.txt?dl=1"; private static final String NEWEST_DEFAULT_CONTENT_DOWNLOAD_URL = "https://www.dropbox.com/s/7l89pg9x4venqje/newest_default_content.toml?dl=1"; public static final File DEFAULT_CONTENT_FILE = ModManagerPaths.MAIN.getPath().resolve("default_content.toml").toFile(); diff --git a/src/main/resources/default_content/default_licences.txt b/src/main/resources/default_content/default_licences.txt index 32231345..dfdf9dae 100644 --- a/src/main/resources/default_content/default_licences.txt +++ b/src/main/resources/default_content/default_licences.txt @@ -137,7 +137,7 @@ Dr Mouse [MOVIE] Found [MOVIE] Roboformers: Dark of the Sum [MOVIE] The Bad Dinosaur [MOVIE] -She Who Gets Slapped [MOVIE] +One Who Gets Slapped [MOVIE] Kidnapped 2 [MOVIE] Failien 3 [MOVIE] Bob and the Beanstalk [MOVIE] From 733f37ecfb420b8b2257c1fe6dc24e66fa6ab59e Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 10 Jan 2022 19:18:16 +0100 Subject: [PATCH 07/15] Updated default content files for BUILD 2022.01.10A --- .../util/manager/DefaultContentManager.java | 2 +- .../default_content/default_npcGames.txt | 64 +++++++++---------- .../default_content/default_publisher.txt | 7 +- .../default_content/default_themes_en.txt | 22 ++++++- .../default_content/default_themes_ge.txt | 22 ++++++- 5 files changed, 81 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index 77e50ac1..6dff8679 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -33,7 +33,7 @@ public class DefaultContentManager { * This is the version in which the default content files are initially saved. * It indicates to what game update the default files correspond that ship with this tool. */ - private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.03A"; + private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.10A"; private static final String NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL = "https://www.dropbox.com/s/hd7f7c2b9ybr5gt/newest_default_content_version.txt?dl=1"; private static final String NEWEST_DEFAULT_CONTENT_DOWNLOAD_URL = "https://www.dropbox.com/s/7l89pg9x4venqje/newest_default_content.toml?dl=1"; public static final File DEFAULT_CONTENT_FILE = ModManagerPaths.MAIN.getPath().resolve("default_content.toml").toFile(); diff --git a/src/main/resources/default_content/default_npcGames.txt b/src/main/resources/default_content/default_npcGames.txt index a7ad7c66..8b69a849 100644 --- a/src/main/resources/default_content/default_npcGames.txt +++ b/src/main/resources/default_content/default_npcGames.txt @@ -122,7 +122,7 @@ Big People <9><11> Big Questions <1> Big Samson <2><3><15> Big World <9><11> -Big Worms <0><6> +Big Superworm <0><6> Bionite <5><14><16> Biopath <4><5><13><14><16> BioRock <5><12><14><16> @@ -152,7 +152,7 @@ Blue Fantasies <1> Blue Maxim <5><12><14><16> Blue Spiders <0><6> Bluemind <0><1> -Bomb Raider <5><12><14><16> +Bomb Runner <5><12><14><16> Bombs <0><6> Bombs and Cannons <4><5><13><14><16> Botal <10> @@ -190,9 +190,9 @@ Car Dealer <9><11> Castle Master <2><3><15> Castle of Blood <10> Castlegear <4><13> -Castlemania <6> +Castle Action <6> Castlemaster <3><4> -Castlemaster <4><5><13> +Castle Hero <4><5><13> Castleplan <11> Castles and Crowns <4><5><13> Cayleth Adventure <2> @@ -314,7 +314,7 @@ Deadfight <10> Deadly Cannons <5><12><14><16> Deadly Comanche <7> Deadly Dogfights <7> -Deadly Fallout <3> +Deadly Adventure <3> Death of Elves <2><3><15> Deep Sea <5><12><14><16> Defcore <5><14><16> @@ -386,7 +386,7 @@ Dynamite Joe <5><12><14><16> Dynamityman <0><6> Dynaphaser <0> Eagles Nest <5><12><14><16> -Ear Of The Beholder <3> +Magic Dungeon <3> Earth Control <4><13> Earthworm Jimmy <2><3><15> East City <5><12><14><16> @@ -428,7 +428,7 @@ F16 Fighter <7> F22 Retal <7> F29: The Mission <7> FAFI Manager <9><11> -FAFI Soccer <8> +Fantasy Soccer <8> Falcon Commander <7> Falcon Simulation <7> Falconeye <5><12><14><16> @@ -454,7 +454,7 @@ Fighter Squad <10> Fighters And Elves <10> Fighting <10> Fightinglife <10> -Fights on Street <10> +Fights of Blood <10> Fightstyle <10> Film Producer <9><11> Fire <5><12><14><16> @@ -462,7 +462,7 @@ Fire N' Water <2><3><15> Fire of the Worlds <2><3><15> Fireaxe <5><12><14><16> Fires of Fortune <4><5><13><14><16> -First Ninja <5><12><14><16> +First Super Monk <5><12><14><16> Fleet of Britain <4><13> Fleetnight <4><5><13> Flight Sim <7> @@ -502,7 +502,7 @@ G-Zero: Legends <17> Galactic Trans <9><11> Galactica <7> Galax Forty <2><3><15> -Galax Invaders <5><12><14><16> +Galaxy Action <5><12><14><16> Galaxis Civlizations <4> Galaxy Ace <12> Galaxy Crusade <5><12><14><16> @@ -527,7 +527,7 @@ Ghost Guardians <3> Ghostcry <15> Ghosthunter <2><3><15> Ghostpoint <5> -Ghosts N' Zombies <2><3><15> +Ghosts Adventure <2><3><15> Ghosts Who Smiles <0><6> Giants of Magic <4><13> Gigo Brothers <2><3><15> @@ -583,7 +583,7 @@ HERO Operation <5> Heroes and Rulers <4> Heroes And Snakes <0><6> Heroes of Mandia <10> -Heroes of Might & Spells <4> +Heroes of Magic <4> Heroes of Premierships <8><9> Hexagonion <1> Hidden By The Moon <2><3><15> @@ -612,7 +612,7 @@ Huguna: The Conflict <5><12><14><16> Human Freedom <4><13> Huntingace <5><14><16> Huntingmaster <5><14><16> -Hurrican <5><12><14><16> +Hurtron <5><12><14><16> Hyper Drive Rally <17> Hyperjump <7> Ice Hockey <8> @@ -683,7 +683,7 @@ Knights & Dragons <2><3><15> Knights Without Time <2><3><15> Knightscape <3> Knightslayer <4><5><13><14><16> -Kolin McRay Rally <7> +Kings of Rally <7> Kombat <10> Koroshu Final <1> Krillius <5><12><14><16> @@ -708,8 +708,8 @@ Law of the Nord <5><12><14><16> Leaders and Masters <4><5><13> LeBuck's Revenge <2><3><15> Legend of Fearhill <3> -Legends of Orion <4> -Lemmerlings <1> +Legends of Saturn <4> +Lions Puzzle <1> Leopard Commander <7> Life At The Dungeons <2><3><15> Lifepath <0><1> @@ -726,7 +726,7 @@ Little Joe <2><3><15> Little Kingdom <4><13> Little Kung Fu Girl <10> Little Pieces <1> -Little Settlers <4> +Little Builders <4> Living Danger <5><12><14><16> Load Runner <0><6> Loco Emprie <9><11> @@ -758,7 +758,7 @@ Martialtime <5> Martialworld <5> Massive Effect <3> Master of Arionis <4><13> -Master of Dungeons <3> +Hero of Dungeons <3> Master of Ring <10> Master of Universe <4><13> Masterix <1> @@ -766,7 +766,7 @@ Masters and Times <0><1> Masters of Swords <4><13> Max IQ <1> Maximum Speed <17> -Maximum Speed <7><17> +Maximum Velocity <7><17> Maximus <1> MDDK <5><12><14><16> Mech Force <5><12><14><16> @@ -794,8 +794,8 @@ Mi-24 Hind <7> Mice In Space <2><3><15> Midnight Kart <17> Midnight Resistance <4><5><13> -Might & Spells <3> -Might of Magic <2><3><15> +Dungeons & Spells <3> +Song of Magic <2><3><15> Mikey Dison's Punch Out <8> Mine Defender <0><6> Miniature Golf <8> @@ -876,8 +876,8 @@ Ogres Of Autumn <2><3><15> OID: Revenge of Moh <0><6> Oil Giant <9><11> Oil Manager <9><11> -Oltima Quest <3> -Oltimo <2><3><15> +Ultimate Quest <3> +Oltimoon <2><3><15> Olympic Games 2000 <8> One and Two <1> Onexgears <2><3><15> @@ -932,11 +932,11 @@ Price of Shadows <4><5><13><14><16> Primary <5><12><14><16> Prince of Darkness <2><3><15> Prince of Europe <4><13> -Prince of India <2><3><15> +Prince of Magic <2><3><15> Prince of Light <2><3><15> Prince of Moon <2><3><15> Prince of Sun <2><3><15> -Prince Quest <2><3><15> +Princess Adventure <2><3><15> Prince Story <2><3><15> Prixx <0><6> Pro Buggy <7> @@ -944,7 +944,7 @@ Probotech <5><12><14><16> Project DRIVE <17> Project Stealth Warrior <7> Psycho Cat <0><6> -Puk-Man <0><6> +Puccelsious <0><6> Putter <8> Puzz Ballistic <0><6> Puzzelmania <1> @@ -1033,7 +1033,7 @@ Scared By The Dungeons <2><3><15> School Days <0> School Manager <9><11> School of Words <1> -Scrolls of Skyrim <2><3><15> +Scrolls of Darkness <2><3><15> Sea Commander <7> Sea Strike <4><13> Search for Eden <2><3><15> @@ -1097,7 +1097,7 @@ Soul Signs <2> Soulcast <4><5><13><14><16> Soullife <3><5> Soulmaster <4><5><13><14><16> -Souls of Dark <2><3><15> +Souls of Heaven <2><3><15> Souls of Nightmares <2> Souls of Rose <5><12><14><16> Soulstrike <4><5><13><14><16> @@ -1149,7 +1149,7 @@ Starrabbit <2><3><15> Stars of Dynasties <4><13> Stealth Fighter <7> Steel Fighters <10> -Steel Gear Solid <5><12><14><16> +Steel Soldier <5><12><14><16> Steel Knights <2><3><15> Steel Machines <7> Stocks and Shares <9><11> @@ -1228,7 +1228,7 @@ Sword of Antara <10> Swordfighter <10> Swordmage <10> Symphony <1> -System Zok <14> +System Cyprus <14> Takatis <5><12><14><16> Tankfighter <5><7> Tatrus <0><6> @@ -1295,7 +1295,7 @@ The Hot Eye <5><12><14><16> The Hunter's Sons <2><3><15> The Ice of the Moon <2><3><15> The Inca <2><3><15> -The Kaos Engine <5> +The Kasos Incident <5> The Lands of Orks <4><13> The Last Elf <2><3><15> The Last Mission <5><12><14><16> @@ -1318,7 +1318,7 @@ The Orbit <4><13> The Pacific <7> The Paper <1> The Patrol <5><12><14><16> -The Pirates <4><13> +The Pirates of Port Royal <4><13> The Pirates's Witches <2><3><15> The Planet <7> The President <4><13> diff --git a/src/main/resources/default_content/default_publisher.txt b/src/main/resources/default_content/default_publisher.txt index eee88a43..1a93a90c 100644 --- a/src/main/resources/default_content/default_publisher.txt +++ b/src/main/resources/default_content/default_publisher.txt @@ -77,4 +77,9 @@ Kung Entertainment Moyan Studios Superbell Tenzent -Zigna \ No newline at end of file +Zigna +Beta Softworks +BioSoft +Code Design +Maxus +TEKMO \ No newline at end of file diff --git a/src/main/resources/default_content/default_themes_en.txt b/src/main/resources/default_content/default_themes_en.txt index 0b37d7d7..18fa9515 100644 --- a/src/main/resources/default_content/default_themes_en.txt +++ b/src/main/resources/default_content/default_themes_en.txt @@ -227,4 +227,24 @@ Hiking Archery Kickboxing Kung Fu -Parkour \ No newline at end of file +Parkour +Romances +Mutants +Nature +Oceans +Mermaids +Musical Instrument +Dice Games +Crafting +Showbiz +Magic +Secret Society +Learning +Languages +Hedgehogs +Gladiators +Pharaohs +Zeppelins +Ancient +Machines +Raw Materials \ No newline at end of file diff --git a/src/main/resources/default_content/default_themes_ge.txt b/src/main/resources/default_content/default_themes_ge.txt index 96604486..d424adff 100644 --- a/src/main/resources/default_content/default_themes_ge.txt +++ b/src/main/resources/default_content/default_themes_ge.txt @@ -227,4 +227,24 @@ Wandern <1><2><6><7><8><16> Bogenschießen <0><5><6><7><8><14><16> Kickboxen <5><6><8><9><10> Kung Fu <5><6><8><9><10> -Parkour <0><5><6><8><14><16> \ No newline at end of file +Parkour <0><5><6><8><14><16> +Romanzen <2><12><15> +Mutanten <3><4><5><6><10><13><14><16> +Natur <0><1><4><7><9><11> +Ozeane <0><4><5><8><11><13><14><16> +Meerjungfrauen <2><6><12><15> +Musikinstrument <0> +Würfelspiele <0><1><4> +Handwerken <0><1><4><7><9><11> +Showgeschäft <9><11><15> +Magie <0><1><2><3><4><5><6><11><13><14><15><16> +Geheimbund <2><3><14><15><16> +Lernen <0><1><9><11> +Sprachen <0><1> +Igel <0><6> +Gladiatoren <4><5><6><8><9><10><14><15> +Pharaonen <0><1><2><4><6><9><11><13><14><16> +Zeppeline <4><5><7><9><13> +Antike <0><1><2><3><4><5><6><8><9><11><13><14><16> +Maschinen <0><9> +Rohstoffe <4><9><11><13> \ No newline at end of file From dc43f2e1a4b66a1efdabe22595fe852a075e9ad9 Mon Sep 17 00:00:00 2001 From: Louis Date: Tue, 11 Jan 2022 22:52:31 +0100 Subject: [PATCH 08/15] Updated default content files for BUILD 2022.01.11A --- .../lmh01/mgt2mt/util/manager/DefaultContentManager.java | 2 +- src/main/resources/default_content/default_npcGames.txt | 2 +- src/main/resources/default_content/default_platforms.txt | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index 6dff8679..38821c1c 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -33,7 +33,7 @@ public class DefaultContentManager { * This is the version in which the default content files are initially saved. * It indicates to what game update the default files correspond that ship with this tool. */ - private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.10A"; + private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.11A"; private static final String NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL = "https://www.dropbox.com/s/hd7f7c2b9ybr5gt/newest_default_content_version.txt?dl=1"; private static final String NEWEST_DEFAULT_CONTENT_DOWNLOAD_URL = "https://www.dropbox.com/s/7l89pg9x4venqje/newest_default_content.toml?dl=1"; public static final File DEFAULT_CONTENT_FILE = ModManagerPaths.MAIN.getPath().resolve("default_content.toml").toFile(); diff --git a/src/main/resources/default_content/default_npcGames.txt b/src/main/resources/default_content/default_npcGames.txt index 8b69a849..101c50e4 100644 --- a/src/main/resources/default_content/default_npcGames.txt +++ b/src/main/resources/default_content/default_npcGames.txt @@ -1306,7 +1306,7 @@ The little Magican <2><3><15> The little Pirate <2><3><15> The Lonely Destruction <5><12><14><16> The Mad Adventure <2><3><15> -The Magic Carpet <2><3><15> +The Magic Story <2><3><15> The Magicans <2><3><15> The Mall <9><11> The Manager <9><11> diff --git a/src/main/resources/default_content/default_platforms.txt b/src/main/resources/default_content/default_platforms.txt index 30f69c4b..f0b9c8a9 100644 --- a/src/main/resources/default_content/default_platforms.txt +++ b/src/main/resources/default_content/default_platforms.txt @@ -131,4 +131,10 @@ Intelvisual Amikos Mintendu System Super Mintendu System Mintendu 3DEX -Siga Play Gear II \ No newline at end of file +Siga Play Gear II +Commander C127 +Commander C63 +Commander Game System +Commander Game System II +Commander PETE +Commander VEC-20 \ No newline at end of file From b14714cc55d71c26bc2a55d4c0c372403263e0c6 Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 17 Jan 2022 23:45:50 +0100 Subject: [PATCH 09/15] Updated default content files for BUILD 2022.01.14A --- .../util/manager/DefaultContentManager.java | 2 +- .../default_content/default_npcGames.txt | 6 ++--- .../default_content/default_platforms.txt | 9 +++++++- .../default_content/default_publisher.txt | 8 ++++++- .../default_content/default_themes_en.txt | 7 +++++- .../default_content/default_themes_ge.txt | 23 +++++++++++-------- 6 files changed, 39 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index 38821c1c..83e39b72 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -33,7 +33,7 @@ public class DefaultContentManager { * This is the version in which the default content files are initially saved. * It indicates to what game update the default files correspond that ship with this tool. */ - private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.11A"; + private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.14A"; private static final String NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL = "https://www.dropbox.com/s/hd7f7c2b9ybr5gt/newest_default_content_version.txt?dl=1"; private static final String NEWEST_DEFAULT_CONTENT_DOWNLOAD_URL = "https://www.dropbox.com/s/7l89pg9x4venqje/newest_default_content.toml?dl=1"; public static final File DEFAULT_CONTENT_FILE = ModManagerPaths.MAIN.getPath().resolve("default_content.toml").toFile(); diff --git a/src/main/resources/default_content/default_npcGames.txt b/src/main/resources/default_content/default_npcGames.txt index 101c50e4..ecd0f77f 100644 --- a/src/main/resources/default_content/default_npcGames.txt +++ b/src/main/resources/default_content/default_npcGames.txt @@ -592,7 +592,7 @@ High IQ <1> Hightower <9><11> Hit the Head <0><6> Hobgoblin Of The Skull <2><3><15> -Hockey League <8> +Hockey Super League <8> Hockeyslam <8> Hokum Pilot <7> Hollywood <9><11> @@ -641,7 +641,7 @@ Ironbot <4><5><13><14><16> Ironcraft <4><5><13> Ironcrest <3> Ironcry <5> -Island of Monkeys <2><3><15> +Island of Secrets <2><3><15> Isle of Death <10> It Came From The Sea <0><6> Jack in Wonderland <2><3><15> @@ -1490,7 +1490,7 @@ Xeno Breed <5><12><14><16> Xeno One <7> Xeno Sports <8> xRacing <17> -Y-COM <4><13> +Y-Commander <4><13> Y-Out <5><12><14><16> Y-Plane <7> Y-Type <5><12><14><16> diff --git a/src/main/resources/default_content/default_platforms.txt b/src/main/resources/default_content/default_platforms.txt index f0b9c8a9..1a8bf763 100644 --- a/src/main/resources/default_content/default_platforms.txt +++ b/src/main/resources/default_content/default_platforms.txt @@ -137,4 +137,11 @@ Commander C63 Commander Game System Commander Game System II Commander PETE -Commander VEC-20 \ No newline at end of file +Commander VEC-20 +Tapple I +Tapple II +iTapple +iTapple 2 +iTapple 3 +iTapple 4 +iTapple 5 \ No newline at end of file diff --git a/src/main/resources/default_content/default_publisher.txt b/src/main/resources/default_content/default_publisher.txt index 1a93a90c..4597323d 100644 --- a/src/main/resources/default_content/default_publisher.txt +++ b/src/main/resources/default_content/default_publisher.txt @@ -82,4 +82,10 @@ Beta Softworks BioSoft Code Design Maxus -TEKMO \ No newline at end of file +TEKMO +Lukas Games +Parodax Interactive +SMK Corporation +Squall +Take 3 Software +Walve \ No newline at end of file diff --git a/src/main/resources/default_content/default_themes_en.txt b/src/main/resources/default_content/default_themes_en.txt index 18fa9515..5deb9f1d 100644 --- a/src/main/resources/default_content/default_themes_en.txt +++ b/src/main/resources/default_content/default_themes_en.txt @@ -247,4 +247,9 @@ Pharaohs Zeppelins Ancient Machines -Raw Materials \ No newline at end of file +Raw Materials +Kart Racing +Rallycross +Stock Car +Chess +Asteroids \ No newline at end of file diff --git a/src/main/resources/default_content/default_themes_ge.txt b/src/main/resources/default_content/default_themes_ge.txt index d424adff..fd6c0d6a 100644 --- a/src/main/resources/default_content/default_themes_ge.txt +++ b/src/main/resources/default_content/default_themes_ge.txt @@ -37,7 +37,7 @@ Wirtschaft <4><8><9><11><13><17> Detektive <1><2><5><6><12><14><15><16> Ufos <4><5><7><12><13><14><16> Werwölfe <2><3><5><6><10><12><14><15><16> -Jagen <3><5><6><14><15> +Jagen <3><5><6><7><14><15> Singen <0><1><9><15> Tanzen <0><1><6><8><12><15> Spionage <0><1><4><5><6><12><13><14><16> @@ -51,7 +51,7 @@ Roboter <4><5><6><7><10><12><13><14><16> Kinder <0><1><2><6><8><12><15> Schule <0><1><6><9><11><15> Dungeons <2><3><5><6><9><11><13><14><16> -Raumschiffe <4><5><6><7><12><13><14><16> +Raumschiffe <4><5><6><7><12><13><14><16><17> Gangster <4><5><6><9><12><14><16> Militär <4><5><7><12><13><14><15> Weltall <0><1><2><3><4><5><6><7><9><10><11><13><14><16> @@ -59,7 +59,7 @@ Städte <0><1><4><7><9><11><13> Vampire <2><3><5><6><12><14><16> Zombies <5><6><11><14><15><16> Spielentwicklung <4><9> -Polizei <2><4><5><6><7><9><11><13><14><16> +Polizei <2><4><5><6><7><9><11><13><14><16><17> Rennsport <7><8><9><17> Fußball <0><7><8><9> Boxen <5><6><8><9><10><14><16> @@ -91,7 +91,7 @@ Landwirtschaft <0><1><4><7><9><11> Cowboys <5><6><11><12><13><14><15><16> Zeitreisen <0><1><2><3><5><6><12><14><16> Dinosaurier <5><6><10><13><14><16> -Parallelwelten <0><1><2><5><6><12><14><16> +Parallelwelten <0><1><2><3><5><6><12><14><16> Elemente <0><1><4><6> Cyberspace <0><1><5><6><12><14><16> Nahrung <0><1><4><9> @@ -107,7 +107,7 @@ Spezialeinheiten <4><5><6><13><14><16> Druiden <2><3><6><13><14><16> Früchte <0><1><6><16> Chemie <0><1><4> -Physik <0><1><4><14><16> +Physik <0><1><4><14><16><17> Puzzles <0><1><5><6><14><16> Fische <0><1><6><7><8><9> Hubschrauber <5><7><13><14><16> @@ -119,7 +119,7 @@ Steine <0><1><4><5><6><11> Sandbox <3><7><9><11><14><16> Kochen <0><1><4><7><9><11> Affen <2><5><6> -Pferde <6><7><8><9> +Pferde <6><7><8><9><17> Fahrrad <7><8><9><17> Burgen <3><4><5><6><9><11><13><14><16> Raumstationen <3><4><5><6><7><8><11><13><14><16> @@ -152,7 +152,7 @@ U-Boote <4><5><7><13><14><16> Karate <5><6><8><10><14><16> Hexen <2><3><5><6><12><14><16> Kriminalität <2><4><5><9><11><12><14><16> -Extremsport <6><7><8> +Extremsport <6><7><8><17> Paintball <5><6><7><8> Planeten <0><1><2><3><4><5><7><9><11><13> Evolution <0><1><4><6><7><11> @@ -161,7 +161,7 @@ Survival <5><6><7><11><14><16> Doktoren <7><9><11><15> Fitness <0><1><6><8><9><10><11> Monster <2><3><5><6><10><11><14><16> -Historisch <2><4><5><7><8><9><13><14><16> +Historisch <2><4><5><7><8><9><13><14><16><17> Tiere <0><1><5><6><7><8><9><10><11><13> Unternehmen <4><7><8><9><11><13> Wrestling <5><7><8><9><10> @@ -247,4 +247,9 @@ Pharaonen <0><1><2><4><6><9><11><13><14><16> Zeppeline <4><5><7><9><13> Antike <0><1><2><3><4><5><6><8><9><11><13><14><16> Maschinen <0><9> -Rohstoffe <4><9><11><13> \ No newline at end of file +Rohstoffe <4><9><11><13> +Kartrennen <7><8><9><17> +Rallycross <7><8><9><17> +Stock Car <7><8><9><17> +Schach <0><4> +Asteroiden <0><5><7> \ No newline at end of file From 0c4e1a911c75dba06c6ee0366243ed841304321b Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 21 Jan 2022 17:41:13 +0100 Subject: [PATCH 10/15] Updated default content files for BUILD 2022.01.21A --- .../lmh01/mgt2mt/util/manager/DefaultContentManager.java | 2 +- src/main/resources/default_content/default_hardware.txt | 2 ++ src/main/resources/default_content/default_npcGames.txt | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index 83e39b72..d159422e 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -33,7 +33,7 @@ public class DefaultContentManager { * This is the version in which the default content files are initially saved. * It indicates to what game update the default files correspond that ship with this tool. */ - private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.14A"; + private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.21A"; private static final String NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL = "https://www.dropbox.com/s/hd7f7c2b9ybr5gt/newest_default_content_version.txt?dl=1"; private static final String NEWEST_DEFAULT_CONTENT_DOWNLOAD_URL = "https://www.dropbox.com/s/7l89pg9x4venqje/newest_default_content.toml?dl=1"; public static final File DEFAULT_CONTENT_FILE = ModManagerPaths.MAIN.getPath().resolve("default_content.toml").toFile(); diff --git a/src/main/resources/default_content/default_hardware.txt b/src/main/resources/default_content/default_hardware.txt index 8f1dd49c..28f47cbe 100644 --- a/src/main/resources/default_content/default_hardware.txt +++ b/src/main/resources/default_content/default_hardware.txt @@ -58,6 +58,8 @@ No storage option 4 kilobyte on cartridge 8 kilobyte on cartridge 32 kilobyte on cartridge +16 megabyte cartridge +128 megabyte cartridge 512 kilobyte memory card 4 megabyte memory card 32 megabyte memory card diff --git a/src/main/resources/default_content/default_npcGames.txt b/src/main/resources/default_content/default_npcGames.txt index ecd0f77f..f30ad42e 100644 --- a/src/main/resources/default_content/default_npcGames.txt +++ b/src/main/resources/default_content/default_npcGames.txt @@ -1511,4 +1511,5 @@ Zoro the Alien <2><3><15> Zortium <1> Zuk MacCrack <2><3><15> Zweihanders <5><12><14><16> -Zybermorphing <5> \ No newline at end of file +Zybermorphing <5> +Optimoon <2><3><15> \ No newline at end of file From b350b66cca064187cb79b2506db79acbed1096ff Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 14 Feb 2022 17:07:10 +0100 Subject: [PATCH 11/15] It is now possible to add npc ips. Began to rework how the backend of the tool works. --- README.md | 2 + .../lmh01/mgt2mt/MadGamesTycoon2ModTool.java | 11 +- .../data_stream/ReadDefaultContent.java | 4 + .../github/lmh01/mgt2mt/mod/AntiCheatMod.java | 2 +- .../lmh01/mgt2mt/mod/CopyProtectMod.java | 2 +- .../lmh01/mgt2mt/mod/EngineFeatureMod.java | 2 +- .../lmh01/mgt2mt/mod/GameplayFeatureMod.java | 2 +- .../lmh01/mgt2mt/mod/HardwareFeatureMod.java | 2 +- .../github/lmh01/mgt2mt/mod/HardwareMod.java | 2 +- .../github/lmh01/mgt2mt/mod/NpcEngineMod.java | 2 +- .../com/github/lmh01/mgt2mt/mod/NpcIpMod.java | 237 ++++++++++++++++++ .../github/lmh01/mgt2mt/mod/PlatformMod.java | 2 +- .../github/lmh01/mgt2mt/mod/PublisherMod.java | 2 +- .../mod/managed/AbstractAdvancedMod.java | 1 + .../mgt2mt/mod/managed/AbstractBaseMod.java | 7 + .../managed/AbstractSimpleDependentMod.java | 19 +- .../mgt2mt/mod/managed/AbstractSimpleMod.java | 6 + .../mgt2mt/mod/managed/DependentMod.java | 1 - .../mod/managed/ModConstructionType.java | 17 ++ .../lmh01/mgt2mt/mod/managed/ModManager.java | 13 + .../lmh01/mgt2mt/mod/managed/NpcIp.java | 175 +++++++++++++ .../lmh01/mgt2mt/mod/managed/TargetGroup.java | 47 ++++ .../lmh01/mgt2mt/util/ContentEditor.java | 1 - .../mgt2mt/util/helper/WindowHelper.java | 24 +- .../mgt2mt/util/manager/SharingManager.java | 2 +- .../default_content/default_npcIps.txt | 200 +++++++++++++++ src/main/resources/locale/de.txt | 31 +++ src/main/resources/locale/en.txt | 31 +++ 28 files changed, 828 insertions(+), 19 deletions(-) create mode 100644 src/main/java/com/github/lmh01/mgt2mt/mod/NpcIpMod.java create mode 100644 src/main/java/com/github/lmh01/mgt2mt/mod/managed/ModConstructionType.java create mode 100644 src/main/java/com/github/lmh01/mgt2mt/mod/managed/NpcIp.java create mode 100644 src/main/java/com/github/lmh01/mgt2mt/mod/managed/TargetGroup.java create mode 100644 src/main/resources/default_content/default_npcIps.txt diff --git a/README.md b/README.md index 0ab3c8d3..13a8d89d 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ Please create a new initial backup always when the game has been updated to prev To update the initial backup go to `Backup -> Create backup -> Create new initial backup` and follow the instructions +### Most new mods will only take effect once a new game is started! + ### WARNING: #### WHEN THE GAME IS UPDATED IT MIGHT BE POSSIBLE THAT YOUR MODIFICATIONS TO THE GAME FILES ARE LOST diff --git a/src/main/java/com/github/lmh01/mgt2mt/MadGamesTycoon2ModTool.java b/src/main/java/com/github/lmh01/mgt2mt/MadGamesTycoon2ModTool.java index 4e755de6..f0042c6f 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/MadGamesTycoon2ModTool.java +++ b/src/main/java/com/github/lmh01/mgt2mt/MadGamesTycoon2ModTool.java @@ -18,7 +18,7 @@ public class MadGamesTycoon2ModTool { public static final OSType OS_TYPE; private static final Logger LOGGER = LoggerFactory.getLogger(MadGamesTycoon2ModTool.class); - public static final String VERSION = "3.0.3";//Version numbers that include "dev" are not checked for updates / tool will notify if update is available + public static final String VERSION = "3.1.0-dev";//Version numbers that include "dev" are not checked for updates / tool will notify if update is available public static final String CURRENT_RELEASE_VERSION = "3.0.3";//When this version number has been detected as the newest release version the update available message is held back static { @@ -30,6 +30,13 @@ public class MadGamesTycoon2ModTool { LOGGER.info("MGT2_Mod_Tool is running under " + System.getProperty("os.name")); } + /* + * TODO + * When/during rework of abstract mod classes rework how export is handeled: When a corrupt mod has been found the + * export should not crash, instead the mod that is corrupt should not be exported and a message should be printed to the user. + * Maybe add function "modValid" or something to the the abstract mod classes (the classes similar to NpcIp). + * Or check if mod is valid when it is constructed initially. + * */ public static void main(String[] args) { Settings.importSettings(); if (Settings.language.equals("English")) { @@ -53,7 +60,7 @@ public static void main(String[] args) { TextAreaHelper.printStackTrace(e); e.printStackTrace(); } - Backup.createInitialBackup();//Creates a initial backup when it does not already exist. + Backup.createInitialBackup();//Creates an initial backup when it does not already exist. } else { LOGGER.info("Initial backups where not created/completed because the mgt2 folder is invalid"); } diff --git a/src/main/java/com/github/lmh01/mgt2mt/data_stream/ReadDefaultContent.java b/src/main/java/com/github/lmh01/mgt2mt/data_stream/ReadDefaultContent.java index 9dbdf91d..d5b4600e 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/data_stream/ReadDefaultContent.java +++ b/src/main/java/com/github/lmh01/mgt2mt/data_stream/ReadDefaultContent.java @@ -4,6 +4,7 @@ import com.moandjiezana.toml.Toml; import java.io.IOException; +import java.nio.file.Files; import java.util.ArrayList; import java.util.List; @@ -35,6 +36,9 @@ public static String[] getDefault(String defaultContentName) throws IOException public static String[] getDefault(String defaultContentName, Replacer replacer) throws IOException { ArrayList arrayList = new ArrayList<>(); List list = toml.getList(defaultContentName.replace(".txt", "")); + if (list == null) { + Files.delete(DefaultContentManager.DEFAULT_CONTENT_FILE.toPath()); + } for (Object obj : list) { if (replacer != null) { arrayList.add(replacer.replace(obj.toString())); diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/AntiCheatMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/AntiCheatMod.java index 8c584518..873432b8 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/AntiCheatMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/AntiCheatMod.java @@ -69,7 +69,7 @@ protected void openAddModGui() throws ModProcessingException { JSpinner spinnerCost = WindowHelper.getCostSpinner(); JSpinner spinnerDevelopmentCost = WindowHelper.getDevCostSpinner(); - Object[] params = {WindowHelper.getNamePanel(this, textFieldName), buttonAddNameTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST)}; + Object[] params = {WindowHelper.getNamePanel(textFieldName), buttonAddNameTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST)}; while (true) { if (JOptionPane.showConfirmDialog(null, params, I18n.INSTANCE.get("commonText.add.upperCase") + ": " + getType(), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { if (!textFieldName.getText().equals(I18n.INSTANCE.get("mod.antiCheat.addMod.components.textFieldName.initialValue"))) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/CopyProtectMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/CopyProtectMod.java index c48bde5e..97d94cd5 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/CopyProtectMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/CopyProtectMod.java @@ -74,7 +74,7 @@ protected void openAddModGui() throws ModProcessingException { JSpinner spinnerCost = WindowHelper.getCostSpinner(); JSpinner spinnerDevelopmentCost = WindowHelper.getDevCostSpinner(); - Object[] params = {WindowHelper.getNamePanel(this, textFieldName), buttonAddNameTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST)}; + Object[] params = {WindowHelper.getNamePanel(textFieldName), buttonAddNameTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST)}; while (true) { if (JOptionPane.showConfirmDialog(null, params, I18n.INSTANCE.get("commonText.add.upperCase") + ": " + getType(), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { if (!textFieldName.getText().equals(I18n.INSTANCE.get("mod.copyProtect.addMod.components.textFieldName.initialValue"))) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/EngineFeatureMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/EngineFeatureMod.java index 26ded54c..0a8a2785 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/EngineFeatureMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/EngineFeatureMod.java @@ -96,7 +96,7 @@ protected void openAddModGui() throws ModProcessingException { JSpinner spinnerSound = WindowHelper.getPointSpinner(); JSpinner spinnerTech = WindowHelper.getPointSpinner(); - Object[] params = {WindowHelper.getNamePanel(this, textFieldName), buttonAddNameTranslations, WindowHelper.getDescriptionPanel(textFieldDescription), buttonAddDescriptionTranslations, WindowHelper.getTypePanel(comboBoxFeatureType), WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerResearchPoints, SpinnerType.RESEARCH_POINT_COST), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerResearchCost, SpinnerType.RESEARCH_COST), WindowHelper.getSpinnerPanel(spinnerTechLevel, SpinnerType.TECH_LEVEL), WindowHelper.getSpinnerPanel(spinnerGameplay, SpinnerType.GAMEPLAY), WindowHelper.getSpinnerPanel(spinnerGraphic, SpinnerType.GRAPHIC), WindowHelper.getSpinnerPanel(spinnerSound, SpinnerType.SOUND), WindowHelper.getSpinnerPanel(spinnerTech, SpinnerType.TECH)}; + Object[] params = {WindowHelper.getNamePanel(textFieldName), buttonAddNameTranslations, WindowHelper.getDescriptionPanel(textFieldDescription), buttonAddDescriptionTranslations, WindowHelper.getTypePanel(comboBoxFeatureType), WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerResearchPoints, SpinnerType.RESEARCH_POINT_COST), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerResearchCost, SpinnerType.RESEARCH_COST), WindowHelper.getSpinnerPanel(spinnerTechLevel, SpinnerType.TECH_LEVEL), WindowHelper.getSpinnerPanel(spinnerGameplay, SpinnerType.GAMEPLAY), WindowHelper.getSpinnerPanel(spinnerGraphic, SpinnerType.GRAPHIC), WindowHelper.getSpinnerPanel(spinnerSound, SpinnerType.SOUND), WindowHelper.getSpinnerPanel(spinnerTech, SpinnerType.TECH)}; while (true) { if (JOptionPane.showConfirmDialog(null, params, I18n.INSTANCE.get("commonText.add.upperCase") + ": " + getType(), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { if (!textFieldName.getText().isEmpty() && !textFieldName.getText().equals(I18n.INSTANCE.get("commonText.enterFeatureName")) && !textFieldDescription.getText().isEmpty() && !textFieldDescription.getText().equals(I18n.INSTANCE.get("commonText.enterDescription"))) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/GameplayFeatureMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/GameplayFeatureMod.java index d2ba86db..89a2c2f3 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/GameplayFeatureMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/GameplayFeatureMod.java @@ -167,7 +167,7 @@ protected void openAddModGui() throws ModProcessingException { checkBoxCompatibleWithMobile.setToolTipText(I18n.INSTANCE.get("mod.gameplayFeature.addMod.components.mobileCompatibility.toolTip")); checkBoxCompatibleWithMobile.setSelected(true); - Object[] params = {WindowHelper.getNamePanel(this, textFieldName), buttonAddNameTranslations, WindowHelper.getDescriptionPanel(textFieldDescription), buttonAddDescriptionTranslations, WindowHelper.getTypePanel(comboBoxFeatureType), WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerResearchPoints, SpinnerType.RESEARCH_POINT_COST), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerResearchCost, SpinnerType.RESEARCH_COST), WindowHelper.getSpinnerPanel(spinnerGameplay, SpinnerType.GAMEPLAY), WindowHelper.getSpinnerPanel(spinnerGraphic, SpinnerType.GRAPHIC), WindowHelper.getSpinnerPanel(spinnerSound, SpinnerType.SOUND), WindowHelper.getSpinnerPanel(spinnerTech, SpinnerType.TECH), buttonBadGenres, buttonGoodGenres, checkBoxCompatibleWithArcadeCabinets, checkBoxCompatibleWithMobile}; + Object[] params = {WindowHelper.getNamePanel(textFieldName), buttonAddNameTranslations, WindowHelper.getDescriptionPanel(textFieldDescription), buttonAddDescriptionTranslations, WindowHelper.getTypePanel(comboBoxFeatureType), WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerResearchPoints, SpinnerType.RESEARCH_POINT_COST), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerResearchCost, SpinnerType.RESEARCH_COST), WindowHelper.getSpinnerPanel(spinnerGameplay, SpinnerType.GAMEPLAY), WindowHelper.getSpinnerPanel(spinnerGraphic, SpinnerType.GRAPHIC), WindowHelper.getSpinnerPanel(spinnerSound, SpinnerType.SOUND), WindowHelper.getSpinnerPanel(spinnerTech, SpinnerType.TECH), buttonBadGenres, buttonGoodGenres, checkBoxCompatibleWithArcadeCabinets, checkBoxCompatibleWithMobile}; while (true) { if (JOptionPane.showConfirmDialog(null, params, I18n.INSTANCE.get("commonText.add.upperCase") + ": " + getType(), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { if (!textFieldName.getText().isEmpty() && !textFieldName.getText().equals(I18n.INSTANCE.get("commonText.enterFeatureName")) && !textFieldDescription.getText().isEmpty() && !textFieldDescription.getText().equals(I18n.INSTANCE.get("commonText.enterDescription"))) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareFeatureMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareFeatureMod.java index 1e8355c8..b23e29ca 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareFeatureMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareFeatureMod.java @@ -95,7 +95,7 @@ protected void openAddModGui() throws ModProcessingException { JCheckBox checkBoxOnlyStationary = new JCheckBox(I18n.INSTANCE.get("commonText.stationary")); checkBoxOnlyStationary.setToolTipText(I18n.INSTANCE.get("mod.hardwareFeature.addMod.components.checkBoxOnlyStationary.toolTip")); - Object[] params = {WindowHelper.getNamePanel(this, textFieldName), buttonAddNameTranslations, WindowHelper.getNamePanel(this, textFieldDescription), buttonAddDescriptionTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerResearchPoints, SpinnerType.RESEARCH_POINT_COST), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerQuality, SpinnerType.QUALITY), checkBoxNeedsInternet, checkBoxOnlyStationary}; + Object[] params = {WindowHelper.getNamePanel(textFieldName), buttonAddNameTranslations, WindowHelper.getNamePanel(textFieldDescription), buttonAddDescriptionTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerResearchPoints, SpinnerType.RESEARCH_POINT_COST), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerQuality, SpinnerType.QUALITY), checkBoxNeedsInternet, checkBoxOnlyStationary}; while (true) { if (JOptionPane.showConfirmDialog(null, params, I18n.INSTANCE.get("commonText.add.upperCase") + ": " + getType(), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { if (!textFieldName.getText().equals(I18n.INSTANCE.get("mod.hardwareFeature.addMod.components.textFieldName.initialValue")) && !textFieldDescription.getText().equals(I18n.INSTANCE.get("mod.hardwareFeature.addMod.components.textFieldDescription.initialValue"))) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareMod.java index 702b9cc8..fa452a3e 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareMod.java @@ -196,7 +196,7 @@ protected void openAddModGui() throws ModProcessingException { } }); - Object[] params = {WindowHelper.getNamePanel(this, textFieldName), buttonAddNameTranslations, WindowHelper.getDescriptionPanel(textFieldDescription), buttonAddDescriptionTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getTypePanel(comboBoxType), WindowHelper.getSpinnerPanel(spinnerResearchPoints, SpinnerType.RESEARCH_POINT_COST), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerTechLevel, SpinnerType.TECH_LEVEL), checkBoxEnableExclusivity, comboBoxExclusivity}; + Object[] params = {WindowHelper.getNamePanel(textFieldName), buttonAddNameTranslations, WindowHelper.getDescriptionPanel(textFieldDescription), buttonAddDescriptionTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getTypePanel(comboBoxType), WindowHelper.getSpinnerPanel(spinnerResearchPoints, SpinnerType.RESEARCH_POINT_COST), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerTechLevel, SpinnerType.TECH_LEVEL), checkBoxEnableExclusivity, comboBoxExclusivity}; while (true) { if (JOptionPane.showConfirmDialog(null, params, I18n.INSTANCE.get("commonText.add.upperCase") + ": " + getType(), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { if (!textFieldName.getText().equals(I18n.INSTANCE.get("mod.hardware.addMod.components.textFieldName.initialValue")) && !textFieldDescription.getText().equals(I18n.INSTANCE.get("mod.hardware.addMod.components.textFieldDescription.initialValue"))) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/NpcEngineMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/NpcEngineMod.java index 623864f5..921afdd0 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/NpcEngineMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/NpcEngineMod.java @@ -83,7 +83,7 @@ protected void openAddModGui() throws ModProcessingException { JList listAvailablePlatforms = WindowHelper.getList(ModManager.platformMod.getContentByAlphabet(), false); JScrollPane scrollPaneAvailablePlatforms = WindowHelper.getScrollPane(listAvailablePlatforms); - Object[] param = {WindowHelper.getNamePanel(this, textFieldName), buttonAddNameTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerShare, SpinnerType.PROFIT_SHARE), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), labelExplainGenreList, scrollPaneAvailableGenres, labelExplainPlatformList, scrollPaneAvailablePlatforms}; + Object[] param = {WindowHelper.getNamePanel(textFieldName), buttonAddNameTranslations, WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), WindowHelper.getSpinnerPanel(spinnerShare, SpinnerType.PROFIT_SHARE), WindowHelper.getSpinnerPanel(spinnerCost, SpinnerType.PRICE), labelExplainGenreList, scrollPaneAvailableGenres, labelExplainPlatformList, scrollPaneAvailablePlatforms}; while (true) { if (JOptionPane.showConfirmDialog(null, param, I18n.INSTANCE.get("commonText.add.upperCase") + ": " + getType(), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.YES_OPTION) { if (!textFieldName.getText().equals(I18n.INSTANCE.get("mod.npcEngine.addMod.components.textFieldName.initialValue"))) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/NpcIpMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/NpcIpMod.java new file mode 100644 index 00000000..412b0f42 --- /dev/null +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/NpcIpMod.java @@ -0,0 +1,237 @@ +package com.github.lmh01.mgt2mt.mod; + +import com.github.lmh01.mgt2mt.MadGamesTycoon2ModTool; +import com.github.lmh01.mgt2mt.mod.managed.*; +import com.github.lmh01.mgt2mt.util.I18n; +import com.github.lmh01.mgt2mt.util.Utils; +import com.github.lmh01.mgt2mt.util.helper.WindowHelper; + +import javax.swing.*; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.util.*; + +public class NpcIpMod extends AbstractSimpleDependentMod { + /* + * Game file bracket meaning: + * P = Platform + * G = Genre + * SG = Sub-Genre + * T = Topic + * ST = Sub-Topic + * TG = Target Group + * Y = Release Year + * % = IP Rating + * */ + + @Override + public String[] getCompatibleModToolVersions() { + return new String[]{"3.1.0", MadGamesTycoon2ModTool.VERSION}; + } + + @Override + public String getMainTranslationKey() { + return "npcIp"; + } + + @Override + public AbstractBaseMod getMod() { + return ModManager.npcIpMod; + } + + @Override + public String getExportType() { + return "npc_ip"; + } + + @Override + protected String getGameFileName() { + return "NpcIPs.txt"; + } + + @Override + public String getDefaultContentFileName() { + return "default_npcIps.txt"; + } + + @Override + protected void openAddModGui() throws ModProcessingException { + JTextField textFieldName = new JTextField(I18n.INSTANCE.get("mod.npcIp.addMod.components.textFieldName.initialValue")); + JLabel labelReleaseYear = new JLabel(I18n.INSTANCE.get("mod.npcIp.addMod.components.label.releaseYear") + ":"); + JSpinner spinnerReleaseYear = WindowHelper.getUnlockYearSpinner(); + JPanel panelReleaseYear = new JPanel(); + panelReleaseYear.add(labelReleaseYear); + panelReleaseYear.add(spinnerReleaseYear); + JLabel labelTargetGroup = new JLabel(I18n.INSTANCE.get("commonText.targetGroup") + ":"); + JComboBox comboBoxTargetGroup = WindowHelper.getComboBox(TargetGroup.class, "commonText.targetGroup", I18n.INSTANCE.get("commonText.all")); + JPanel panelTargetGroup = new JPanel(); + panelTargetGroup.add(labelTargetGroup); + panelTargetGroup.add(comboBoxTargetGroup); + JLabel labelRating = new JLabel(I18n.INSTANCE.get("mod.npcIp.addMod.components.spinner.rating") + ":"); + JSpinner spinnerRating = WindowHelper.getBaseSpinner("mod.npcIp.addMod.components.spinner.rating", 50, 0, 100, 5); + JPanel panelRating = new JPanel(); + panelRating.add(labelRating); + panelRating.add(spinnerRating); + JList listMainGenre = WindowHelper.getList(ModManager.genreMod.getContentByAlphabet(), false); + JList listSubGenre = WindowHelper.getList(ModManager.genreMod.getContentByAlphabet(), false); + JButton buttonMainGenre = new JButton(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainGenre.initial")); + WindowHelper.setListButtonAction(buttonMainGenre, I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainGenre.initial") + ":", listMainGenre, e -> { + if (Objects.equals(listSubGenre.getSelectedValue(), listMainGenre.getSelectedValue())) { + JOptionPane.showMessageDialog(null, I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainGenre.genreAlreadySelected"), I18n.INSTANCE.get("frame.title.error"), JOptionPane.ERROR_MESSAGE); + listMainGenre.clearSelection(); + buttonMainGenre.setText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainGenre.initial")); + } else { + buttonMainGenre.setText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainGenre") + ": " + listMainGenre.getSelectedValue()); + buttonMainGenre.setToolTipText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainGenre") + ": " + listMainGenre.getSelectedValue()); + } + }); + JButton buttonSubGenre = new JButton(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subGenre.initial")); + WindowHelper.setListButtonAction(buttonSubGenre, I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subGenre.initial") + ":", listSubGenre, e -> { + if (Objects.equals(listMainGenre.getSelectedValue(), listSubGenre.getSelectedValue())) { + JOptionPane.showMessageDialog(null, I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subGenre.genreAlreadySelected"), I18n.INSTANCE.get("frame.title.error"), JOptionPane.ERROR_MESSAGE); + listSubGenre.clearSelection(); + buttonSubGenre.setText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subGenre.initial")); + } else { + buttonSubGenre.setText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subGenre") + ": " + listSubGenre.getSelectedValue()); + buttonSubGenre.setToolTipText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subGenre") + ": " + listMainGenre.getSelectedValue()); + } + }); + JList listMainTheme = WindowHelper.getList(ModManager.themeMod.getContentByAlphabet(), false); + JList listSubTheme = WindowHelper.getList(ModManager.themeMod.getContentByAlphabet(), false); + JButton buttonMainTheme = new JButton(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainTheme.initial")); + WindowHelper.setListButtonAction(buttonMainTheme, I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainTheme.initial") + ":", listMainTheme, e -> { + if (Objects.equals(listSubTheme.getSelectedValue(), listMainTheme.getSelectedValue())) { + JOptionPane.showMessageDialog(null, I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainTheme.themeAlreadySelected"), I18n.INSTANCE.get("frame.title.error"), JOptionPane.ERROR_MESSAGE); + listMainTheme.clearSelection(); + buttonMainTheme.setText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainTheme.initial")); + } else { + buttonMainTheme.setText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainTheme") + ": " + listMainTheme.getSelectedValue()); + buttonMainGenre.setToolTipText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.mainTheme") + ": " + listMainGenre.getSelectedValue()); + } + }); + JButton buttonSubTheme = new JButton(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subTheme.initial")); + WindowHelper.setListButtonAction(buttonSubTheme, I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subTheme.initial") + ":", listSubTheme, e -> { + if (Objects.equals(listMainTheme.getSelectedValue(), listSubTheme.getSelectedValue())) { + JOptionPane.showMessageDialog(null, I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subTheme.themeAlreadySelected"), I18n.INSTANCE.get("frame.title.error"), JOptionPane.ERROR_MESSAGE); + listSubTheme.clearSelection(); + buttonSubTheme.setText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subTheme.initial")); + } else { + buttonSubTheme.setText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subTheme") + ": " + listSubTheme.getSelectedValue()); + buttonSubTheme.setToolTipText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subTheme") + ": " + listMainGenre.getSelectedValue()); + } + }); + JList listPlatform = WindowHelper.getList(ModManager.platformMod.getContentByAlphabet(), false); + JButton buttonPlatform = new JButton(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.platform.initial")); + WindowHelper.setListButtonAction(buttonPlatform, I18n.INSTANCE.get("mod.npcIp.addMod.components.button.platform.initial") + ":", listPlatform, e -> { + buttonPlatform.setText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.platform") + ": " + listPlatform.getSelectedValue()); + buttonMainGenre.setToolTipText(I18n.INSTANCE.get("mod.npcIp.addMod.components.button.platform") + ": " + listMainGenre.getSelectedValue()); + }); + Object[] params = {WindowHelper.getNamePanel(textFieldName), panelReleaseYear, panelTargetGroup, panelRating, buttonMainGenre, buttonSubGenre, buttonMainTheme, buttonSubTheme, buttonPlatform}; + while (true) { + if (JOptionPane.showConfirmDialog(null, params, I18n.INSTANCE.get("commonText.add.upperCase") + ": " + getType(), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { + if (textFieldName.getText().equals(I18n.INSTANCE.get("mod.npcIp.addMod.components.textFieldName.initialValue"))) { + JOptionPane.showMessageDialog(null, I18n.INSTANCE.get("modManager.general.enterNameFirst"), I18n.INSTANCE.get("frame.title.error"), JOptionPane.ERROR_MESSAGE); + continue; + } + if (listMainGenre.isSelectionEmpty() || listMainTheme.isSelectionEmpty() || listPlatform.isSelectionEmpty()) { + JOptionPane.showMessageDialog(null, I18n.INSTANCE.get("mod.npcIp.addMod.somethingNotSelected"), I18n.INSTANCE.get("frame.title.error"), JOptionPane.ERROR_MESSAGE); + continue; + } + // Setup to add mod + int mainGenre = ModManager.genreMod.getContentIdByName(listMainGenre.getSelectedValue()); + int mainTheme = ModManager.themeMod.getContentIdByName(listMainTheme.getSelectedValue()); + int platform = ModManager.platformMod.getContentIdByName(listPlatform.getSelectedValue()); + Integer subGenre = null; + if (!listSubGenre.isSelectionEmpty()) { + subGenre = ModManager.genreMod.getContentIdByName(listSubGenre.getSelectedValue()); + } + Integer subTheme = null; + if (!listSubTheme.isSelectionEmpty()) { + subTheme = ModManager.themeMod.getContentIdByName(listSubTheme.getSelectedValue()); + } + NpcIp npcIp = new NpcIp(textFieldName.getText(), mainGenre, subGenre, mainTheme, subTheme, TargetGroup.getTargetGroup((String) comboBoxTargetGroup.getSelectedItem()), platform, Integer.parseInt(spinnerReleaseYear.getValue().toString()), Integer.parseInt(spinnerRating.getValue().toString())); + if (JOptionPane.showConfirmDialog(null, getOptionPaneMessage(npcIp), I18n.INSTANCE.get("frame.title.isThisCorrect"), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { + addModToFile(npcIp.getLine()); + ModManager.modAdded(textFieldName.getText(), I18n.INSTANCE.get("commonText.npcIp.upperCase")); + break; + } + } else { + break; + } + } + } + + /** + * Returns the option pane message for the given mod. + * @param npcIp The npcIp that holds the values + */ + private String getOptionPaneMessage(NpcIp npcIp) throws ModProcessingException { + String subGenre = "none"; + if (npcIp.subGenre != null) { + subGenre = ModManager.genreMod.getContentNameById(npcIp.subGenre); + } + String subTheme = "none"; + if (npcIp.subTheme != null) { + subGenre = ModManager.themeMod.getContentNameById(npcIp.subTheme); + } + System.out.printf("Theme id: %s\n", npcIp.theme); + return "" + + I18n.INSTANCE.get("mod.npcIp.addMod.optionPaneMessage.firstPart") + "

" + + I18n.INSTANCE.get("commonText.name") + ": " + npcIp.name + "
" + + I18n.INSTANCE.get("commonText.genre.upperCase") + ": " + ModManager.genreMod.getContentNameById(npcIp.genre) + "
" + + I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subGenre") + ": " + subGenre + "
" + + I18n.INSTANCE.get("commonText.theme.upperCase") + ": " + ModManager.themeMod.getContentNameById(npcIp.theme) + "
" + + I18n.INSTANCE.get("mod.npcIp.addMod.components.button.subTheme") + ": " + subTheme + "
" + + I18n.INSTANCE.get("commonText.targetGroup") + ": " + npcIp.targetGroup.getTypeName() + "
" + + I18n.INSTANCE.get("mod.npcIp.addMod.components.button.platform") + ": " + ModManager.platformMod.getContentNameById(npcIp.platform) + "
" + + I18n.INSTANCE.get("mod.npcIp.addMod.components.label.releaseYear") + ": " + npcIp.releaseYear + "
" + + I18n.INSTANCE.get("mod.npcIp.addMod.components.spinner.rating") + ": " + npcIp.rating; + } + + /** + * @deprecated DO NOT USE THIS FUNCTION. IT IS NOT IMPLEMENTED FOR NPC IP MOD. Use {@link NpcIpMod#getOptionPaneMessage(NpcIp)} instead. + */ + @Override + @Deprecated + protected String getOptionPaneMessage(T t) throws ModProcessingException { + String line = transformGenericToString(t); + throw new ModProcessingException("Not yet implemented!"); + } + + @Override + protected Charset getCharset() { + return StandardCharsets.UTF_16LE; + } + + @Override + public String getReplacedLine(String inputString) { + return Utils.getFirstPart(inputString).trim(); + } + + @Override + public String getModifiedExportLine(String exportLine) throws ModProcessingException { + NpcIp npcIp = new NpcIp(exportLine, ModConstructionType.GAME_FILES); + return npcIp.getExportLine(); + } + + @Override + public void replaceMissingDependency(Map map, String missingDependency, String replacement) throws ModProcessingException { + replaceMapEntry(map, missingDependency, replacement, "line"); + } + + @Override + public ArrayList getDependencies() { + ArrayList arrayList = new ArrayList<>(); + arrayList.add(ModManager.genreMod); + arrayList.add(ModManager.themeMod); + arrayList.add(ModManager.platformMod); + return arrayList; + } + + @Override + public Map getDependencyMap(T t) throws ModProcessingException { + String line = transformGenericToString(t); + NpcIp npcIp = new NpcIp(line, ModConstructionType.GAME_FILES); + return npcIp.getDependencyMap(); + } +} diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/PlatformMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/PlatformMod.java index 26623efa..9ce1c649 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/PlatformMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/PlatformMod.java @@ -314,7 +314,7 @@ public void mouseClicked(MouseEvent e) { } }); - Object[] params = {WindowHelper.getNamePanel(this, textFieldName), buttonAddNameTranslations, WindowHelper.getManufacturerPanel(textFieldManufacturer), buttonAddManufacturerTranslation, WindowHelper.getTypePanel(comboBoxFeatureType), WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), checkBoxEnableEndDate, panelEndDate, WindowHelper.getSpinnerPanel(spinnerTechLevel, SpinnerType.TECH_LEVEL), WindowHelper.getSpinnerPanel(spinnerComplexity, SpinnerType.COMPLEXITY), WindowHelper.getSpinnerPanel(spinnerUnits, SpinnerType.UNITS), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerDevKitCost, SpinnerType.PRICE), checkBoxInternet, labelGameplayFeatureList, scrollPaneAvailableGenres, buttonAddPictures}; + Object[] params = {WindowHelper.getNamePanel(textFieldName), buttonAddNameTranslations, WindowHelper.getManufacturerPanel(textFieldManufacturer), buttonAddManufacturerTranslation, WindowHelper.getTypePanel(comboBoxFeatureType), WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), checkBoxEnableEndDate, panelEndDate, WindowHelper.getSpinnerPanel(spinnerTechLevel, SpinnerType.TECH_LEVEL), WindowHelper.getSpinnerPanel(spinnerComplexity, SpinnerType.COMPLEXITY), WindowHelper.getSpinnerPanel(spinnerUnits, SpinnerType.UNITS), WindowHelper.getSpinnerPanel(spinnerDevelopmentCost, SpinnerType.DEVELOPMENT_COST), WindowHelper.getSpinnerPanel(spinnerDevKitCost, SpinnerType.PRICE), checkBoxInternet, labelGameplayFeatureList, scrollPaneAvailableGenres, buttonAddPictures}; while (true) { if (JOptionPane.showConfirmDialog(null, params, I18n.INSTANCE.get("mod.platform.addPlatform.title"), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { if (!textFieldName.getText().equals(I18n.INSTANCE.get("mod.platform.addPlatform.components.textFieldName.initialValue"))) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java index ad030054..c831bb9e 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java @@ -169,7 +169,7 @@ protected void openAddModGui() throws ModProcessingException { spinnerUnlockYear.addChangeListener(e -> buttonSelectGenre.setText(" " + I18n.INSTANCE.get("commonText.selectGenre") + " ")); - Object[] params = {WindowHelper.getNamePanel(this, textFieldName), WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), panelPublisherIcon, checkBoxIsDeveloper, checkBoxIsPublisher, WindowHelper.getSpinnerPanel(spinnerMarketShare, SpinnerType.MARKET_SHARE), WindowHelper.getSpinnerPanel(spinnerShare, SpinnerType.PROFIT_SHARE), panelGenre}; + Object[] params = {WindowHelper.getNamePanel(textFieldName), WindowHelper.getUnlockDatePanel(comboBoxUnlockMonth, spinnerUnlockYear), panelPublisherIcon, checkBoxIsDeveloper, checkBoxIsPublisher, WindowHelper.getSpinnerPanel(spinnerMarketShare, SpinnerType.MARKET_SHARE), WindowHelper.getSpinnerPanel(spinnerShare, SpinnerType.PROFIT_SHARE), panelGenre}; boolean breakLoop = false; while (!breakLoop) { if (JOptionPane.showConfirmDialog(null, params, I18n.INSTANCE.get("commonText.add.upperCase") + ": " + getType(), JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractAdvancedMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractAdvancedMod.java index 4307b467..673626cd 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractAdvancedMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractAdvancedMod.java @@ -193,6 +193,7 @@ public final int getContentIdByName(String name) throws ModProcessingException { * @return Returns the specified content name by id. * @throws ModProcessingException Is thrown when the requested content id does not exist in the map. */ + @Override public final String getContentNameById(int id) throws ModProcessingException { try { if (id >= 0) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractBaseMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractBaseMod.java index 5ddd2574..0d42a3d4 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractBaseMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractBaseMod.java @@ -187,6 +187,13 @@ public final void setFinishedCustomContentString(String[] customContent) { */ public abstract int getContentIdByName(String name) throws ModProcessingException; + /** + * @param id The id + * @return Returns the specified content name by id. + * @throws ModProcessingException Is thrown when the requested content id does not exist in the map. + */ + public abstract String getContentNameById(int id) throws ModProcessingException; + /** * The translation key that is specific to the mod * Eg. gameplayFeature diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleDependentMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleDependentMod.java index 001012aa..6b43fb71 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleDependentMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleDependentMod.java @@ -1,5 +1,6 @@ package com.github.lmh01.mgt2mt.mod.managed; +import com.github.lmh01.mgt2mt.mod.NpcIpMod; import com.github.lmh01.mgt2mt.util.I18n; import com.github.lmh01.mgt2mt.util.helper.TextAreaHelper; @@ -17,7 +18,14 @@ public abstract class AbstractSimpleDependentMod extends AbstractSimpleMod imple @Override public void importMod(Map map) throws ModProcessingException { analyzeDependencies(); - addModToFile(getChangedImportLine((String) map.get("line"))); + //TODO Remove this when the new abstract mod classes have been reworked + // This is a ugly workaround for now + if (this instanceof NpcIpMod) { + NpcIp npcIp = new NpcIp((String) map.get("line"), ModConstructionType.IMPORT); + addModToFile(npcIp.getLine()); + } else { + addModToFile(getChangedImportLine((String) map.get("line"))); + } TextAreaHelper.appendText(I18n.INSTANCE.get("textArea.import.imported") + " " + getType() + " - " + map.get("mod_name")); } @@ -26,7 +34,14 @@ public void importMod(Map map) throws ModProcessingException { public Map getExportMap(String name) throws ModProcessingException { Map map = new HashMap<>(); String line = getModifiedExportLine(getLine(name)); - Map dependencyMap = getDependencyMap(line); + //TODO Remove this when the new abstract mod classes have been reworked + // This is a ugly workaround for now + Map dependencyMap; + if (this instanceof NpcIpMod) { + dependencyMap = getDependencyMap(getLine(name)); + } else { + dependencyMap = getDependencyMap(line); + } for (AbstractBaseMod mod : ModManager.mods) { try { Set set = (Set) dependencyMap.get(mod.getExportType()); diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleMod.java index 925f49ae..7f860c98 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/AbstractSimpleMod.java @@ -197,6 +197,11 @@ public int getContentIdByName(String name) throws ModProcessingException { return getPositionInFileContentListByName(name); } + @Override + public String getContentNameById(int id) throws ModProcessingException { + return getReplacedLine(getFileContent().get(id)); + } + @Override public String[] getDefaultContent() { if (defaultContent.length == 0) { @@ -233,6 +238,7 @@ public void initializeImportHelperMap() throws ModProcessingException { for (Map.Entry entry : getFileContent().entrySet()) { helperMap.put(getReplacedLine(entry.getValue()), entry.getKey()); } + setMaxId(helperMap.size()); importHelperMap = helperMap; } } diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/DependentMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/DependentMod.java index 595d0231..eeaee1b3 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/DependentMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/DependentMod.java @@ -33,7 +33,6 @@ default void analyzeDependencies() throws ModProcessingException { for (AbstractBaseMod mod : getDependencies()) { mod.analyzeFile(); } - System.out.println("ANALYZING DEPENDENCIES IN CODE"); } /** diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/ModConstructionType.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/ModConstructionType.java new file mode 100644 index 00000000..5d24ea2a --- /dev/null +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/ModConstructionType.java @@ -0,0 +1,17 @@ +package com.github.lmh01.mgt2mt.mod.managed; + +/** + * The different types a mod can be constructed + */ +public enum ModConstructionType { + + /** + * Symbolizes that the mod should be constructed from the import line. + */ + IMPORT, + + /** + * Symbolizes that the mod should be constructed from the game files. + */ + GAME_FILES, +} diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/ModManager.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/ModManager.java index f0e6aa40..be85e991 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/ModManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/ModManager.java @@ -3,6 +3,7 @@ import com.github.lmh01.mgt2mt.mod.*; import com.github.lmh01.mgt2mt.util.I18n; import com.github.lmh01.mgt2mt.util.helper.DebugHelper; +import com.github.lmh01.mgt2mt.util.helper.TextAreaHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,6 +26,7 @@ public class ModManager { public static PlatformMod platformMod = new PlatformMod(); public static PublisherMod publisherMod = new PublisherMod(); public static ThemeMod themeMod = new ThemeMod(); + public static NpcIpMod npcIpMod = new NpcIpMod(); /** * Initializes all mods @@ -44,6 +46,7 @@ public static void initializeMods() { copyProtectMod.initializeMod(); hardwareMod.initializeMod(); hardwareFeatureMod.initializeMod(); + npcIpMod.initializeMod(); DebugHelper.debug(LOGGER, "Total mods active: " + mods.size()); } @@ -64,6 +67,7 @@ public static void analyzeMods() throws ModProcessingException { publisherMod.analyzeFile(); platformMod.analyzeFile(); themeMod.analyzeFile(); + npcIpMod.analyzeFile(); } /** @@ -74,4 +78,13 @@ public static void analyzeMods() throws ModProcessingException { public static void showException(ModProcessingException e) { JOptionPane.showMessageDialog(null, I18n.INSTANCE.get("frame.title.error") + ": " + e.getMessage().replace(" - ", "\n - "), I18n.INSTANCE.get("frame.title.error"), JOptionPane.ERROR_MESSAGE); } + + /** + * Shows a message that the mod has been added successfully. + * Also writes a message to the text area. + */ + public static void modAdded(String modName, String modType) { + TextAreaHelper.appendText(I18n.INSTANCE.get("textArea.added") + " " + modType + " - " + modName); + JOptionPane.showMessageDialog(null, modName + " \"" + modType + "\" " + I18n.INSTANCE.get("commonText.hasSuccessfullyBeenAddedToTheGame"), "frame.title.success", JOptionPane.INFORMATION_MESSAGE); + } } diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/NpcIp.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/NpcIp.java new file mode 100644 index 00000000..3a0b988f --- /dev/null +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/NpcIp.java @@ -0,0 +1,175 @@ +package com.github.lmh01.mgt2mt.mod.managed; + +import com.github.lmh01.mgt2mt.util.Utils; + +import java.util.*; + +/** + * Symbolizes a single npc ip + */ +public class NpcIp { + //TODO This class will sometime extend a new base mod class. + // Function getDependencyMap will be implemented here + + // genre, subGenre, theme, subTheme and platform store the id of the corresponding mod + public String name; + public Integer genre; + public Integer subGenre; + public Integer theme; + public Integer subTheme; + public TargetGroup targetGroup; + public Integer platform; + public int releaseYear; + public int rating; + + /** + * Construct a new npcIp. The required values will be taken from the line. + * @param line The line that stands in the game files. + * @param constructionType The way the mod should be constructed. + * If construction type is {@link ModConstructionType#IMPORT} the mod names in the line will be replaced by the mod ids + */ + public NpcIp(String line, ModConstructionType constructionType) throws ModProcessingException { + this.name = Utils.getFirstPart(line); + ArrayList data = Utils.getEntriesFromString(line); + String placeholder = getPlaceholder(constructionType); + for (String d : data) { + if (d.startsWith("P" + placeholder)) { + this.platform = getModId(ModManager.platformMod, d, "P" + placeholder, constructionType); + } else if (d.startsWith("G" + placeholder)) { + this.genre = getModId(ModManager.genreMod, d, "G" + placeholder, constructionType); + } else if (d.startsWith("SG" + placeholder)) { + this.subGenre = getModId(ModManager.genreMod, d, "SG" + placeholder, constructionType); + } else if (d.startsWith("TG" + placeholder)) { + int tgId = Integer.parseInt(d.replaceAll("[^0-9]", "")); + for (TargetGroup tg : TargetGroup.values()) { + if (tg.getId() == tgId) { + this.targetGroup = tg; + } + } + } else if (d.startsWith("T" + placeholder)) { + this.theme = getModId(ModManager.themeMod, d, "T" + placeholder, constructionType); + } else if (d.startsWith("ST" + placeholder)) { + this.subTheme = getModId(ModManager.themeMod, d, "ST" + placeholder, constructionType); + }else if (d.startsWith("Y" + placeholder)) { + this.releaseYear = Integer.parseInt(d.replaceAll("[^0-9]", "")); + } else if (d.startsWith("%" + placeholder)) { + this.rating = Integer.parseInt(d.replaceAll("%" + placeholder, "")); + } + } + } + + /** + * Construct a new npcIp. + * @param name The name of the npcIp + * @param genre The id of the main genre + * @param subGenre The id of the sub-genre + * @param theme The id of the main theme + * @param subTheme The id of the sub-theme + * @param targetGroup The target group of the npcIp + * @param platform The main platform + * @param releaseYear The release year + * @param rating The rating in percent 0-100% + */ + public NpcIp(String name, int genre, Integer subGenre, int theme, Integer subTheme, TargetGroup targetGroup, int platform, int releaseYear, int rating) throws IllegalArgumentException { + if (rating < 0 || rating > 100) { + throw new IllegalArgumentException("Unable to construct new NpcIp: The rating entered is invalid!"); + } + this.name = name; + this.genre = genre; + this.subGenre = subGenre; + this.theme = theme; + this.subTheme = subTheme; + this.targetGroup = targetGroup; + this.platform = platform; + this.releaseYear = releaseYear; + this.rating = rating; + } + + /** + * Returns the placeholder string that is required to construct a new mod. + * The placeholder is either "" or "-", dependent on the mod construction type. + */ + private String getPlaceholder(ModConstructionType constructionType) { + if (constructionType == ModConstructionType.GAME_FILES) { + return ""; + } else { + return "-"; + } + } + + /** + * Returns the mod id for the given mod. + * @param mod The mod for which the mod id should be determined + * @param data The string that contains the data + * @param identifier The string that should be replaced + * @param constructionType Determines how the mod id should be determined + */ + private int getModId(AbstractBaseMod mod, String data, String identifier, ModConstructionType constructionType) throws ModProcessingException { + if (constructionType == ModConstructionType.GAME_FILES) { + return Integer.parseInt(data.replaceAll(identifier, "")); + } else { + return mod.getModIdByNameFromImportHelperMap(data.replaceFirst(identifier, "")); + } + } + + /** + * The new version of {@link DependentMod#getDependencyMap(Object)}. + * Uses the member variables of the mod type to generate the dependency map. + */ + public Map getDependencyMap() throws ModProcessingException { + Map map = new HashMap<>(); + Set genres = new HashSet<>(); + genres.add(ModManager.genreMod.getContentNameById(genre)); + if (subGenre != null) { + genres.add(ModManager.genreMod.getContentNameById(subGenre)); + } + map.put(ModManager.genreMod.getExportType(), genres); + Set themes = new HashSet<>(); + themes.add(ModManager.themeMod.getContentNameById(theme)); + if (subTheme != null) { + themes.add(ModManager.themeMod.getContentNameById(subTheme)); + } + map.put(ModManager.themeMod.getExportType(), themes); + Set platforms = new HashSet<>(); + platforms.add(ModManager.platformMod.getContentNameById(platform)); + map.put(ModManager.platformMod.getExportType(), platforms); + return map; + } + + /** + * Returns the mod represented as line + */ + public String getLine() { + StringBuilder sb = new StringBuilder(); + sb.append(name).append(" <%").append(rating).append(">"); + if (subGenre != null) { + sb.append(""); + } + if (subTheme != null) { + sb.append(""); + } + return sb.toString(); + } + + /** + * The new version of {@link AbstractSimpleMod#getModifiedExportLine(String)}. + * Uses the member variables to construct the export line. + */ + public String getExportLine() throws ModProcessingException { + StringBuilder sb = new StringBuilder(); + sb.append(name).append(" <%-").append(rating).append(">"); + if (subGenre != null) { + sb.append(""); + } + if (subTheme != null) { + sb.append(""); + } + return sb.toString(); + } +} diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/managed/TargetGroup.java b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/TargetGroup.java new file mode 100644 index 00000000..acebdca8 --- /dev/null +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/managed/TargetGroup.java @@ -0,0 +1,47 @@ +package com.github.lmh01.mgt2mt.mod.managed; + +import com.github.lmh01.mgt2mt.util.I18n; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; + +/** + * Symbolizes the target group for something + */ +public enum TargetGroup implements TypeEnum { + KID(0, "kid"), + TEEN(1, "teen"), + ADULT(2, "adult"), + OLD(3, "senior"), + ALL(4, "all"); + + private final int id; + private final String name; + + TargetGroup(int id, String translationKey) { + this.id = id; + this.name = I18n.INSTANCE.get("commonText." + translationKey); + } + + @Override + public String getTypeName() { + return name; + } + + @Override + public int getId() { + return id; + } + + /** + * Returns the corresponding target group for the name + */ + public static TargetGroup getTargetGroup(String name) throws IllegalArgumentException { + for (TargetGroup tg : TargetGroup.values()) { + if (Objects.equals(tg.name, name)) { + return tg; + } + } + throw new IllegalArgumentException("Unable to resolve target group: Input string is invalid. Was: " + name); + } +} diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/ContentEditor.java b/src/main/java/com/github/lmh01/mgt2mt/util/ContentEditor.java index cbd94969..613466a9 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/ContentEditor.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/ContentEditor.java @@ -37,7 +37,6 @@ public static void editGenreThemeFit() throws ModProcessingException { for (String string : themeList.getSelectedValuesList()) { themeIds.add(ModManager.themeMod.getPositionOfThemeInFile(string)); } - StringBuilder errors = new StringBuilder(); for (String string : genreList.getSelectedValuesList()) { ModManager.themeMod.editGenreAllocationAdvanced(ModManager.genreMod.getContentIdByName(string), addGenre, themeIds, false); } diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/helper/WindowHelper.java b/src/main/java/com/github/lmh01/mgt2mt/util/helper/WindowHelper.java index 350b966e..ea8cb9c5 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/helper/WindowHelper.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/helper/WindowHelper.java @@ -11,6 +11,7 @@ import javax.swing.*; import java.awt.*; +import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; @@ -21,13 +22,12 @@ public class WindowHelper { /** - * @param baseMod The base mod * @param textField The name text area * @return Returns a new panel containing the components of the name */ - public static JPanel getNamePanel(AbstractBaseMod baseMod, JTextField textField) { + public static JPanel getNamePanel(JTextField textField) { JPanel panel = new JPanel(); - JLabel label = new JLabel(baseMod.getType() + " " + I18n.INSTANCE.get("commonText.name") + ":"); + JLabel label = new JLabel(I18n.INSTANCE.get("commonText.name") + ":"); panel.add(label); panel.add(textField); return panel; @@ -342,4 +342,22 @@ public static JButton getListDisplayButton(String buttonLabel, String[] listCont }); return button; } + + /** + * Adds the following action to the button: + * When the button is clicked a message is displayed where the user can select an entry for a list. + * @param labelText The label of the button and the message that is written above the list when the button is clicked + * @param list The list that should be displayed + * @param action The action that should be performed when the user clicks ok + */ + public static void setListButtonAction(JButton button, String labelText, JList list, ActionListener action) { + button.addActionListener(actionEvent -> { + JLabel label = new JLabel(labelText); + JScrollPane scrollPane = getScrollPane(list); + Object[] params = {label, scrollPane}; + if (JOptionPane.showConfirmDialog(null, params, labelText, JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { + action.actionPerformed(actionEvent); + } + }); + } } diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/SharingManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/SharingManager.java index d2884fe5..796b30ef 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/SharingManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/SharingManager.java @@ -1213,4 +1213,4 @@ private static void displayExportSuccessDialog() throws ModProcessingException { } } } -} +} \ No newline at end of file diff --git a/src/main/resources/default_content/default_npcIps.txt b/src/main/resources/default_content/default_npcIps.txt new file mode 100644 index 00000000..dcb29cf2 --- /dev/null +++ b/src/main/resources/default_content/default_npcIps.txt @@ -0,0 +1,200 @@ +Turoc T-Rex Hunter <%85> +The Test Drivers <%70> +Galaxy Control <%80> +Bubsi <%75> +SoftBall <%75> +Call of Honor <%85> +Jetpack H.E.R.O. <%80> +The Mayan Pitfall <%75> +Tim Hawk's Elite Skater <%80> +Missile Commander <%80> +Papergirl <%70> +Space Asteroids <%80> +Deer Hunting <%75> +Tekkan-Zu <%85> +Resident of Evil <%85> +Backstreet Fighter <%85> +Ghosts n' Zombies <%80> +Hyper Man <%80> +Hunter of Monsters <%85> +FAFI Soccer <%80> +Field of Battle <%85> +John Maydon Football <%85> +Pro Skater <%80> +Boxing Night <%80> +League Hockey <%80> +Golf Tour <%80> +Addiction For Speed <%83> +Road Rush ><%80> +Terra Enigma <%88> +Dragon Question <%85> +Dios Ex <%90> +Agent 48 <%80> +Esprit Turbo <%80> +Premier Club Manager <%80> +F-16 Falcon <%80> +Zorks <%80> +Alone & Dark <%70> +W-Rally <%80> +Outcaster <%85> +Super Gear <%70> +Dynasty Samurais <%75> +Frogs <%80> +Steel Gear Solid <%85> +Vampirevania <%88> +Silent Mill <%80> +Master of Oriontis <%80> +Gunship 2050 <%80> +Transporter Tycoon <%85> +Y-Com <%85> +Train & Rail Tycoon <%85> +War of Empires <%85> +Minisoft Flight Sim <%85> +Minisoft Golf <%80> +Ridge Racing <%80> +Puk-Man <%80> +Super Lario World <%90> +Legend of Xelda <%90> +Medroid Premium <%90> +Monkey Kong <%85> +Water Emblem <%85> +Super Clash Brothers <%85> +F29 Fighter <%80> +Skulltima <%80> +Wing Commandant <%80> +Lemmerlings <%80> +Shadow and Beast <%80> +Destruction Drive <%70> +Wartoads <%75> +Blood Instinct <%80> +Sonico the Spiky <%85> +Alexis Kid <%75> +Zhenmue <%85> +Super Shinobi ><%85> +Golden Spear <%75> +Fantasy Stars <%80> +Prince Quest <%85> +Crime Quest <%70> +Empirial Earth <%75> +Stock Car Auto Racing <%85> +Grand Tour <%85> +Goddess of War <%85> +Triple Dragon <%75> +Galaxy Invaders <%80> +Knight and Magic <%75> +Chesslord <%78> +The Assassin's Breed <%85> +Rainbow Seven <%80> +Fat Cry <%80> +Luke Nuke 3D <%85> +Light Rain <%85> +Max Brain <%85> +G.T.A. Crime <%90> +Green Dead Redemption <%85> +Wizard <%75> +Jagged Company <%80> +Force of Thunder <%80> +Masked Vampires <%80> +Commander & Conquest <%85> +Lands of Lorenz <%85> +The Kaos Engine <%80> +Nuclear Fallout <%85> +Icestorm Dale <%80> +Orccraft <%85> +Mephisto <%85> +PlanetCraft <%85> +The Keeper of Dungeons <%85> +Population <%85> +Alien Halo <%85> +Galaxy Destiny <%80> +Psychonautic <%80> +Unrealism <%85> +Gears of Peace <%85> +BOOM <%85> +Wolfenfels <%80> +Blood Quakes <%85> +Black & Grey <%85> +Fable Quest <%80> +System Cybershock <%85> +Crank Bandicoot <%80> +1st Delta Force <%75> +Comanche Ops <%80> +The Dark Soul <%85> +Stormjammers <%70> +The Barbarians <%70> +Hot Summer Games <%75> +The Dungeon Masters <%85> +Project: Descent <%80> +Flashback Symptom <%80> +The 8th Guest <%70> +Collin McRay Rally <%80> +Cannon Food <%75> +Joel & Max <%75> +Mortal Combats <%85> +Rampaging Monsters <%75> +Hyper Spy Hunter <%70> +Project FEAR <%80> +Very Last Ninja <%75> +Hurrican <%80> +War Worms <%75> +Witchers of Riwa <%85> +Cyberpunkers 2076 <%85> +Ear Of The Beholder <%85> +Darkside <%75> +The Hero Company <%80> +MagicForce <%70> +Wonder Girl <%75> +Bomberwoman <%85> +Rice of the Triad <%75> +Princess of Persia <%80> +The Myst Quest <%80> +The little Settlers <%75> +The Civilizations <%90> +Pirates Life! <%85> +Waleorant <%80> +Candy Slush Saga <%70> +Ragnarok Quest <%70> +Clash of Clowns <%70> +Pokomon NO! <%70> +Oh-Game <%70> +Fruit Samurai <%70> +The Minecrafter <%85> +FarmingVill <%70> +Simulation City <%85> +The Social Sims <%85> +Tomb Raiding <%80> +Moldurs Gate <%85> +Mazz Effect <%88> +Neversummer Knights <%80> +The Ancient Scrolls <%85> +Endless Starfield <%85> +Samurai Gaiden <%80> +Full Life <%90> +Counter Attack <%85> +Teleportel <%85> +Left 2 Live <%85> +Island of Monkeys <%85> +Crazy Mansion <%80> +Galaxy Wars: S-Wing <%85> +3T Basketball <%80> +3T Football <%80> +3T Hockey <%80> +3T Baseball <%80> +3T Wrestling <%80> +Biology Shock <%85> +Border Area <%85> +Last Fantasy <%90> +Chronic <%85> +Hearts & Kingdoms <%80> +XenoEars <%85> +Europa Historia <%80> +Hearts of Copper <%80> +Crusader Lords <%85> +Queen Victoria <%80> +Stellatus <%80> +Mountain Blade <%85> +Baseball Kings <%80> +Deadly Fury <%80> +King of the Warriors <%85> +Ronin Shodown <%80> +Iron Slug <%85> \ No newline at end of file diff --git a/src/main/resources/locale/de.txt b/src/main/resources/locale/de.txt index 9c76b4b7..80300f51 100644 --- a/src/main/resources/locale/de.txt +++ b/src/main/resources/locale/de.txt @@ -46,6 +46,9 @@ commonText.hardwareFeature.upperCase.plural|Hardware Features commonText.hardware|Hardware commonText.hardware.upperCase|Hardware commonText.hardware.upperCase.plural|Hardware +commonText.npcIp|npc ip +commonText.npcIp.upperCase|Npc IP +commonText.npcIp.upperCase.plural|Npc IPs commonText.exported|exportiert commonText.export|Exportieren commonText.exporting|Exportiere @@ -128,6 +131,7 @@ commonText.kid|Kinder commonText.teen|Teenager commonText.adult|Erwachsene commonText.senior|Senioren +commonText.all|Alle commonText.addNameTranslations|Übersetzungen für Namen hinzufügen commonText.addNameTranslations.toolTip|Klicke, um Übersetzungen für den Namen hinzuzufügen
Der wert, der in das Textfeld geschrieben wird, wird für die englische Übersetzung benutzt commonText.addNameTranslations.added|Übersetzungen hinzugefügt @@ -188,6 +192,7 @@ commonText.stationaryConsole|Stationäre Konsole commonText.portableConsole|Portable Konsole commonText.reason|Grund: commonText.alreadyExported|Der Mod wurde bereits exportiert +commonText.hasSuccessfullyBeenAddedToTheGame|wurde erfolgreich zum spiel hinzugefügt analyzer.gameplayFeature.getCustomContentString.errorWhileScanningDefaultFiles|Fehler beim scannen von Gameplay Features: analyzer.gameplayFeature.getCustomContentString.customEngineFeatureFound|Modifiziertes Gameplay Feature gefunden: @@ -241,6 +246,10 @@ analyzer.hardware.getCustomContentString.errorWhileScanningDefaultFiles|Fehler b analyzer.hardware.getCustomContentString.customEngineFeatureFound|Modifizierte Hardware gefunden: analyzer.hardware.getCustomContentString.customEngineFeatureComplete|Scannen nach modifizierter Hardware abgeschlossen analyzer.hardware.getCustomContentString.progressBar|Scannen nach modifizierter Hardware +analyzer.npcIp.getCustomContentString.errorWhileScanningDefaultFiles|Fehler beim scannen der Npc IP: +analyzer.npcIp.getCustomContentString.customEngineFeatureFound|Modifizierte Npc IP gefunden: +analyzer.npcIp.getCustomContentString.customEngineFeatureComplete|Scannen nach modifizierten Npc IPs abgeschlossen +analyzer.npcIp.getCustomContentString.progressBar|Scannen nach modifizierten Npc IPs modManager.gameplayFeature.windowMain.modButton.addMod|Gameplay Feature hinzufügen modManager.gameplayFeature.windowMain.modButton.removeMod|Gameplay Feature entfernen @@ -281,6 +290,9 @@ modManager.hardwareFeature.windowMain.modButton.removeMod.toolTip|Deaktiviert -> modManager.hardware.windowMain.modButton.addMod|Hardware hinzufügen modManager.hardware.windowMain.modButton.removeMod|Hardware entfernen modManager.hardware.windowMain.modButton.removeMod.toolTip|Deaktiviert -> Keine Hardware verfügbar +modManager.npcIp.windowMain.modButton.addMod|Npc IP hinzufügen +modManager.npcIp.windowMain.modButton.removeMod|Npc IP entfernen +modManager.npcIp.windowMain.modButton.removeMod.toolTip|Deaktiviert -> Keine Npc IP verfügbar modManager.general.enterNameFirst|Bitte gebe zu erst einen Namen ein! modManager.general.enterNameDescriptionFirst|Bitte gebe zu erst einen Namen und eine Beschreibung ein! @@ -445,6 +457,25 @@ mod.hardware.addMod.components.checkBox.exclusiveConsole.toolTip|Aktiviere mod.hardware.addMod.components.comboBox.exclusiveConsole.value1|Stationäre Konsole mod.hardware.addMod.components.comboBox.exclusiveConsole.value2|Portable Konsole mod.hardware.addMod.components.comboBox.exclusiveConsole.toolTip|Wähle hier aus, für welche Konsolenart diese Hardware exclusiv sein soll +mod.npcIp.addMod.optionPaneMessage.firstPart|Diese Npc IP hinzufügen? +mod.npcIp.addMod.components.textFieldName.initialValue|GIB EINEN NAMEN FÜR DIE NPC IP EIN +mod.npcIp.addMod.components.spinner.rating|IP Bewertung in % +mod.npcIp.addMod.components.label.releaseYear|Erscheinungsjahr +mod.npcIp.addMod.components.button.mainGenre|Hauptgenre +mod.npcIp.addMod.components.button.mainGenre.initial|Hauptgenre auswählen +mod.npcIp.addMod.components.button.mainGenre.genreAlreadySelected|Dieses Genre wurde bereits als Untergenre ausgewählt.
Wähle bitte ein anderes Genre aus. +mod.npcIp.addMod.components.button.subGenre|Untergenre +mod.npcIp.addMod.components.button.subGenre.initial|Untergenre auswählen +mod.npcIp.addMod.components.button.subGenre.genreAlreadySelected|Dieses Genre wurde bereits als Hauptgenre ausgewählt.
Wähle bitte ein anderes Genre aus. +mod.npcIp.addMod.components.button.mainTheme|Hauptthema +mod.npcIp.addMod.components.button.mainTheme.initial|Hauptthema auswählen +mod.npcIp.addMod.components.button.mainTheme.themeAlreadySelected|Dieses Thema wurde bereits als Unterthema ausgewählt.
Wähle bitte ein anderes Thema aus. +mod.npcIp.addMod.components.button.subTheme|Unterthema +mod.npcIp.addMod.components.button.subTheme.initial|Unterthema auswählen +mod.npcIp.addMod.components.button.subTheme.themeAlreadySelected|Dieses Thema wurde bereits als Hauptthema ausgewählt.
Wähle bitte ein anderes Thema aus. +mod.npcIp.addMod.components.button.platform|Plattform +mod.npcIp.addMod.components.button.platform.initial|Plattform auswählen +mod.npcIp.addMod.somethingNotSelected|Mindestens eines der folgenden Felder ist leer:

Hauptgenre
Hauptthema
Plattform

Bitte vergewissere dich, dass du alle ausgewählt hast, und versuche es erneut. sharer.engineFeature.optionPaneMessage.main|Dein Engine Feature ist bereit: sharer.importMod.notCompatible|Der folgende Mod wurde nicht importiert, da er nicht mit der aktuellen Mod-Tool-Version kompatibel ist: diff --git a/src/main/resources/locale/en.txt b/src/main/resources/locale/en.txt index 1528baad..e7721a62 100644 --- a/src/main/resources/locale/en.txt +++ b/src/main/resources/locale/en.txt @@ -46,6 +46,9 @@ commonText.hardwareFeature.upperCase.plural|Hardware features commonText.hardware|hardware commonText.hardware.upperCase|Hardware commonText.hardware.upperCase.plural|Hardware +commonText.npcIp|npc ip +commonText.npcIp.upperCase|Npc IP +commonText.npcIp.upperCase.plural|Npc IPs commonText.exported|exported commonText.export|Export commonText.exporting|Exporting @@ -128,6 +131,7 @@ commonText.kid|Kid commonText.teen|Teen commonText.adult|Adult commonText.senior|Senior +commonText.all|All commonText.addNameTranslations|Add name translations commonText.addNameTranslations.toolTip|Click to add name translations
The value entered in the main text field will be used as the english translation commonText.addNameTranslations.added|Name Translations Added @@ -189,6 +193,7 @@ commonText.portableConsole|Portable console commonText.reason|Reason: commonText.alreadyExported|Mod has already been exported textArea.export.imageNotExported|WARNING: The following picture was not copied because it already exists in the export folder +commonText.hasSuccessfullyBeenAddedToTheGame|has successfully been added to the game analyzer.gameplayFeature.getCustomContentString.errorWhileScanningDefaultFiles|Error wile scanning gameplay features: analyzer.gameplayFeature.getCustomContentString.customEngineFeatureFound|Modded gameplay feature found: @@ -242,6 +247,10 @@ analyzer.hardware.getCustomContentString.errorWhileScanningDefaultFiles|Error wi analyzer.hardware.getCustomContentString.customEngineFeatureFound|Modded hardware found: analyzer.hardware.getCustomContentString.customEngineFeatureComplete|Scanning for modded hardware complete analyzer.hardware.getCustomContentString.progressBar|Scanning for modded hardware +analyzer.npcIp.getCustomContentString.errorWhileScanningDefaultFiles|Error wile scanning npc ip: +analyzer.npcIp.getCustomContentString.customEngineFeatureFound|Modded npc ip found: +analyzer.npcIp.getCustomContentString.customEngineFeatureComplete|Scanning for modded npc ips complete +analyzer.npcIp.getCustomContentString.progressBar|Scanning for modded npc ips modManager.gameplayFeature.windowMain.modButton.addMod|Add gameplay feature modManager.gameplayFeature.windowMain.modButton.removeMod|Remove gameplay feature @@ -282,6 +291,9 @@ modManager.hardwareFeature.windowMain.modButton.removeMod.toolTip|Disabled -> No modManager.hardware.windowMain.modButton.addMod|Add hardware modManager.hardware.windowMain.modButton.removeMod|Remove hardware modManager.hardware.windowMain.modButton.removeMod.toolTip|Disabled -> No hardware available +modManager.npcIp.windowMain.modButton.addMod|Add npc ip +modManager.npcIp.windowMain.modButton.removeMod|Remove npc ip +modManager.npcIp.windowMain.modButton.removeMod.toolTip|Disabled -> No npc ip available modManager.general.enterNameFirst|Please enter a name first! modManager.general.enterNameDescriptionFirst|Please enter a name and description first! @@ -446,6 +458,25 @@ mod.hardware.addMod.components.checkBox.exclusiveConsole.toolTip|Check thi mod.hardware.addMod.components.comboBox.exclusiveConsole.value1|Stationary console mod.hardware.addMod.components.comboBox.exclusiveConsole.value2|Portable console mod.hardware.addMod.components.comboBox.exclusiveConsole.toolTip|Select here for which console type this hardware should be exclusive +mod.npcIp.addMod.optionPaneMessage.firstPart|Add this npc ip? +mod.npcIp.addMod.components.textFieldName.initialValue|ENTER NPC IP NAME +mod.npcIp.addMod.components.spinner.rating|IP rating in % +mod.npcIp.addMod.components.label.releaseYear|Release year +mod.npcIp.addMod.components.button.mainGenre|Main-genre +mod.npcIp.addMod.components.button.mainGenre.initial|Select main-genre +mod.npcIp.addMod.components.button.mainGenre.genreAlreadySelected|This genre has already been selected as sub-genre
Please select another genre. +mod.npcIp.addMod.components.button.subGenre|Sub-genre +mod.npcIp.addMod.components.button.subGenre.initial|Select sub-genre +mod.npcIp.addMod.components.button.subGenre.genreAlreadySelected|This genre has already been selected as main-genre
Please select another genre. +mod.npcIp.addMod.components.button.mainTheme|Main-theme +mod.npcIp.addMod.components.button.mainTheme.initial|Select main-theme +mod.npcIp.addMod.components.button.mainTheme.themeAlreadySelected|This theme has already been selected as sub-theme
Please select another theme. +mod.npcIp.addMod.components.button.subTheme|Sub-theme +mod.npcIp.addMod.components.button.subTheme.initial|Select sub-theme +mod.npcIp.addMod.components.button.subTheme.themeAlreadySelected|This theme has already been selected as main-theme
Please select another theme. +mod.npcIp.addMod.components.button.platform|Platform +mod.npcIp.addMod.components.button.platform.initial|Select platform +mod.npcIp.addMod.somethingNotSelected|At least one of the following fields is empty:

Main-genre
Main-theme
Platform

Please make sure that you have selected each and try again. sharer.engineFeature.optionPaneMessage.main|Your engine feature is ready: sharer.importMod.notCompatible|The following mod has not been imported because it is not compatible with the current mod tool version: From 1bc9531f3738c017b26964e9d1cedd95362a1e58 Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 14 Feb 2022 17:08:56 +0100 Subject: [PATCH 12/15] Added new feature to readme file --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 13a8d89d..59ab514a 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,8 @@ To update the initial backup go to `Backup -> Create backup -> Create new initia #### Npc engines - You can add new npc engines - The release year decides how high the technology level is and what engine features will be included in the engine +#### Npc IPs + - You can add custom npc ips #### Anti cheat - You can create custom anti cheat software that you can implement in your game #### Copy protection From 9698795021950ac810f2aea8f7be4a0f1cbc2475 Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 14 Feb 2022 18:32:57 +0100 Subject: [PATCH 13/15] The default content file is now deleted when the packaged default content file is newer. --- .../mgt2mt/util/manager/DefaultContentManager.java | 14 ++++++++++---- .../mgt2mt/util/manager/DefaultContentStatus.java | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index d159422e..ac887665 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -55,7 +55,7 @@ public static void performStartTasks() { updateToml(); } break; - case FILE_MISSING: { + case FILE_MISSING_OR_LOCALLY_OUTDATED: { LogFile.write("The default content file has not yet been generated or is corrupted. A new file will be generated."); if (DEFAULT_CONTENT_FILE.exists()) { DEFAULT_CONTENT_FILE.delete(); @@ -74,7 +74,8 @@ public static void performStartTasks() { /** * Analyzes if the default content files are up-to-date. * - * @return Returns {@link DefaultContentStatus#FILE_MISSING} if the default content file has not been created yet. + * @return Returns {@link DefaultContentStatus#FILE_MISSING_OR_LOCALLY_OUTDATED} if the default content file has not been created yet, + * is corrupt or the packaged default content file is newer than the file that already exists. * Returns {@link DefaultContentStatus#FILE_OUTDATED} if the default content file is no longer up-to-date. * Returns {@link DefaultContentStatus#FILE_UP_TO_DATE} if the default content file is up-to-date. * Returns {@link DefaultContentStatus#UPDATE_CHECK_FAILED} if the default content file exists but the update check has failed. @@ -84,6 +85,10 @@ private static DefaultContentStatus analyzeCurrentContentVersion() { if (DEFAULT_CONTENT_FILE.exists()) { Toml toml = new Toml().read(DefaultContentManager.DEFAULT_CONTENT_FILE); String currentVersion = toml.getString("version"); + // Check if currently packaged version is newer than the currently installed version + if (isVersionNewer(currentVersion, DEFAULT_CONTENT_VERSION).equals(DefaultContentStatus.FILE_OUTDATED)) { + return DefaultContentStatus.FILE_MISSING_OR_LOCALLY_OUTDATED; + } DebugHelper.debug(LOGGER, "default content version: " + currentVersion); try { URL url = new URL(NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL); @@ -95,11 +100,11 @@ private static DefaultContentStatus analyzeCurrentContentVersion() { return DefaultContentStatus.UPDATE_CHECK_FAILED; } } else { - return DefaultContentStatus.FILE_MISSING; + return DefaultContentStatus.FILE_MISSING_OR_LOCALLY_OUTDATED; } } catch (RuntimeException | ExceptionInInitializerError e) { e.printStackTrace(); - return DefaultContentStatus.FILE_MISSING; + return DefaultContentStatus.FILE_MISSING_OR_LOCALLY_OUTDATED; } } @@ -131,6 +136,7 @@ private static DefaultContentStatus isVersionNewer(String currentVersion, String /** * Writes a new default content file to the appdata mod tool directory. * The values from "src/main/resources/default_content" are used to write that file. + * If the default content file already exists it is replaced. */ private static void writeNewDefaultContentFile() { TomlWriter tomlWriter = new TomlWriter(); diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentStatus.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentStatus.java index 7c26d4dc..853ec1dd 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentStatus.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentStatus.java @@ -1,5 +1,5 @@ package com.github.lmh01.mgt2mt.util.manager; public enum DefaultContentStatus { - FILE_MISSING, FILE_OUTDATED, FILE_UP_TO_DATE, UPDATE_CHECK_FAILED + FILE_MISSING_OR_LOCALLY_OUTDATED, FILE_OUTDATED, FILE_UP_TO_DATE, UPDATE_CHECK_FAILED } From 785658c8e7a50d5502c5121f37b90edf8edfea99 Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 14 Feb 2022 18:42:47 +0100 Subject: [PATCH 14/15] Fixed: Publisher genre can now be selected again --- src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java index c831bb9e..67653040 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java @@ -133,7 +133,7 @@ protected void openAddModGui() throws ModProcessingException { if (Integer.parseInt(spinnerUnlockYear.getValue().toString()) > genreDate) { availableGenres.add(string1); } else if (Integer.parseInt(spinnerUnlockYear.getValue().toString()) == genreDate) { - if (Months.getIdByName(Objects.requireNonNull(comboBoxUnlockMonth.getSelectedItem()).toString()) >= Months.getIdByName(genreMap.get("DATE"))) { + if (Months.getIdByName(Objects.requireNonNull(comboBoxUnlockMonth.getSelectedItem()).toString().replaceAll("[0-9]", "").trim()) >= Months.getIdByName(genreMap.get("DATE").replaceAll("[0-9]", "").trim())) { availableGenres.add(string1); } } From 975c1b8c79166c2afeae7c1136fe4f0f21e79d19 Mon Sep 17 00:00:00 2001 From: Louis Date: Mon, 14 Feb 2022 18:50:26 +0100 Subject: [PATCH 15/15] Changed version number to v3.1.0 for upcoming release --- README.md | 2 +- build.gradle | 2 +- changelog.md | 13 ++++++++++++- .../github/lmh01/mgt2mt/MadGamesTycoon2ModTool.java | 4 ++-- .../com/github/lmh01/mgt2mt/mod/AntiCheatMod.java | 2 +- .../com/github/lmh01/mgt2mt/mod/CopyProtectMod.java | 2 +- .../github/lmh01/mgt2mt/mod/EngineFeatureMod.java | 2 +- .../github/lmh01/mgt2mt/mod/GameplayFeatureMod.java | 2 +- .../java/com/github/lmh01/mgt2mt/mod/GenreMod.java | 2 +- .../github/lmh01/mgt2mt/mod/HardwareFeatureMod.java | 2 +- .../com/github/lmh01/mgt2mt/mod/HardwareMod.java | 2 +- .../com/github/lmh01/mgt2mt/mod/LicenceMod.java | 2 +- .../com/github/lmh01/mgt2mt/mod/NpcEngineMod.java | 2 +- .../com/github/lmh01/mgt2mt/mod/NpcGamesMod.java | 2 +- .../com/github/lmh01/mgt2mt/mod/PlatformMod.java | 2 +- .../com/github/lmh01/mgt2mt/mod/PublisherMod.java | 2 +- .../java/com/github/lmh01/mgt2mt/mod/ThemeMod.java | 2 +- .../mgt2mt/util/manager/DefaultContentManager.java | 2 +- 18 files changed, 30 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 59ab514a..b54677b2 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ To update the initial backup go to `Backup -> Create backup -> Create new initia #### WHEN THE GAME IS UPDATED IT MIGHT BE POSSIBLE THAT YOUR MODIFICATIONS TO THE GAME FILES ARE LOST #### TO COUNTERACT THIS YOU CAN CREATE A MOD RESTORE POINT IN THE BACKUP MENU -## Download: [v3.0.3](https://github.com/LMH01/MGT2_Mod_Tool/releases/download/v3.0.3/MGT2_Mod_Tool_3.0.3.zip) +## Download: [v3.1.0](https://github.com/LMH01/MGT2_Mod_Tool/releases/download/v3.1.0/MGT2_Mod_Tool_3.1.0.zip) #### Getting started: - Install Java 8 (if not already installed) - Download and extract the `.zip` file diff --git a/build.gradle b/build.gradle index 24325a35..7321dae8 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,7 @@ dependencies { sourceCompatibility = 1.8 targetCompatibility = 1.8 -project.version = "3.0.3" //remember to change version in main class +project.version = "3.1.0" //remember to change version in main class archivesBaseName = "MGT2_Mod_Tool" group = "com.github.lmh01" diff --git a/changelog.md b/changelog.md index 7d37659e..bf966ea5 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,17 @@ # Changelog -## [v3.0.3](https://github.com/LMH01/MGT2_Mod_Tool/releases/tag/v3.0.3) (Latest Version) +## [v3.1.0](https://github.com/LMH01/MGT2_Mod_Tool/releases/tag/v3.1.0) (Latest Version) + +### New feature +- NPC IPs can now be added to the game + +### Other +- Updated default content files + +### Bug fixes +- It now possible again to select the genre of a publisher + +## [v3.0.3](https://github.com/LMH01/MGT2_Mod_Tool/releases/tag/v3.0.3) ### Other - Added button to utilities menu with which the settings.toml file can be opened - Updated default content files diff --git a/src/main/java/com/github/lmh01/mgt2mt/MadGamesTycoon2ModTool.java b/src/main/java/com/github/lmh01/mgt2mt/MadGamesTycoon2ModTool.java index f0042c6f..f1852481 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/MadGamesTycoon2ModTool.java +++ b/src/main/java/com/github/lmh01/mgt2mt/MadGamesTycoon2ModTool.java @@ -18,8 +18,8 @@ public class MadGamesTycoon2ModTool { public static final OSType OS_TYPE; private static final Logger LOGGER = LoggerFactory.getLogger(MadGamesTycoon2ModTool.class); - public static final String VERSION = "3.1.0-dev";//Version numbers that include "dev" are not checked for updates / tool will notify if update is available - public static final String CURRENT_RELEASE_VERSION = "3.0.3";//When this version number has been detected as the newest release version the update available message is held back + public static final String VERSION = "3.1.0";//Version numbers that include "dev" are not checked for updates / tool will notify if update is available + public static final String CURRENT_RELEASE_VERSION = "3.1.0";//When this version number has been detected as the newest release version the update available message is held back static { if (System.getProperty("os.name").contains("Linux")) { diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/AntiCheatMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/AntiCheatMod.java index 873432b8..37914a1b 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/AntiCheatMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/AntiCheatMod.java @@ -128,7 +128,7 @@ protected Charset getCharset() { @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/CopyProtectMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/CopyProtectMod.java index 97d94cd5..41e8fccf 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/CopyProtectMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/CopyProtectMod.java @@ -35,7 +35,7 @@ protected void printValues(Map map, BufferedWriter bw) throws IO @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/EngineFeatureMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/EngineFeatureMod.java index 0a8a2785..4a2fd9da 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/EngineFeatureMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/EngineFeatureMod.java @@ -44,7 +44,7 @@ protected void printValues(Map map, BufferedWriter bw) throws IO @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/GameplayFeatureMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/GameplayFeatureMod.java index 89a2c2f3..b192c01a 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/GameplayFeatureMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/GameplayFeatureMod.java @@ -51,7 +51,7 @@ protected void printValues(Map map, BufferedWriter bw) throws IO @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/GenreMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/GenreMod.java index bc7f9ebe..a8138139 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/GenreMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/GenreMod.java @@ -78,7 +78,7 @@ protected void printValues(Map map, BufferedWriter bw) throws IO @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareFeatureMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareFeatureMod.java index b23e29ca..1b07cddc 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareFeatureMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareFeatureMod.java @@ -46,7 +46,7 @@ protected void printValues(Map map, BufferedWriter bw) throws IO @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareMod.java index fa452a3e..f90367f6 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/HardwareMod.java @@ -135,7 +135,7 @@ protected void printValues(Map map, BufferedWriter bw) throws IO @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/LicenceMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/LicenceMod.java index 8b73df52..30d8beb0 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/LicenceMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/LicenceMod.java @@ -24,7 +24,7 @@ public class LicenceMod extends AbstractSimpleMod { @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/NpcEngineMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/NpcEngineMod.java index 921afdd0..159fec58 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/NpcEngineMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/NpcEngineMod.java @@ -34,7 +34,7 @@ protected void printValues(Map map, BufferedWriter bw) throws IO @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/NpcGamesMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/NpcGamesMod.java index e2e92f77..6e59bf8e 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/NpcGamesMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/NpcGamesMod.java @@ -27,7 +27,7 @@ public class NpcGamesMod extends AbstractSimpleDependentMod { @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/PlatformMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/PlatformMod.java index 9ce1c649..ea58f7ce 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/PlatformMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/PlatformMod.java @@ -111,7 +111,7 @@ protected void printValues(Map map, BufferedWriter bw) throws IO @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java index 67653040..bbe1ae0d 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/PublisherMod.java @@ -50,7 +50,7 @@ protected void printValues(Map map, BufferedWriter bw) throws IO @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/mod/ThemeMod.java b/src/main/java/com/github/lmh01/mgt2mt/mod/ThemeMod.java index 65860188..abe28b19 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/mod/ThemeMod.java +++ b/src/main/java/com/github/lmh01/mgt2mt/mod/ThemeMod.java @@ -32,7 +32,7 @@ public class ThemeMod extends AbstractSimpleDependentMod { @Override public String[] getCompatibleModToolVersions() { - return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", MadGamesTycoon2ModTool.VERSION}; + return new String[]{"3.0.0-alpha-1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", MadGamesTycoon2ModTool.VERSION}; } @Override diff --git a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java index ac887665..76d1f3b5 100644 --- a/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java +++ b/src/main/java/com/github/lmh01/mgt2mt/util/manager/DefaultContentManager.java @@ -33,7 +33,7 @@ public class DefaultContentManager { * This is the version in which the default content files are initially saved. * It indicates to what game update the default files correspond that ship with this tool. */ - private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.01.21A"; + private static final String DEFAULT_CONTENT_VERSION = "BUILD 2022.02.14A"; private static final String NEWEST_DEFAULT_CONTENT_VERSION_DOWNLOAD_URL = "https://www.dropbox.com/s/hd7f7c2b9ybr5gt/newest_default_content_version.txt?dl=1"; private static final String NEWEST_DEFAULT_CONTENT_DOWNLOAD_URL = "https://www.dropbox.com/s/7l89pg9x4venqje/newest_default_content.toml?dl=1"; public static final File DEFAULT_CONTENT_FILE = ModManagerPaths.MAIN.getPath().resolve("default_content.toml").toFile();