Refactored Motherlode to Mining plugin, tried, but failed to render squares and mining icons.
This commit is contained in:
@@ -29,28 +29,19 @@ import net.runelite.client.config.Config;
|
|||||||
import net.runelite.client.config.ConfigGroup;
|
import net.runelite.client.config.ConfigGroup;
|
||||||
import net.runelite.client.config.ConfigItem;
|
import net.runelite.client.config.ConfigItem;
|
||||||
|
|
||||||
@ConfigGroup("motherlode")
|
@ConfigGroup("mining")
|
||||||
public interface MotherlodeConfig extends Config
|
public interface MiningConfig extends Config
|
||||||
{
|
{
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "showVeins",
|
keyName = "showMiningRocks",
|
||||||
name = "Show pay-dirt mining spots",
|
name = "Show rock mining spots",
|
||||||
description = "Configures whether or not the pay-dirt mining spots are displayed."
|
description = "Configures whether or not the mining spots are displayed."
|
||||||
)
|
)
|
||||||
default boolean showVeins()
|
default boolean showMiningRocks()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
|
||||||
keyName = "showRocks",
|
|
||||||
name = "Show rocks obstacles",
|
|
||||||
description = "Configures whether or not the fallen rocks obstacles are displayed."
|
|
||||||
)
|
|
||||||
default boolean showRockFalls()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "statTimeout",
|
keyName = "statTimeout",
|
||||||
@@ -62,16 +53,6 @@ public interface MotherlodeConfig extends Config
|
|||||||
return 5;
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
|
||||||
keyName = "showSack",
|
|
||||||
name = "Show pay-dirt sack",
|
|
||||||
description = "Configures whether the pay-dirt sack is displayed or not."
|
|
||||||
)
|
|
||||||
default boolean showSack()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "showMiningStats",
|
keyName = "showMiningStats",
|
||||||
name = "Show mining session stats",
|
name = "Show mining session stats",
|
||||||
@@ -82,15 +63,6 @@ public interface MotherlodeConfig extends Config
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
|
||||||
keyName = "showDepositsLeft",
|
|
||||||
name = "Show deposits left",
|
|
||||||
description = "Displays deposits left before sack is full"
|
|
||||||
)
|
|
||||||
default boolean showDepositsLeft()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "showMiningState",
|
keyName = "showMiningState",
|
||||||
@@ -101,14 +73,4 @@ public interface MotherlodeConfig extends Config
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
|
||||||
keyName = "showGemsFound",
|
|
||||||
name = "Show gems found",
|
|
||||||
description = "Shows gems found during current mining session"
|
|
||||||
)
|
|
||||||
default boolean showGemsFound()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -26,7 +26,7 @@ package net.runelite.client.plugins.mining;
|
|||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.client.plugins.motherlode.MotherlodeConfig;
|
import net.runelite.client.plugins.mining.MiningConfig;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.components.LineComponent;
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
@@ -41,7 +41,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import static net.runelite.api.AnimationID.*;
|
import static net.runelite.api.AnimationID.*;
|
||||||
|
|
||||||
class MotherlodeOverlay extends Overlay
|
class MiningOverlay extends Overlay
|
||||||
{
|
{
|
||||||
private static final Set<Integer> MINING_ANIMATION_IDS = ImmutableSet.of(
|
private static final Set<Integer> MINING_ANIMATION_IDS = ImmutableSet.of(
|
||||||
MINING_MOTHERLODE_BRONZE, MINING_MOTHERLODE_IRON, MINING_MOTHERLODE_STEEL,
|
MINING_MOTHERLODE_BRONZE, MINING_MOTHERLODE_IRON, MINING_MOTHERLODE_STEEL,
|
||||||
@@ -52,11 +52,11 @@ class MotherlodeOverlay extends Overlay
|
|||||||
|
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final MiningPlugin plugin;
|
private final MiningPlugin plugin;
|
||||||
private final MotherlodeConfig config;
|
private final MiningConfig config;
|
||||||
private final PanelComponent panelComponent = new PanelComponent();
|
private final PanelComponent panelComponent = new PanelComponent();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
MotherlodeOverlay(Client client, MiningPlugin plugin, MotherlodeConfig config)
|
MiningOverlay(Client client, MiningPlugin plugin, MiningConfig config)
|
||||||
{
|
{
|
||||||
setPosition(OverlayPosition.TOP_LEFT);
|
setPosition(OverlayPosition.TOP_LEFT);
|
||||||
this.client = client;
|
this.client = client;
|
||||||
@@ -31,22 +31,17 @@ import com.google.inject.Provides;
|
|||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.runelite.api.*;
|
import net.runelite.api.*;
|
||||||
import net.runelite.api.coords.LocalPoint;
|
|
||||||
import net.runelite.api.events.*;
|
import net.runelite.api.events.*;
|
||||||
import net.runelite.api.widgets.Widget;
|
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
|
||||||
import net.runelite.client.callback.ClientThread;
|
import net.runelite.client.callback.ClientThread;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.eventbus.Subscribe;
|
import net.runelite.client.eventbus.Subscribe;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.plugins.motherlode.MotherlodeConfig;
|
import net.runelite.client.plugins.mining.MiningConfig;
|
||||||
import net.runelite.client.task.Schedule;
|
import net.runelite.client.task.Schedule;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.time.Duration;
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -54,9 +49,9 @@ import java.util.Set;
|
|||||||
import static net.runelite.api.ObjectID.*;
|
import static net.runelite.api.ObjectID.*;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Motherlode Mine",
|
name = "Mining",
|
||||||
description = "Show helpful information inside the Motherload Mine",
|
description = "Show helpful information about Mining",
|
||||||
tags = {"pay", "dirt", "mining", "mlm", "skilling", "overlay"},
|
tags = {"mining", "skilling", "overlay"},
|
||||||
enabledByDefault = false
|
enabledByDefault = false
|
||||||
)
|
)
|
||||||
public class MiningPlugin extends Plugin
|
public class MiningPlugin extends Plugin
|
||||||
@@ -65,8 +60,14 @@ public class MiningPlugin extends Plugin
|
|||||||
private static final Set<Integer> MINE_SPOTS = ImmutableSet.of(ORE_VEIN_26661, ORE_VEIN_26662, ORE_VEIN_26663, ORE_VEIN_26664);
|
private static final Set<Integer> MINE_SPOTS = ImmutableSet.of(ORE_VEIN_26661, ORE_VEIN_26662, ORE_VEIN_26663, ORE_VEIN_26664);
|
||||||
private static final Set<Integer> MLM_ORE_TYPES = ImmutableSet.of(ItemID.RUNITE_ORE, ItemID.ADAMANTITE_ORE,
|
private static final Set<Integer> MLM_ORE_TYPES = ImmutableSet.of(ItemID.RUNITE_ORE, ItemID.ADAMANTITE_ORE,
|
||||||
ItemID.MITHRIL_ORE, ItemID.GOLD_ORE, ItemID.COAL, ItemID.GOLDEN_NUGGET);
|
ItemID.MITHRIL_ORE, ItemID.GOLD_ORE, ItemID.COAL, ItemID.GOLDEN_NUGGET);
|
||||||
private static final Set<Integer> ROCK_OBSTACLES = ImmutableSet.of(ROCKFALL, ROCKFALL_26680);
|
private static final Set<Integer> MINING_ROCKS = ImmutableSet.of(968,
|
||||||
|
1480,
|
||||||
|
1855,
|
||||||
|
4043,
|
||||||
|
4487,
|
||||||
|
7533,
|
||||||
|
9716,
|
||||||
|
21250, 1997, 2581, 2582, 2694, 2695, 2696, 2697, 2835, 2836, 2837, 2901, 2965, 3339, 3364, 4526, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4887, 5604, 5605, 5606, 5844, 5845, 5896, 5985, 5987, 6622, 6623, 6707, 6708, 6709, 7466, 8725, 8726, 8950, 8951, 8952, 9031, 9032, 10036, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 11097, 11098, 11182, 11183, 11424, 11425, 12564, 12565, 12566, 12567, 12588, 12589, 12774, 14814, 14815, 14816, 14817, 15198, 15199, 15217, 15218, 15219, 15410, 15536, 15537, 16077, 16078, 16079, 16080, 16115, 16136, 16284, 16303, 17350, 17351, 17352, 17353, 17354, 17355, 17356, 17357, 17358, 17364, 17365, 17366, 17679, 17958, 17959, 17960, 17970, 17971, 17972, 18871, 18872, 18873, 19131, 21571, 21572, 21573, 22549, 22550, 22551, 23124, 23125, 23126, 23127, 23165, 23976, 23977, 23978, 23979, 23980, 23981, 24693, 24694, 24695, 24696, 24697, 24698, 24699, 24700, 24701, 24781, 25158, 25159, 25160, 25422, 25423, 26372, 26373, 26376, 26377, 26850, 26856, 28580, 29102, 29883, 29884, 29885, 30344, 30519, 30521, 30522, 30857, 30858, 31045, 31781, 31782, 31783, 31784, 31785, 31786, 31787, 31788, 31789);
|
||||||
private static final int MAX_INVENTORY_SIZE = 28;
|
private static final int MAX_INVENTORY_SIZE = 28;
|
||||||
|
|
||||||
// private static final int SACK_LARGE_SIZE = 162;
|
// private static final int SACK_LARGE_SIZE = 162;
|
||||||
@@ -78,13 +79,13 @@ public class MiningPlugin extends Plugin
|
|||||||
private OverlayManager overlayManager;
|
private OverlayManager overlayManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private MotherlodeOverlay overlay;
|
private MiningOverlay overlay;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private MiningRocksOverlay rocksOverlay;
|
private MiningRocksOverlay rocksOverlay;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private MotherlodeConfig config;
|
private MiningConfig config;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Client client;
|
private Client client;
|
||||||
@@ -110,9 +111,9 @@ public class MiningPlugin extends Plugin
|
|||||||
private final Set<GameObject> rocks = new HashSet<>();
|
private final Set<GameObject> rocks = new HashSet<>();
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
MotherlodeConfig getConfig(ConfigManager configManager)
|
MiningConfig getConfig(ConfigManager configManager)
|
||||||
{
|
{
|
||||||
return configManager.getConfig(MotherlodeConfig.class);
|
return configManager.getConfig(MiningConfig.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -246,51 +247,36 @@ public class MiningPlugin extends Plugin
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// @Subscribe
|
|
||||||
// public void onWallObjectChanged(WallObjectChanged event)
|
|
||||||
// {
|
|
||||||
// if (!inMlm)
|
|
||||||
// {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// WallObject previous = event.getPrevious();
|
|
||||||
// WallObject wallObject = event.getWallObject();
|
|
||||||
//
|
|
||||||
// veins.remove(previous);
|
|
||||||
// if (MINE_SPOTS.contains(wallObject.getId()))
|
|
||||||
// {
|
|
||||||
// veins.add(wallObject);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Subscribe
|
|
||||||
// public void onWallObjectDespawned(WallObjectDespawned event)
|
|
||||||
// {
|
|
||||||
// if (!inMlm)
|
|
||||||
// {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// WallObject wallObject = event.getWallObject();
|
|
||||||
// veins.remove(wallObject);
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onGameObjectSpawned(GameObjectSpawned event)
|
public void onGameObjectChanged(GameObjectChanged event)
|
||||||
{
|
{
|
||||||
if (!inMlm)
|
GameObject previous = event.getPrevious();
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
GameObject gameObject = event.getGameObject();
|
GameObject gameObject = event.getGameObject();
|
||||||
if (ROCK_OBSTACLES.contains(gameObject.getId()))
|
|
||||||
|
rocks.remove(previous);
|
||||||
|
if (MINING_ROCKS.contains(gameObject.getId()))
|
||||||
{
|
{
|
||||||
rocks.add(gameObject);
|
rocks.add(gameObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onGameObjectDespawned(GameObjectChanged event)
|
||||||
|
{
|
||||||
|
GameObject gameObject = event.getGameObject();
|
||||||
|
rocks.remove(gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Subscribe
|
||||||
|
// public void onGameObjectSpawned(GameObjectSpawned event)
|
||||||
|
// {
|
||||||
|
// GameObject gameObject = event.getGameObject();
|
||||||
|
// if (MINING_ROCKS.contains(gameObject.getId()))
|
||||||
|
// {
|
||||||
|
// rocks.add(gameObject);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
// @Subscribe
|
// @Subscribe
|
||||||
// public void onGameObjectChanged(GameObjectChanged event)
|
// public void onGameObjectChanged(GameObjectChanged event)
|
||||||
// {
|
// {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import net.runelite.api.Point;
|
|||||||
import net.runelite.api.*;
|
import net.runelite.api.*;
|
||||||
import net.runelite.api.coords.LocalPoint;
|
import net.runelite.api.coords.LocalPoint;
|
||||||
import net.runelite.client.game.SkillIconManager;
|
import net.runelite.client.game.SkillIconManager;
|
||||||
import net.runelite.client.plugins.motherlode.MotherlodeConfig;
|
import net.runelite.client.plugins.mining.MiningConfig;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
@@ -46,12 +46,12 @@ class MiningRocksOverlay extends Overlay
|
|||||||
|
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final MiningPlugin plugin;
|
private final MiningPlugin plugin;
|
||||||
private final MotherlodeConfig config;
|
private final MiningConfig config;
|
||||||
|
|
||||||
private final BufferedImage miningIcon;
|
private final BufferedImage miningIcon;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
MiningRocksOverlay(Client client, MiningPlugin plugin, MotherlodeConfig config, SkillIconManager iconManager)
|
MiningRocksOverlay(Client client, MiningPlugin plugin, MiningConfig config, SkillIconManager iconManager)
|
||||||
{
|
{
|
||||||
setPosition(OverlayPosition.DYNAMIC);
|
setPosition(OverlayPosition.DYNAMIC);
|
||||||
setLayer(OverlayLayer.ABOVE_SCENE);
|
setLayer(OverlayLayer.ABOVE_SCENE);
|
||||||
@@ -65,11 +65,6 @@ class MiningRocksOverlay extends Overlay
|
|||||||
@Override
|
@Override
|
||||||
public Dimension render(Graphics2D graphics)
|
public Dimension render(Graphics2D graphics)
|
||||||
{
|
{
|
||||||
if ((!config.showVeins() && !config.showRockFalls()) || !plugin.isInMlm())
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player local = client.getLocalPlayer();
|
Player local = client.getLocalPlayer();
|
||||||
|
|
||||||
renderTiles(graphics, local);
|
renderTiles(graphics, local);
|
||||||
@@ -81,39 +76,25 @@ class MiningRocksOverlay extends Overlay
|
|||||||
{
|
{
|
||||||
LocalPoint localLocation = local.getLocalLocation();
|
LocalPoint localLocation = local.getLocalLocation();
|
||||||
|
|
||||||
// if (config.showVeins())
|
if (config.showMiningRocks()) {
|
||||||
// {
|
for (GameObject rock : plugin.getRocks()) {
|
||||||
// for (WallObject vein : plugin.getVeins())
|
LocalPoint location = rock.getLocalLocation();
|
||||||
// {
|
if (localLocation.distanceTo(location) <= MAX_DISTANCE) {
|
||||||
// LocalPoint location = vein.getLocalLocation();
|
// Only draw veins on the same level
|
||||||
// if (localLocation.distanceTo(location) <= MAX_DISTANCE)
|
|
||||||
// {
|
|
||||||
// // Only draw veins on the same level
|
|
||||||
// if (plugin.isUpstairs(localLocation) == plugin.isUpstairs(vein.getLocalLocation()))
|
// if (plugin.isUpstairs(localLocation) == plugin.isUpstairs(vein.getLocalLocation()))
|
||||||
// {
|
// {
|
||||||
// renderVein(graphics, vein);
|
renderMiningRock(graphics, rock);
|
||||||
|
renderMiningRockSquare(graphics, rock);
|
||||||
// }
|
// }
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (config.showRockFalls())
|
|
||||||
{
|
|
||||||
for (GameObject rock : plugin.getRocks())
|
|
||||||
{
|
|
||||||
LocalPoint location = rock.getLocalLocation();
|
|
||||||
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
|
|
||||||
{
|
|
||||||
renderRock(graphics, rock);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderVein(Graphics2D graphics, WallObject vein)
|
private void renderMiningRock(Graphics2D graphics, GameObject rock)
|
||||||
{
|
{
|
||||||
Point canvasLoc = Perspective.getCanvasImageLocation(client, vein.getLocalLocation(), miningIcon, 150);
|
Point canvasLoc = Perspective.getCanvasImageLocation(client, rock.getLocalLocation(), miningIcon, 0);
|
||||||
|
|
||||||
if (canvasLoc != null)
|
if (canvasLoc != null)
|
||||||
{
|
{
|
||||||
@@ -121,7 +102,7 @@ class MiningRocksOverlay extends Overlay
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderRock(Graphics2D graphics, GameObject rock)
|
private void renderMiningRockSquare(Graphics2D graphics, GameObject rock)
|
||||||
{
|
{
|
||||||
Polygon poly = Perspective.getCanvasTilePoly(client, rock.getLocalLocation());
|
Polygon poly = Perspective.getCanvasTilePoly(client, rock.getLocalLocation());
|
||||||
|
|
||||||
|
|||||||
@@ -239,6 +239,7 @@ public class MotherlodePlugin extends Plugin
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
depositsLeft = calculateDepositsLeft();
|
depositsLeft = calculateDepositsLeft();
|
||||||
|
|
||||||
Instant lastPayDirtMined = session.getLastPayDirtMined();
|
Instant lastPayDirtMined = session.getLastPayDirtMined();
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ class MotherlodeRocksOverlay extends Overlay
|
|||||||
LocalPoint location = rock.getLocalLocation();
|
LocalPoint location = rock.getLocalLocation();
|
||||||
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
|
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
|
||||||
{
|
{
|
||||||
|
plugin.checkMining();
|
||||||
renderRock(graphics, rock);
|
renderRock(graphics, rock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user