aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java')
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java285
1 files changed, 0 insertions, 285 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java
deleted file mode 100755
index 1133a8a9..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
- * Copyright (C) 2021 cyoung06
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package kr.syeyoung.dungeonsguide.roomedit.panes;
-
-import kr.syeyoung.dungeonsguide.DungeonsGuide;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoomInfoRegistry;
-import kr.syeyoung.dungeonsguide.roomedit.EditingContext;
-import kr.syeyoung.dungeonsguide.gui.MPanel;
-import kr.syeyoung.dungeonsguide.gui.elements.*;
-import kr.syeyoung.dungeonsguide.roomprocessor.ProcessorFactory;
-import net.minecraft.block.Block;
-import net.minecraft.block.state.IBlockState;
-import net.minecraft.client.Minecraft;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.nbt.NBTTagList;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.BlockPos;
-import net.minecraft.util.ChatComponentText;
-
-import java.awt.*;
-import java.io.*;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.UUID;
-import java.util.zip.GZIPOutputStream;
-
-public class GeneralEditPane extends MPanel {
- private final DungeonRoom dungeonRoom;
-
- private final MLabelAndElement uuid;
- private final MLabelAndElement name;
- private final MLabelAndElement secrets;
-
- private final MLabelAndElement shape;
- private final MLabelAndElement rotation;
- private final MLabelAndElement shape2;
-
- private MButton save;
- private final MButton end;
- private final MButton schematic;
-
- private final MLabelAndElement roomProcessor;
-
- public GeneralEditPane(final DungeonRoom dungeonRoom) {
- this.dungeonRoom = dungeonRoom;
- {
- MLabel la;
- uuid = new MLabelAndElement("Room UUID: ", la = new MLabel());
- la.setText(dungeonRoom.getDungeonRoomInfo().getUuid().toString());
- uuid.setBounds(new Rectangle(0,0,getBounds().width, 20));
- add(uuid);
- }
- {
- MTextField la = new MTextField() {
- @Override
- public void edit(String str) {
- dungeonRoom.getDungeonRoomInfo().setName(str);
- }
- };
- name = new MLabelAndElement("Room Name: ", la);
- la.setText(dungeonRoom.getDungeonRoomInfo().getName());
- name.setBounds(new Rectangle(0,20,getBounds().width, 20));
- add(name);
- }
- {
- final MIntegerSelectionButton la = new MIntegerSelectionButton(dungeonRoom.getDungeonRoomInfo().getTotalSecrets());
- la.setOnUpdate(new Runnable() {
- @Override
- public void run() {
- dungeonRoom.getDungeonRoomInfo().setTotalSecrets(la.getData());
- }
- });
- secrets = new MLabelAndElement("Room Secrets: ", la);
- secrets.setBounds(new Rectangle(0,40,getBounds().width, 20));
- add(secrets);
- }
-
- {
- MLabel la;
- shape = new MLabelAndElement("Room Shape: ", la = new MLabel());
- la.setText(dungeonRoom.getDungeonRoomInfo().getShape()+"");
- shape.setBounds(new Rectangle(0,60,getBounds().width, 20));
- add(shape);
- }
-
- {
- MLabel la;
- rotation = new MLabelAndElement("Found Room Rotation: ", la = new MLabel());
- la.setText(dungeonRoom.getRoomMatcher().getRotation()+"");
- rotation.setBounds(new Rectangle(0,80,getBounds().width, 20));
- add(rotation);
- }
- {
- MLabel la;
- shape2 = new MLabelAndElement("Found Room Shape: ", la = new MLabel());
- la.setText(dungeonRoom.getShape()+"");
- shape2.setBounds(new Rectangle(0,100,getBounds().width, 20));
- add(shape2);
- }
- {
- final MStringSelectionButton mStringSelectionButton = new MStringSelectionButton(new ArrayList<String>(ProcessorFactory.getProcessors()), dungeonRoom.getDungeonRoomInfo().getProcessorId());
- roomProcessor = new MLabelAndElement("Room Processor: ", mStringSelectionButton);
- roomProcessor.setBounds(new Rectangle(0,120,getBounds().width, 20));
- add(roomProcessor);
-
- mStringSelectionButton.setOnUpdate(new Runnable() {
- @Override
- public void run() {
- dungeonRoom.getDungeonRoomInfo().setProcessorId(mStringSelectionButton.getSelected());
- dungeonRoom.updateRoomProcessor();
- }
- });
- }
- {
- end = new MButton();
- end.setText("End Editing Session");
- end.setOnActionPerformed(new Runnable() {
- @Override
- public void run() {
- EditingContext.endEditingSession();
- }
- });
- end.setBackgroundColor(Color.green);
- end.setBounds(new Rectangle(0,140,getBounds().width, 20));
- add(end);
- }
- {
- schematic = new MButton();
- schematic.setText("Save Schematic");
- schematic.setOnActionPerformed(new Runnable() {
- @Override
- public void run() {
- try {
- NBTTagCompound nbtTagCompound2 = createNBT();
-
- File f=new File(DungeonsGuide.getDungeonsGuide().getConfigDir(), "schematics/"+
- dungeonRoom.getDungeonRoomInfo().getName()+"-"+dungeonRoom.getDungeonRoomInfo().getUuid().toString()+"-"+ UUID.randomUUID()+".schematic");
-
- Method method = null;
- try {
- method = NBTTagCompound.class.getDeclaredMethod("write", DataOutput.class);
- method.setAccessible(true);
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- return;
- }
- FileOutputStream fos = new FileOutputStream(f);
- DataOutputStream dataoutputstream = new DataOutputStream(new BufferedOutputStream(new GZIPOutputStream(fos)));
-
- try
- {
- dataoutputstream.writeByte(nbtTagCompound2.getId());
-
- dataoutputstream.writeUTF("Schematic");
- method.invoke(nbtTagCompound2, dataoutputstream);
- }
- finally
- {
- dataoutputstream.close();
- }
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fSaved to "+f.getName()));
- } catch (Throwable e) {
- e.printStackTrace();
- }
-
- }
- });
- schematic.setBackgroundColor(Color.orange);
- schematic.setBounds(new Rectangle(0,180,getBounds().width, 20));
- add(schematic);
- }
- {
- if (dungeonRoom.getDungeonRoomInfo().isRegistered()) return;
- save = new MButton();
- save.setText("Save RoomData");
- save.setOnActionPerformed(new Runnable() {
- @Override
- public void run() {
- DungeonRoomInfoRegistry.register(dungeonRoom.getDungeonRoomInfo());
- remove(save);
- }
- });
- save.setBackgroundColor(Color.green);
- save.setBounds(new Rectangle(0,10,getBounds().width, 20));
- add(save);
- }
- }
-
- @Override
- public void resize(int parentWidth, int parentHeight) {
- this.setBounds(new Rectangle(5,5,parentWidth-10,parentHeight-10));
- }
-
- @Override
- public void onBoundsUpdate() {
- if (save != null)
- save.setBounds(new Rectangle(0,160,getBounds().width, 20));
- end.setBounds(new Rectangle(1,140,getBounds().width-2, 20));
- if (schematic != null)
- schematic.setBounds(new Rectangle(0,180,getBounds().width, 20));
- }
-
- private NBTTagCompound createNBT() {
- NBTTagCompound compound = new NBTTagCompound();
- compound.setShort("Width", (short) (dungeonRoom.getMax().getX() - dungeonRoom.getMin().getX() + 1));
- compound.setShort("Height", (short) 255);
- compound.setShort("Length", (short) (dungeonRoom.getMax().getZ() - dungeonRoom.getMin().getZ() + 1));
- int size =compound.getShort("Width") * compound.getShort("Height") * compound.getShort("Length");
-
- byte[] blocks = new byte[size];
- byte[] meta = new byte[size];
- byte[] extra = new byte[size];
- byte[] extranibble = new byte[(int) Math.ceil(size / 2.0)];
-
- boolean extraEx = false;
- NBTTagList tileEntitiesList = new NBTTagList();
- for (int x = 0; x < compound.getShort("Width"); x++) {
- for (int y = 0; y < compound.getShort("Height"); y++) {
- for (int z = 0; z < compound.getShort("Length"); z++) {
- int index = x + (y * compound.getShort("Length") + z) * compound.getShort("Width");
- BlockPos pos = dungeonRoom.getRelativeBlockPosAt(x,y - 70,z);
- IBlockState blockState = dungeonRoom.getContext().getWorld().getBlockState(pos);
- boolean acc = dungeonRoom.canAccessRelative(x,z);
- int id = Block.getIdFromBlock(blockState.getBlock());
- blocks[index] = acc ? (byte) id : 0;
- meta[index] = acc ? (byte) blockState.getBlock().getMetaFromState(blockState) : 0;
- if ((extra[index] = (byte) ((acc ? id : 0) >> 8)) > 0) {
- extraEx = true;
- }
-
- if (blockState.getBlock().hasTileEntity(blockState)) {
- TileEntity tileEntity = dungeonRoom.getContext().getWorld().getTileEntity(pos);
- try {
- final NBTTagCompound tileEntityCompound = new NBTTagCompound();
- tileEntity.writeToNBT(tileEntityCompound);
- tileEntitiesList.appendTag(tileEntityCompound);
- } catch (final Exception e) {
- final BlockPos tePos = tileEntity.getPos();
-
- blocks[index] = (byte) 7;
- meta[index] = 0;
- extra[index] = 0;
- }
- }
- }
- }
- }
- for (int i = 0; i < extranibble.length; i++) {
- if (i * 2 + 1 < extra.length) {
- extranibble[i] = (byte) ((extra[i * 2 + 0] << 4) | extra[i * 2 + 1]);
- } else {
- extranibble[i] = (byte) (extra[i * 2 + 0] << 4);
- }
- }
-
-
- compound.setByteArray("Blocks", blocks);
- compound.setByteArray("Data", meta);
- compound.setString("Materials", "Alpha");
- if (extraEx) {
- compound.setByteArray("AddBlocks", extranibble);
- }
- compound.setTag("Entities", new NBTTagList());
- compound.setTag("TileEntities", tileEntitiesList);
-
- return compound;
- }
-}