aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java15
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/EventListener.java29
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/Keybinds.java10
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/commands/CommandEditRoom.java79
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/commands/CommandToggleDebug.java28
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/commands/CommandWhatYearIsIt.java40
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/data/DungeonRoomInfo.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java10
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonKey.java7
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonKeyPlacement.java12
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java11
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java38
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonWeakWall.java9
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/Triggered.java4
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/Triggering.java4
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java12
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/Parameter.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MParameter.java6
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MValue.java (renamed from src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MOffsetPoint.java)20
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonAddSet.java14
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonParameterEdit.java11
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonRoomEdit.java12
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonValueEdit.java (renamed from src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonOffsetPointEdit.java)126
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditSecret.java102
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/DynamicEditor.java12
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/ProcessorParameterEditPane.java9
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/SecretEditPane.java131
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ActuallyClonable.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPointSet.java32
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorBlazeSolver.java4
32 files changed, 461 insertions, 340 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java b/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
index 55785a95..95b9ebba 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
@@ -1,18 +1,12 @@
package kr.syeyoung.dungeonsguide;
-import com.mojang.authlib.exceptions.AuthenticationException;
import kr.syeyoung.dungeonsguide.commands.*;
import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoomInfoRegistry;
import lombok.Getter;
import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.FontRenderer;
-import net.minecraft.client.gui.GuiErrorScreen;
-import net.minecraft.client.gui.GuiScreen;
import net.minecraft.util.IChatComponent;
import net.minecraftforge.client.ClientCommandHandler;
import net.minecraftforge.common.MinecraftForge;
-import net.minecraftforge.fml.client.CustomModLoadingErrorDisplayException;
-import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
@@ -31,7 +25,7 @@ public class DungeonsGuide implements DungeonsGuideInterface {
private static DungeonsGuide dungeonsGuide;
- public static boolean DEBUG = false;
+ public static boolean DEBUG = true;
@Getter
private Authenticator authenticator;
@@ -50,13 +44,8 @@ public class DungeonsGuide implements DungeonsGuideInterface {
skyblockStatus = new SkyblockStatus();
MinecraftForge.EVENT_BUS.register(new EventListener());
- CommandEditRoom cc = new CommandEditRoom();
- ClientCommandHandler.instance.registerCommand(cc);
- MinecraftForge.EVENT_BUS.register(cc);
ClientCommandHandler.instance.registerCommand(new CommandLoadData());
ClientCommandHandler.instance.registerCommand(new CommandSaveData());
- ClientCommandHandler.instance.registerCommand(new CommandToggleDebug());
- ClientCommandHandler.instance.registerCommand(new CommandWhatYearIsIt());
try {
DungeonRoomInfoRegistry.loadAll();
@@ -86,7 +75,7 @@ public class DungeonsGuide implements DungeonsGuideInterface {
private File configDir;
- public Object getSkyblockStatus() {
+ public SkyblockStatus getSkyblockStatus() {
return (SkyblockStatus) skyblockStatus;
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/EventListener.java b/src/main/java/kr/syeyoung/dungeonsguide/EventListener.java
index 72bafb25..592049e7 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/EventListener.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/EventListener.java
@@ -5,8 +5,8 @@ import kr.syeyoung.dungeonsguide.dungeon.doorfinder.DungeonDoor;
import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
import kr.syeyoung.dungeonsguide.roomedit.EditingContext;
import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonAddSet;
-import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonOffsetPointEdit;
import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonParameterEdit;
+import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonRoomEdit;
import kr.syeyoung.dungeonsguide.roomedit.valueedit.ValueEdit;
import kr.syeyoung.dungeonsguide.roomprocessor.RoomProcessor;
import kr.syeyoung.dungeonsguide.utils.MapUtils;
@@ -203,10 +203,31 @@ public class EventListener {
@SubscribeEvent
public void onKeyInput(InputEvent.KeyInputEvent keyInputEvent) {
- if (Keybinds.opengui.isKeyDown()){
+ if (DungeonsGuide.DEBUG &&Keybinds.editingSession.isKeyDown() ){
EditingContext ec = EditingContext.getEditingContext();
- if (ec == null) DungeonsGuide.sendDebugChat(new ChatComponentText("No Editing session is open right now"));
- else ec.reopen();
+ if (ec == null) {
+ DungeonContext context = DungeonsGuide.getDungeonsGuide().getSkyblockStatus().getContext();
+ if (context == null) {
+ Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("Not in dungeons"));
+ return;
+ }
+ EntityPlayerSP thePlayer = Minecraft.getMinecraft().thePlayer;
+ Point roomPt = context.getMapProcessor().worldPointToRoomPoint(thePlayer.getPosition());
+ DungeonRoom dungeonRoom = context.getRoomMapper().get(roomPt);
+
+ if (dungeonRoom == null) {
+ Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("Can't determine the dungeon room you're in"));
+ return;
+ }
+
+ if (EditingContext.getEditingContext() != null) {
+ Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("There is an editing session currently open."));
+ return;
+ }
+
+ EditingContext.createEditingContext(dungeonRoom);
+ EditingContext.getEditingContext().openGui(new GuiDungeonRoomEdit(dungeonRoom));
+ } else ec.reopen();
}
}
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/Keybinds.java b/src/main/java/kr/syeyoung/dungeonsguide/Keybinds.java
index 17d0ccaa..14cd6a9a 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/Keybinds.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/Keybinds.java
@@ -6,12 +6,14 @@ import org.lwjgl.input.Keyboard;
public class Keybinds
{
- public static KeyBinding opengui;
+ public static KeyBinding editingSession;
+ public static KeyBinding ringMenuForSecretEdit;
public static void register()
{
- opengui = new KeyBinding("ay", Keyboard.KEY_R, "key.categories.misc");
-
- ClientRegistry.registerKeyBinding(opengui);
+ if (DungeonsGuide.DEBUG) {
+ editingSession = new KeyBinding("start editing session", Keyboard.KEY_R, "key.categories.misc");
+ ClientRegistry.registerKeyBinding(editingSession);
+ }
}
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandEditRoom.java b/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandEditRoom.java
deleted file mode 100644
index 18f37b09..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandEditRoom.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package kr.syeyoung.dungeonsguide.commands;
-
-import kr.syeyoung.dungeonsguide.DungeonsGuide;
-import kr.syeyoung.dungeonsguide.SkyblockStatus;
-import kr.syeyoung.dungeonsguide.dungeon.DungeonContext;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.roomedit.EditingContext;
-import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonRoomEdit;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.EntityPlayerSP;
-import net.minecraft.command.CommandBase;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.util.ChatComponentText;
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
-import net.minecraftforge.fml.common.gameevent.TickEvent;
-import net.minecraftforge.fml.relauncher.Side;
-
-import java.awt.*;
-
-public class CommandEditRoom extends CommandBase {
- @Override
- public String getCommandName() {
- return "editsession";
- }
-
- @Override
- public String getCommandUsage(ICommandSender sender) {
- return "editsession";
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) {
- SkyblockStatus skyblockStatus = (SkyblockStatus) DungeonsGuide.getDungeonsGuide().getSkyblockStatus();
- if (!skyblockStatus.isOnDungeon()) {
- sender.addChatMessage(new ChatComponentText("You're not in dungeons"));
- return;
- }
-
- if (skyblockStatus.getContext() == null) {
- sender.addChatMessage(new ChatComponentText("Dungeon Context is null"));
- return;
- }
-
-
- DungeonContext context = skyblockStatus.getContext();
- EntityPlayerSP thePlayer = Minecraft.getMinecraft().thePlayer;
- Point roomPt = context.getMapProcessor().worldPointToRoomPoint(thePlayer.getPosition());
- DungeonRoom dungeonRoom = context.getRoomMapper().get(roomPt);
-
- if (dungeonRoom == null) {
- sender.addChatMessage(new ChatComponentText("Can't determine the dungeon room you're in"));
- return;
- }
-
- if (EditingContext.getEditingContext() != null) {
- sender.addChatMessage(new ChatComponentText("There is an editing session currently open."));
- return;
- }
-
- EditingContext.createEditingContext(dungeonRoom);
- openGuiReq = true;
- }
-
- private boolean openGuiReq = false;
-
- @SubscribeEvent
- public void tick(TickEvent.ClientTickEvent tick){
- if ( openGuiReq &&tick.phase == TickEvent.Phase.END && tick.side == Side.CLIENT && tick.type == TickEvent.Type.CLIENT) {
- DungeonRoom dr = EditingContext.getEditingContext().getRoom();
- EditingContext.getEditingContext().openGui(new GuiDungeonRoomEdit(dr));
- openGuiReq = false;
- }
- }
-
- @Override
- public int getRequiredPermissionLevel() {
- return 0;
- }
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandToggleDebug.java b/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandToggleDebug.java
deleted file mode 100644
index cf1ff459..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandToggleDebug.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package kr.syeyoung.dungeonsguide.commands;
-
-import kr.syeyoung.dungeonsguide.DungeonsGuide;
-import net.minecraft.command.CommandBase;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.util.ChatComponentText;
-
-public class CommandToggleDebug extends CommandBase {
- @Override
- public String getCommandName() {
- return "debugtoggle";
- }
-
- @Override
- public String getCommandUsage(ICommandSender sender) {
- return "debugtoggle";
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) {
- DungeonsGuide.DEBUG = !DungeonsGuide.DEBUG;
- sender.addChatMessage(new ChatComponentText("Toggled Debug mode to "+ DungeonsGuide.DEBUG));
- }
- @Override
- public int getRequiredPermissionLevel() {
- return 0;
- }
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandWhatYearIsIt.java b/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandWhatYearIsIt.java
deleted file mode 100644
index d5da1c7f..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandWhatYearIsIt.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package kr.syeyoung.dungeonsguide.commands;
-
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import kr.syeyoung.dungeonsguide.utils.SkyblockUtils;
-import net.minecraft.command.CommandBase;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.util.ChatComponentText;
-
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-public class CommandWhatYearIsIt extends CommandBase {
- @Override
- public String getCommandName() {
- return "tellmeyear";
- }
-
- @Override
- public String getCommandUsage(ICommandSender sender) {
- return "tellmeyear";
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) {
- try {
-
-
-
- sender.addChatMessage(new ChatComponentText("Current year is "+ SkyblockUtils.getSkyblockYear()));
- } catch (Throwable throwable) {
- throwable.printStackTrace();
- }
- }
- @Override
- public int getRequiredPermissionLevel() {
- return 0;
- }
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/data/DungeonRoomInfo.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/data/DungeonRoomInfo.java
index 06ca7877..a57e33b7 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/data/DungeonRoomInfo.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/data/DungeonRoomInfo.java
@@ -1,7 +1,6 @@
package kr.syeyoung.dungeonsguide.dungeon.data;
import kr.syeyoung.dungeonsguide.dungeon.mechanics.DungeonMechanic;
-import kr.syeyoung.dungeonsguide.roomedit.valueedit.ActuallyClonable;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java
deleted file mode 100644
index 01f001e0..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package kr.syeyoung.dungeonsguide.dungeon.mechanics;
-
-import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPointSet;
-import lombok.Data;
-
-@Data
-public class DungeonDoor implements Triggered {
- private OffsetPointSet offsetPointSet = new OffsetPointSet();
- private Triggering triggering;
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonKey.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonKey.java
deleted file mode 100644
index 15ca98dd..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonKey.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package kr.syeyoung.dungeonsguide.dungeon.mechanics;
-
-import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-
-public class DungeonKey implements DungeonMechanic {
- private OffsetPoint key;
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonKeyPlacement.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonKeyPlacement.java
deleted file mode 100644
index e2f20ba3..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonKeyPlacement.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package kr.syeyoung.dungeonsguide.dungeon.mechanics;
-
-import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import lombok.Data;
-
-@Data
-public class DungeonKeyPlacement implements DungeonMechanic, Triggering {
- private OffsetPoint keySlot;
- private DungeonKey dungeonKey;
-
- private Triggered triggered;
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java
deleted file mode 100644
index d52982ad..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package kr.syeyoung.dungeonsguide.dungeon.mechanics;
-
-import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import lombok.Data;
-
-@Data
-public class DungeonLever implements DungeonMechanic {
- private OffsetPoint lever = new OffsetPoint(0,0,0);
-
- private Triggered triggered;
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java
index 4c3974fb..06992387 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java
@@ -1,16 +1,54 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
+import kr.syeyoung.dungeonsguide.DungeonsGuide;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
+import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
+import net.minecraft.block.state.IBlockState;
+import net.minecraft.init.Blocks;
+import net.minecraft.tileentity.TileEntityChest;
+import net.minecraft.util.BlockPos;
@Data
public class DungeonSecret implements DungeonMechanic {
private OffsetPoint secretPoint = new OffsetPoint(0,0,0);
private SecretType secretType = SecretType.CHEST;
+ public SecretStatus getSecretStatus(DungeonRoom dungeonRoom) {
+ if (secretType == SecretType.CHEST) {
+ BlockPos pos = secretPoint.getBlockPos(dungeonRoom);
+ IBlockState blockState = dungeonRoom.getContext().getWorld().getBlockState(pos);
+ if (blockState.getBlock() == Blocks.air) {
+ return SecretStatus.DEFINITELY_NOT;
+ } else if (blockState.getBlock() != Blocks.chest && blockState.getBlock() != Blocks.trapped_chest) {
+ return SecretStatus.ERROR;
+ } else {
+ TileEntityChest chest = (TileEntityChest) dungeonRoom.getContext().getWorld().getTileEntity(pos);
+ if (chest.numPlayersUsing > 0) {
+ return SecretStatus.FOUND;
+ } else{
+ return SecretStatus.CREATED;
+ }
+ }
+ } else {
+ return SecretStatus.NOT_SURE;
+ }
+ }
+
public static enum SecretType {
BAT, CHEST, ITEM_DROP
}
+
+ public static enum SecretStatus {
+ DEFINITELY_NOT, NOT_SURE, CREATED, FOUND, ERROR
+ }
+
+ public DungeonSecret clone() throws CloneNotSupportedException {
+ DungeonSecret dungeonSecret = new DungeonSecret();
+ dungeonSecret.secretPoint = (OffsetPoint) secretPoint.clone();
+ dungeonSecret.secretType = secretType;
+ return dungeonSecret;
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonWeakWall.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonWeakWall.java
deleted file mode 100644
index e233c2fb..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonWeakWall.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package kr.syeyoung.dungeonsguide.dungeon.mechanics;
-
-import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPointSet;
-import lombok.Data;
-
-@Data
-public class DungeonWeakWall implements DungeonMechanic {
- OffsetPointSet weakWalls = new OffsetPointSet();
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/Triggered.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/Triggered.java
deleted file mode 100644
index d32a76e4..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/Triggered.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package kr.syeyoung.dungeonsguide.dungeon.mechanics;
-
-public interface Triggered extends DungeonMechanic{
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/Triggering.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/Triggering.java
deleted file mode 100644
index 7d535d37..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/Triggering.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package kr.syeyoung.dungeonsguide.dungeon.mechanics;
-
-public interface Triggering extends DungeonMechanic {
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java
index b9d7c488..4045503e 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java
@@ -1,8 +1,10 @@
package kr.syeyoung.dungeonsguide.roomedit;
import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonRoomEdit;
import lombok.Data;
import lombok.Getter;
+import lombok.Setter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiScreen;
@@ -37,10 +39,19 @@ public class EditingContext {
private Stack<GuiScreen> guiStack = new Stack<GuiScreen>();
+ public boolean isEditingSecrets() {
+ return guiDungeonRoomEdit.isEditingSelected();
+ }
+ public void endEditing() {
+ guiDungeonRoomEdit.endEditing();
+ }
+
+ private GuiDungeonRoomEdit guiDungeonRoomEdit;
@Getter
private GuiScreen current;
public void openGui(GuiScreen gui) {
+ if (gui instanceof GuiDungeonRoomEdit) guiDungeonRoomEdit = (GuiDungeonRoomEdit) gui;
guiStack.push(current);
this.current = gui;
Minecraft.getMinecraft().displayGuiScreen(gui);
@@ -52,6 +63,7 @@ public class EditingContext {
}
public void reopen() {
+ guiDungeonRoomEdit.endEditing();
Minecraft.getMinecraft().displayGuiScreen(current);
}
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/Parameter.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/Parameter.java
index 98b0a136..fea900ba 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/Parameter.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/Parameter.java
@@ -1,6 +1,5 @@
package kr.syeyoung.dungeonsguide.roomedit;
-import kr.syeyoung.dungeonsguide.roomedit.valueedit.ActuallyClonable;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MParameter.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MParameter.java
index be6c4303..fef77a25 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MParameter.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MParameter.java
@@ -4,7 +4,7 @@ import kr.syeyoung.dungeonsguide.roomedit.EditingContext;
import kr.syeyoung.dungeonsguide.roomedit.MPanel;
import kr.syeyoung.dungeonsguide.roomedit.Parameter;
import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonParameterEdit;
-import kr.syeyoung.dungeonsguide.roomedit.panes.ProcessorParameterEditPane;
+import kr.syeyoung.dungeonsguide.roomedit.panes.DynamicEditor;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.gui.Gui;
@@ -20,9 +20,9 @@ public class MParameter extends MPanel {
@Getter @Setter
private Parameter parameter;
- private ProcessorParameterEditPane processorParameterEditPane;
+ private DynamicEditor processorParameterEditPane;
- public MParameter(final Parameter parameter, ProcessorParameterEditPane processorParameterEditPane) {
+ public MParameter(final Parameter parameter, DynamicEditor processorParameterEditPane) {
this.processorParameterEditPane = processorParameterEditPane;
this.add(this.label = new MLabel() {
@Override
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MOffsetPoint.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MValue.java
index 3143f42a..9c733fd6 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MOffsetPoint.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MValue.java
@@ -3,29 +3,29 @@ package kr.syeyoung.dungeonsguide.roomedit.elements;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
import kr.syeyoung.dungeonsguide.roomedit.EditingContext;
import kr.syeyoung.dungeonsguide.roomedit.MPanel;
-import kr.syeyoung.dungeonsguide.roomedit.Parameter;
-import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonOffsetPointEdit;
-import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonParameterEdit;
-import kr.syeyoung.dungeonsguide.roomedit.panes.ProcessorParameterEditPane;
+import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonValueEdit;
import kr.syeyoung.dungeonsguide.roomedit.valueedit.ValueEditOffsetPointSet;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.gui.Gui;
+import scala.actors.threadpool.Arrays;
import java.awt.*;
-
-public class MOffsetPoint extends MPanel {
+import java.util.ArrayList;
+import java.util.List;
+public class MValue<T> extends MPanel {
@Getter
- private OffsetPoint data;
+ private T data;
private ValueEditOffsetPointSet valueEditOffsetPointSet;
private MLabel dataLab;
@Getter @Setter
private Color hover = Color.gray;
+ private List<MPanel> addons;
- public MOffsetPoint(ValueEditOffsetPointSet valueEditOffsetPointSet, final OffsetPoint parameter) {
- this.valueEditOffsetPointSet = valueEditOffsetPointSet;
+ public MValue(final T parameter, List<MPanel> addons) {
+ this.addons = addons;
this.add(this.dataLab = new MLabel() {
@Override
public String getText() {
@@ -47,7 +47,7 @@ public class MOffsetPoint extends MPanel {
@Override
public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) {
if (this.bounds.x > -20 && new Rectangle(new Point(0,0),bounds.getSize()).contains(relMouseX, relMouseY)) {
- EditingContext.getEditingContext().openGui(new GuiDungeonOffsetPointEdit(valueEditOffsetPointSet, data));
+ EditingContext.getEditingContext().openGui(new GuiDungeonValueEdit(data, addons));
}
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonAddSet.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonAddSet.java
index a0496b47..2498888f 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonAddSet.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonAddSet.java
@@ -10,13 +10,13 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.GlStateManager;
-import net.minecraft.util.BlockPos;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import java.awt.*;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
public class GuiDungeonAddSet extends GuiScreen {
@@ -71,12 +71,12 @@ public class GuiDungeonAddSet extends GuiScreen {
end = new OffsetPoint(EditingContext.getEditingContext().getRoom(), Minecraft.getMinecraft().thePlayer.getPosition());