From 34cd83a1ffc96c6958995a28f9000c8232ca5172 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 30 Oct 2021 11:48:08 -0500 Subject: [PATCH] Region loading, map redraw improvements --- src/main/kotlin/Rs2MapEditor.kt | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/Rs2MapEditor.kt b/src/main/kotlin/Rs2MapEditor.kt index 20d7f74..e973157 100644 --- a/src/main/kotlin/Rs2MapEditor.kt +++ b/src/main/kotlin/Rs2MapEditor.kt @@ -17,6 +17,7 @@ import java.awt.* import java.awt.event.KeyEvent import java.awt.event.MouseAdapter import java.awt.event.MouseEvent +import java.lang.Exception import javax.swing.* import javax.swing.border.* import kotlin.system.exitProcess @@ -173,7 +174,7 @@ object Rs2MapEditor { } } SwingUtilities.invokeLater { - this.repaint() + this.revalidate() } } } @@ -642,7 +643,32 @@ object Rs2MapEditor { class LoadRegionItem : JMenuItem("Load") { init { addActionListener { - println("This feature has not been enabled yet") + val region = if(npcsUpdated || tileDataUpdated || itemsUpdated){ + val response = JOptionPane.showConfirmDialog(this,"You have unsaved changes, continue?") + if(response == 0){ + JOptionPane.showInputDialog("Enter Desired Region ID") + } + else return@addActionListener + } + else JOptionPane.showInputDialog("Enter Desired Region ID") + + val regionId = region.toIntOrNull() ?: JOptionPane.showInputDialog("Invalid Integer Entered").toIntOrNull() ?: return@addActionListener + + Rs2MapEditor.region = regionId + Rs2MapEditor.plane = 0 + npcs = NPCSpawnParser.parseNPCSpawns(regionId) + items = GroundItemSpawnParser.parseItemSpawns(regionId) + sceneries = TileSceneryParser.parseRegion(regionId) + npcPanel.redrawRows() + itemPanel.redrawRows() + try { + MapTileParser.init() + mapPanel.repaintMap() + } catch (e: Exception){ + mapPanel.removeAll() + mapPanel.revalidate() + JOptionPane.showMessageDialog(this, "No Map Data for Region ID $regionId.") + } } } }