Files
CustomNPC-Plus/src/main/java/noppes/npcs/scripted/gui/ScriptGui.java
T
bigguy345 a0026e1d59 Merge remote-tracking branch 'upstream/dev' into dev
# Conflicts:
#	build.gradle
#	src/main/java/foxz/command/CmdClone.java
#	src/main/java/foxz/command/CmdDialog.java
#	src/main/java/foxz/command/CmdNoppes.java
#	src/main/java/foxz/command/CmdNpc.java
#	src/main/java/foxz/command/CmdQuest.java
#	src/main/java/foxz/command/CmdScript.java
#	src/main/java/foxz/commandhelper/AbstractCommandHelper.java
#	src/main/java/kamkeel/npcs/CustomAttributes.java
#	src/main/java/kamkeel/npcs/addon/client/DBCClient.java
#	src/main/java/kamkeel/npcs/command/AnimationCommand.java
#	src/main/java/kamkeel/npcs/command/CloneCommand.java
#	src/main/java/kamkeel/npcs/command/DialogCategoryCommand.java
#	src/main/java/kamkeel/npcs/command/DialogCommand.java
#	src/main/java/kamkeel/npcs/command/FactionCommand.java
#	src/main/java/kamkeel/npcs/command/HelpCommand.java
#	src/main/java/kamkeel/npcs/command/NpcCommand.java
#	src/main/java/kamkeel/npcs/command/OverlayCommand.java
#	src/main/java/kamkeel/npcs/command/QuestCategoryCommand.java
#	src/main/java/kamkeel/npcs/command/QuestCommand.java
#	src/main/java/kamkeel/npcs/command/ScriptCommand.java
#	src/main/java/kamkeel/npcs/controllers/AttributeController.java
#	src/main/java/kamkeel/npcs/controllers/ProfileController.java
#	src/main/java/kamkeel/npcs/controllers/SyncController.java
#	src/main/java/kamkeel/npcs/controllers/data/attribute/ICustomAttribute.java
#	src/main/java/kamkeel/npcs/controllers/data/attribute/tracker/PlayerAttributeTracker.java
#	src/main/java/kamkeel/npcs/controllers/data/attribute/tracker/PlayerEquipmentTracker.java
#	src/main/java/kamkeel/npcs/network/PacketHandler.java
#	src/main/java/kamkeel/npcs/network/packets/data/large/SyncEffectPacket.java
#	src/main/java/kamkeel/npcs/network/packets/player/ScreenSizePacket.java
#	src/main/java/kamkeel/npcs/network/packets/request/clone/CloneSavePacket.java
#	src/main/java/kamkeel/npcs/network/packets/request/script/EffectScriptPacket.java
#	src/main/java/kamkeel/npcs/network/packets/request/script/ForgeScriptPacket.java
#	src/main/java/kamkeel/npcs/network/packets/request/script/GlobalNPCScriptPacket.java
#	src/main/java/kamkeel/npcs/network/packets/request/script/PlayerScriptPacket.java
#	src/main/java/kamkeel/npcs/network/packets/request/script/item/LinkedItemScriptPacket.java
#	src/main/java/nikedemos/markovnames/Main.java
#	src/main/java/nikedemos/markovnames/MarkovDictionary.java
#	src/main/java/nikedemos/markovnames/MarkovDictionarySPA.java
#	src/main/java/nikedemos/markovnames/generators/MarkovAncientGreek.java
#	src/main/java/nikedemos/markovnames/generators/MarkovJapanese.java
#	src/main/java/nikedemos/markovnames/generators/MarkovRoman.java
#	src/main/java/nikedemos/markovnames/generators/MarkovSlavic.java
#	src/main/java/nikedemos/markovnames/generators/MarkovSpanish.java
#	src/main/java/nikedemos/markovnames/generators/MarkovWelsh.java
#	src/main/java/noppes/npcs/AnimationMixinFunctions.java
#	src/main/java/noppes/npcs/CustomNpcsPermissions.java
#	src/main/java/noppes/npcs/DataInventory.java
#	src/main/java/noppes/npcs/DataStats.java
#	src/main/java/noppes/npcs/EventHooks.java
#	src/main/java/noppes/npcs/IChatMessages.java
#	src/main/java/noppes/npcs/ICompatibilty.java
#	src/main/java/noppes/npcs/LogWriter.java
#	src/main/java/noppes/npcs/NBTTags.java
#	src/main/java/noppes/npcs/NPCSpawning.java
#	src/main/java/noppes/npcs/NoppesStringUtils.java
#	src/main/java/noppes/npcs/NoppesUtilPlayer.java
#	src/main/java/noppes/npcs/NoppesUtilServer.java
#	src/main/java/noppes/npcs/QuestLogData.java
#	src/main/java/noppes/npcs/ScriptForgeEventHandler.java
#	src/main/java/noppes/npcs/ScriptItemEventHandler.java
#	src/main/java/noppes/npcs/ScriptPlayerEventHandler.java
#	src/main/java/noppes/npcs/ServerEventsHandler.java
#	src/main/java/noppes/npcs/ServerTickHandler.java
#	src/main/java/noppes/npcs/VersionCompatibility.java
#	src/main/java/noppes/npcs/ai/CombatHandler.java
#	src/main/java/noppes/npcs/ai/EntityAIAmbushTarget.java
#	src/main/java/noppes/npcs/ai/EntityAIAnimation.java
#	src/main/java/noppes/npcs/ai/EntityAIAttackTarget.java
#	src/main/java/noppes/npcs/ai/EntityAIAvoidTarget.java
#	src/main/java/noppes/npcs/ai/EntityAIBustDoor.java
#	src/main/java/noppes/npcs/ai/EntityAIDodgeShoot.java
#	src/main/java/noppes/npcs/ai/EntityAIFindShade.java
#	src/main/java/noppes/npcs/ai/EntityAIFollow.java
#	src/main/java/noppes/npcs/ai/EntityAIJob.java
#	src/main/java/noppes/npcs/ai/EntityAIMoveIndoors.java
#	src/main/java/noppes/npcs/ai/EntityAIMovingPath.java
#	src/main/java/noppes/npcs/ai/EntityAIOrbitTarget.java
#	src/main/java/noppes/npcs/ai/EntityAIPanic.java
#	src/main/java/noppes/npcs/ai/EntityAIPounceTarget.java
#	src/main/java/noppes/npcs/ai/EntityAIRangedAttack.java
#	src/main/java/noppes/npcs/ai/EntityAIRole.java
#	src/main/java/noppes/npcs/ai/EntityAISprintToTarget.java
#	src/main/java/noppes/npcs/ai/EntityAIStalkTarget.java
#	src/main/java/noppes/npcs/ai/EntityAITransform.java
#	src/main/java/noppes/npcs/ai/EntityAIWander.java
#	src/main/java/noppes/npcs/ai/EntityAIWatchClosest.java
#	src/main/java/noppes/npcs/ai/EntityAIWaterNav.java
#	src/main/java/noppes/npcs/ai/EntityAIZigZagTarget.java
#	src/main/java/noppes/npcs/ai/RandomPositionGeneratorAlt.java
#	src/main/java/noppes/npcs/ai/pathfinder/FlyPathFinder.java
#	src/main/java/noppes/npcs/ai/pathfinder/NPCPath.java
#	src/main/java/noppes/npcs/ai/pathfinder/PathNavigateFlying.java
#	src/main/java/noppes/npcs/ai/pathfinder/PathNodeType.java
#	src/main/java/noppes/npcs/ai/selector/NPCAttackSelector.java
#	src/main/java/noppes/npcs/ai/selector/NPCInteractSelector.java
#	src/main/java/noppes/npcs/ai/target/EntityAIClearTarget.java
#	src/main/java/noppes/npcs/ai/target/EntityAIClosestTarget.java
#	src/main/java/noppes/npcs/blocks/BlockCampfire.java
#	src/main/java/noppes/npcs/blocks/BlockCandle.java
#	src/main/java/noppes/npcs/blocks/BlockPlaceholder.java
#	src/main/java/noppes/npcs/blocks/BlockRotated.java
#	src/main/java/noppes/npcs/blocks/tiles/TileNpcContainer.java
#	src/main/java/noppes/npcs/blocks/tiles/TileRedstoneBlock.java
#	src/main/java/noppes/npcs/blocks/tiles/TileWaypoint.java
#	src/main/java/noppes/npcs/client/AssetsBrowser.java
#	src/main/java/noppes/npcs/client/ClientEventHandler.java
#	src/main/java/noppes/npcs/client/ClientProxy.java
#	src/main/java/noppes/npcs/client/ClientTickHandler.java
#	src/main/java/noppes/npcs/client/ImageDownloadAlt.java
#	src/main/java/noppes/npcs/client/MessageAchievement.java
#	src/main/java/noppes/npcs/client/NoppesUtil.java
#	src/main/java/noppes/npcs/client/RenderChatMessages.java
#	src/main/java/noppes/npcs/client/TextBlockClient.java
#	src/main/java/noppes/npcs/client/TranslateUtil.java
#	src/main/java/noppes/npcs/client/VersionChecker.java
#	src/main/java/noppes/npcs/client/controllers/PresetController.java
#	src/main/java/noppes/npcs/client/fx/EntityRainbowFX.java
#	src/main/java/noppes/npcs/client/gui/GuiBorderBlock.java
#	src/main/java/noppes/npcs/client/gui/GuiMagicCycleMap.java
#	src/main/java/noppes/npcs/client/gui/GuiMerchantAdd.java
#	src/main/java/noppes/npcs/client/gui/GuiNPCFactionSelection.java
#	src/main/java/noppes/npcs/client/gui/GuiNPCLinesEdit.java
#	src/main/java/noppes/npcs/client/gui/GuiNPCTransportCategoryEdit.java
#	src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawner.java
#	src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java
#	src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerMounter.java
#	src/main/java/noppes/npcs/client/gui/GuiNpcRedstoneBlock.java
#	src/main/java/noppes/npcs/client/gui/GuiNpcSelectionInterface.java
#	src/main/java/noppes/npcs/client/gui/GuiNpcWaypoint.java
#	src/main/java/noppes/npcs/client/gui/GuiScript.java
#	src/main/java/noppes/npcs/client/gui/GuiScriptList.java
#	src/main/java/noppes/npcs/client/gui/SubGuiClonerQuickTags.java
#	src/main/java/noppes/npcs/client/gui/SubGuiMagic.java
#	src/main/java/noppes/npcs/client/gui/SubGuiMagicCycle.java
#	src/main/java/noppes/npcs/client/gui/SubGuiMailmanSendSetup.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcAvailability.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcAvailabilityDialog.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcAvailabilityQuest.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcBiomes.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcDialogOption.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcDialogOptions.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcDialogVisual.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcFactionOptions.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcFactionPoints.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcMeleeProperties.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcMovement.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcName.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcProjectiles.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcRangeProperties.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcResistanceProperties.java
#	src/main/java/noppes/npcs/client/gui/SubGuiNpcRespawn.java
#	src/main/java/noppes/npcs/client/gui/advanced/GuiNPCDialogNpcOptions.java
#	src/main/java/noppes/npcs/client/gui/advanced/GuiNPCMarks.java
#	src/main/java/noppes/npcs/client/gui/advanced/GuiNPCNightSetup.java
#	src/main/java/noppes/npcs/client/gui/advanced/GuiNPCTagSetup.java
#	src/main/java/noppes/npcs/client/gui/custom/GuiCustom.java
#	src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiLabel.java
#	src/main/java/noppes/npcs/client/gui/custom/components/CustomGuiScrollComponent.java
#	src/main/java/noppes/npcs/client/gui/customoverlay/components/CustomOverlayLabel.java
#	src/main/java/noppes/npcs/client/gui/customoverlay/components/CustomOverlayLine.java
#	src/main/java/noppes/npcs/client/gui/global/GuiNPCEditAnimation.java
#	src/main/java/noppes/npcs/client/gui/global/GuiNPCManageAnimations.java
#	src/main/java/noppes/npcs/client/gui/global/GuiNPCManageBanks.java
#	src/main/java/noppes/npcs/client/gui/global/GuiNPCManageLinked.java
#	src/main/java/noppes/npcs/client/gui/global/GuiNpcManagePlayerData.java
#	src/main/java/noppes/npcs/client/gui/global/GuiNpcManageRecipes.java
#	src/main/java/noppes/npcs/client/gui/global/GuiNpcQuestReward.java
#	src/main/java/noppes/npcs/client/gui/item/SubGuiLinkedItem.java
#	src/main/java/noppes/npcs/client/gui/mainmenu/GuiNPCInv.java
#	src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcAI.java
#	src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcStats.java
#	src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java
#	src/main/java/noppes/npcs/client/gui/model/GuiEntitySelection.java
#	src/main/java/noppes/npcs/client/gui/model/GuiModelArms.java
#	src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java
#	src/main/java/noppes/npcs/client/gui/model/GuiModelColor.java
#	src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java
#	src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java
#	src/main/java/noppes/npcs/client/gui/model/GuiModelRotate.java
#	src/main/java/noppes/npcs/client/gui/model/GuiModelScale.java
#	src/main/java/noppes/npcs/client/gui/model/GuiPresetSave.java
#	src/main/java/noppes/npcs/client/gui/model/GuiPresetSelection.java
#	src/main/java/noppes/npcs/client/gui/player/GuiBook.java
#	src/main/java/noppes/npcs/client/gui/player/GuiCrate.java
#	src/main/java/noppes/npcs/client/gui/player/GuiDialogInteract.java
#	src/main/java/noppes/npcs/client/gui/player/GuiMailmanWrite.java
#	src/main/java/noppes/npcs/client/gui/player/GuiNPCBankChest.java
#	src/main/java/noppes/npcs/client/gui/player/GuiNPCTrader.java
#	src/main/java/noppes/npcs/client/gui/player/GuiNpcCarpentryBench.java
#	src/main/java/noppes/npcs/client/gui/player/GuiNpcFollower.java
#	src/main/java/noppes/npcs/client/gui/player/GuiNpcFollowerHire.java
#	src/main/java/noppes/npcs/client/gui/player/GuiQuestCompletion.java
#	src/main/java/noppes/npcs/client/gui/player/companion/GuiNpcCompanionInv.java
#	src/main/java/noppes/npcs/client/gui/player/companion/GuiNpcCompanionStats.java
#	src/main/java/noppes/npcs/client/gui/player/companion/GuiNpcCompanionTalents.java
#	src/main/java/noppes/npcs/client/gui/player/inventory/GuiQuestLog.java
#	src/main/java/noppes/npcs/client/gui/questtypes/GuiNpcQuestTypeDialog.java
#	src/main/java/noppes/npcs/client/gui/questtypes/GuiNpcQuestTypeItem.java
#	src/main/java/noppes/npcs/client/gui/questtypes/GuiNpcQuestTypeKill.java
#	src/main/java/noppes/npcs/client/gui/questtypes/GuiNpcQuestTypeLocation.java
#	src/main/java/noppes/npcs/client/gui/questtypes/GuiNpcQuestTypeManual.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcBankSetup.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcBard.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcCompanion.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcConversation.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcFollowerJob.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcFollowerSetup.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcGuard.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcHealer.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcItemGiver.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcSpawner.java
#	src/main/java/noppes/npcs/client/gui/roles/GuiNpcTraderSetup.java
#	src/main/java/noppes/npcs/client/gui/script/EventGuiScriptList.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptEffect.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptGlobal.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptItem.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptLinkedItem.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java
#	src/main/java/noppes/npcs/client/gui/select/GuiTextureSelection.java
#	src/main/java/noppes/npcs/client/gui/util/GuiContainerNPCInterface.java
#	src/main/java/noppes/npcs/client/gui/util/GuiContainerNPCInterface2.java
#	src/main/java/noppes/npcs/client/gui/util/GuiCustomScrollCloner.java
#	src/main/java/noppes/npcs/client/gui/util/GuiDiagram.java
#	src/main/java/noppes/npcs/client/gui/util/GuiHoverText.java
#	src/main/java/noppes/npcs/client/gui/util/GuiMenuTopIconButton.java
#	src/main/java/noppes/npcs/client/gui/util/GuiModelInterface2.java
#	src/main/java/noppes/npcs/client/gui/util/GuiNPCInterface2.java
#	src/main/java/noppes/npcs/client/gui/util/GuiNpcLabel.java
#	src/main/java/noppes/npcs/client/gui/util/GuiNpcTextArea.java
#	src/main/java/noppes/npcs/client/gui/util/GuiScriptTextArea.java
#	src/main/java/noppes/npcs/client/gui/util/GuiSelectionListener.java
#	src/main/java/noppes/npcs/client/gui/util/GuiTexturedButton.java
#	src/main/java/noppes/npcs/client/gui/util/IButtonListener.java
#	src/main/java/noppes/npcs/client/gui/util/IGuiClose.java
#	src/main/java/noppes/npcs/client/gui/util/IGuiData.java
#	src/main/java/noppes/npcs/client/gui/util/IGuiError.java
#	src/main/java/noppes/npcs/client/gui/util/IJTextAreaListener.java
#	src/main/java/noppes/npcs/client/gui/util/IPartyData.java
#	src/main/java/noppes/npcs/client/gui/util/IScrollData.java
#	src/main/java/noppes/npcs/client/gui/util/ISubGuiListener.java
#	src/main/java/noppes/npcs/client/gui/util/TextContainer.java
#	src/main/java/noppes/npcs/client/model/ModelMPM.java
#	src/main/java/noppes/npcs/client/model/ModelNpcCrystal.java
#	src/main/java/noppes/npcs/client/model/ModelNpcDragon.java
#	src/main/java/noppes/npcs/client/model/ModelPony.java
#	src/main/java/noppes/npcs/client/model/ModelSkirtArmor.java
#	src/main/java/noppes/npcs/client/model/part/ModelBeard.java
#	src/main/java/noppes/npcs/client/model/part/ModelBreasts.java
#	src/main/java/noppes/npcs/client/model/part/ModelClaws.java
#	src/main/java/noppes/npcs/client/model/part/ModelEars.java
#	src/main/java/noppes/npcs/client/model/part/ModelFin.java
#	src/main/java/noppes/npcs/client/model/part/ModelHair.java
#	src/main/java/noppes/npcs/client/model/part/ModelHorns.java
#	src/main/java/noppes/npcs/client/model/part/ModelLegs.java
#	src/main/java/noppes/npcs/client/model/part/ModelMohawk.java
#	src/main/java/noppes/npcs/client/model/part/ModelSkirt.java
#	src/main/java/noppes/npcs/client/model/part/ModelSnout.java
#	src/main/java/noppes/npcs/client/model/part/ModelTail.java
#	src/main/java/noppes/npcs/client/model/part/ModelWings.java
#	src/main/java/noppes/npcs/client/model/part/legs/ModelDigitigradeLegs.java
#	src/main/java/noppes/npcs/client/model/part/legs/ModelNagaLegs.java
#	src/main/java/noppes/npcs/client/model/part/tails/ModelSquirrelTail.java
#	src/main/java/noppes/npcs/client/model/util/Model2DRenderer.java
#	src/main/java/noppes/npcs/client/renderer/NpcItemRenderer.java
#	src/main/java/noppes/npcs/client/renderer/RenderCNPCHand.java
#	src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java
#	src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java
#	src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java
#	src/main/java/noppes/npcs/client/renderer/RenderNPCInterface.java
#	src/main/java/noppes/npcs/client/renderer/RenderNpcSlime.java
#	src/main/java/noppes/npcs/client/renderer/RenderProjectile.java
#	src/main/java/noppes/npcs/client/renderer/blocks/BlockRendererInterface.java
#	src/main/java/noppes/npcs/client/renderer/items/ItemCustomRenderer.java
#	src/main/java/noppes/npcs/client/renderer/items/ItemToolRenderer.java
#	src/main/java/noppes/npcs/compat/PixelmonHelper.java
#	src/main/java/noppes/npcs/config/ConfigScript.java
#	src/main/java/noppes/npcs/config/GlyphCache.java
#	src/main/java/noppes/npcs/config/StringCache.java
#	src/main/java/noppes/npcs/config/legacy/LegacyLoader.java
#	src/main/java/noppes/npcs/constants/EnumAnimationPart.java
#	src/main/java/noppes/npcs/constants/EnumCompanionTalent.java
#	src/main/java/noppes/npcs/constants/EnumDiagramLayout.java
#	src/main/java/noppes/npcs/constants/EnumGuiType.java
#	src/main/java/noppes/npcs/constants/EnumNpcToolMaterial.java
#	src/main/java/noppes/npcs/constants/EnumOptionType.java
#	src/main/java/noppes/npcs/constants/EnumParticleType.java
#	src/main/java/noppes/npcs/constants/EnumPotionType.java
#	src/main/java/noppes/npcs/constants/EnumQuestCompletion.java
#	src/main/java/noppes/npcs/constants/EnumQuestRepeat.java
#	src/main/java/noppes/npcs/constants/EnumQuestType.java
#	src/main/java/noppes/npcs/constants/EnumScriptType.java
#	src/main/java/noppes/npcs/constants/EnumTextureType.java
#	src/main/java/noppes/npcs/containers/ContainerCarpentryBench.java
#	src/main/java/noppes/npcs/containers/ContainerCrate.java
#	src/main/java/noppes/npcs/containers/ContainerMail.java
#	src/main/java/noppes/npcs/containers/ContainerManageRecipes.java
#	src/main/java/noppes/npcs/containers/ContainerMerchantAdd.java
#	src/main/java/noppes/npcs/containers/ContainerNPCFollowerSetup.java
#	src/main/java/noppes/npcs/containers/ContainerNPCTrader.java
#	src/main/java/noppes/npcs/containers/ContainerNpcInterface.java
#	src/main/java/noppes/npcs/containers/ContainerNpcItemGiver.java
#	src/main/java/noppes/npcs/containers/SlotNpcBankCurrency.java
#	src/main/java/noppes/npcs/controllers/BankController.java
#	src/main/java/noppes/npcs/controllers/CustomGuiController.java
#	src/main/java/noppes/npcs/controllers/DialogController.java
#	src/main/java/noppes/npcs/controllers/FactionController.java
#	src/main/java/noppes/npcs/controllers/LinkedItemController.java
#	src/main/java/noppes/npcs/controllers/LinkedNpcController.java
#	src/main/java/noppes/npcs/controllers/MagicController.java
#	src/main/java/noppes/npcs/controllers/PartyController.java
#	src/main/java/noppes/npcs/controllers/PlayerDataController.java
#	src/main/java/noppes/npcs/controllers/QuestController.java
#	src/main/java/noppes/npcs/controllers/ScriptContainer.java
#	src/main/java/noppes/npcs/controllers/ScriptController.java
#	src/main/java/noppes/npcs/controllers/ServerCloneController.java
#	src/main/java/noppes/npcs/controllers/TagController.java
#	src/main/java/noppes/npcs/controllers/data/Availability.java
#	src/main/java/noppes/npcs/controllers/data/DataScript.java
#	src/main/java/noppes/npcs/controllers/data/DataTransform.java
#	src/main/java/noppes/npcs/controllers/data/Dialog.java
#	src/main/java/noppes/npcs/controllers/data/EffectScript.java
#	src/main/java/noppes/npcs/controllers/data/Faction.java
#	src/main/java/noppes/npcs/controllers/data/FactionOptions.java
#	src/main/java/noppes/npcs/controllers/data/FramePart.java
#	src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java
#	src/main/java/noppes/npcs/controllers/data/LinkedItemScript.java
#	src/main/java/noppes/npcs/controllers/data/PlayerData.java
#	src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java
#	src/main/java/noppes/npcs/controllers/data/PlayerFactionData.java
#	src/main/java/noppes/npcs/controllers/data/PlayerQuestData.java
#	src/main/java/noppes/npcs/controllers/data/Quest.java
#	src/main/java/noppes/npcs/controllers/data/RecipeAnvil.java
#	src/main/java/noppes/npcs/controllers/data/RecipeCarpentry.java
#	src/main/java/noppes/npcs/controllers/data/TransportCategory.java
#	src/main/java/noppes/npcs/enchants/EnchantInterface.java
#	src/main/java/noppes/npcs/entity/EntityCustomNpc.java
#	src/main/java/noppes/npcs/entity/EntityNpcDragon.java
#	src/main/java/noppes/npcs/entity/EntityProjectile.java
#	src/main/java/noppes/npcs/entity/data/ModelData.java
#	src/main/java/noppes/npcs/items/ItemBullet.java
#	src/main/java/noppes/npcs/items/ItemCrossbow.java
#	src/main/java/noppes/npcs/items/ItemDaggerReversed.java
#	src/main/java/noppes/npcs/items/ItemGun.java
#	src/main/java/noppes/npcs/items/ItemMusket.java
#	src/main/java/noppes/npcs/items/ItemNpcArmor.java
#	src/main/java/noppes/npcs/items/ItemNpcArmorColorable.java
#	src/main/java/noppes/npcs/items/ItemNpcCloner.java
#	src/main/java/noppes/npcs/items/ItemNpcInterface.java
#	src/main/java/noppes/npcs/items/ItemNpcMovingPath.java
#	src/main/java/noppes/npcs/items/ItemNpcTool.java
#	src/main/java/noppes/npcs/items/ItemRenderInterface.java
#	src/main/java/noppes/npcs/items/ItemSkirt.java
#	src/main/java/noppes/npcs/items/ItemSoulstoneEmpty.java
#	src/main/java/noppes/npcs/items/ItemSoulstoneFilled.java
#	src/main/java/noppes/npcs/items/ItemStaff.java
#	src/main/java/noppes/npcs/items/ItemTeleporter.java
#	src/main/java/noppes/npcs/items/ItemThrowingWeapon.java
#	src/main/java/noppes/npcs/items/MoneyBagContents.java
#	src/main/java/noppes/npcs/mixin/MixinItemRenderer.java
#	src/main/java/noppes/npcs/quests/QuestDialog.java
#	src/main/java/noppes/npcs/quests/QuestInterface.java
#	src/main/java/noppes/npcs/quests/QuestItem.java
#	src/main/java/noppes/npcs/quests/QuestKill.java
#	src/main/java/noppes/npcs/quests/QuestLocation.java
#	src/main/java/noppes/npcs/quests/QuestManual.java
#	src/main/java/noppes/npcs/roles/JobConversation.java
#	src/main/java/noppes/npcs/roles/JobFollower.java
#	src/main/java/noppes/npcs/roles/JobGuard.java
#	src/main/java/noppes/npcs/roles/JobHealer.java
#	src/main/java/noppes/npcs/roles/JobInterface.java
#	src/main/java/noppes/npcs/roles/JobItemGiver.java
#	src/main/java/noppes/npcs/roles/JobSpawner.java
#	src/main/java/noppes/npcs/roles/RoleCompanion.java
#	src/main/java/noppes/npcs/roles/RoleFollower.java
#	src/main/java/noppes/npcs/roles/RoleInterface.java
#	src/main/java/noppes/npcs/roles/RolePostman.java
#	src/main/java/noppes/npcs/roles/RoleTransporter.java
#	src/main/java/noppes/npcs/roles/companion/CompanionGuard.java
#	src/main/java/noppes/npcs/scripted/NpcAPI.java
#	src/main/java/noppes/npcs/scripted/ScriptBlock.java
#	src/main/java/noppes/npcs/scripted/ScriptNbt.java
#	src/main/java/noppes/npcs/scripted/ScriptPixelmonPlayerData.java
#	src/main/java/noppes/npcs/scripted/ScriptWorld.java
#	src/main/java/noppes/npcs/scripted/ScriptedActionManager.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptLivingBase.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptMonster.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptPixelmon.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptProjectile.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptVillager.java
#	src/main/java/noppes/npcs/scripted/event/ForgeEvent.java
#	src/main/java/noppes/npcs/scripted/event/NpcEvent.java
#	src/main/java/noppes/npcs/scripted/event/player/DialogEvent.java
#	src/main/java/noppes/npcs/scripted/event/player/FactionEvent.java
#	src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java
#	src/main/java/noppes/npcs/scripted/item/ScriptItemBook.java
#	src/main/java/noppes/npcs/scripted/item/ScriptItemStack.java
#	src/main/java/noppes/npcs/scripted/overlay/ScriptOverlay.java
#	src/main/java/noppes/npcs/scripted/roles/ScriptJobBard.java
#	src/main/java/noppes/npcs/scripted/roles/ScriptJobConversation.java
#	src/main/java/noppes/npcs/scripted/roles/ScriptJobFollower.java
#	src/main/java/noppes/npcs/scripted/roles/ScriptJobGuard.java
#	src/main/java/noppes/npcs/scripted/roles/ScriptJobHealer.java
#	src/main/java/noppes/npcs/scripted/roles/ScriptJobItemGiver.java
#	src/main/java/noppes/npcs/scripted/roles/ScriptRoleFollower.java
#	src/main/java/noppes/npcs/scripted/roles/ScriptRoleTrader.java
#	src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboard.java
#	src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardObjective.java
#	src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardTeam.java
#	src/main/java/noppes/npcs/util/NBTJsonUtil.java
#	src/main/java/tconstruct/client/tabs/TabRegistry.java
#	src/main/resources/mcmod.info
#	todo.txt
2025-04-27 04:15:30 +03:00

322 lines
11 KiB
Java

package noppes.npcs.scripted.gui;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import noppes.npcs.api.entity.IPlayer;
import noppes.npcs.api.gui.*;
import noppes.npcs.api.item.IItemStack;
import noppes.npcs.controllers.CustomGuiController;
import noppes.npcs.controllers.ScriptController;
import noppes.npcs.controllers.data.PlayerDataScript;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
public class ScriptGui implements ICustomGui {
int id;
int width;
int height;
int playerInvX;
int playerInvY;
boolean pauseGame;
boolean showPlayerInv;
boolean closeOnEsc = true;
String backgroundTexture = "";
HashMap<Integer, ICustomGuiComponent> components = new HashMap<>();
List<IItemSlot> slots = new ArrayList();
public ScriptGui() {
}
public ScriptGui(int id, int width, int height, boolean pauseGame) {
this.id = id;
this.width = width;
this.height = height;
this.pauseGame = pauseGame;
//this.scriptHandler = ScriptContainer.Current;
}
public int getID() {
return this.id;
}
public int getWidth() {
return this.width;
}
public int getHeight() {
return this.height;
}
public List<ICustomGuiComponent> getComponents() {
return new ArrayList<>(this.components.values());
}
public void clear() {
this.components.clear();
}
public List<IItemSlot> getSlots() {
return this.slots;
}
public PlayerDataScript getScriptHandler(EntityPlayer player) {
return ScriptController.Instance.getPlayerScripts(player);
}
public void setSize(int width, int height) {
this.width = width;
this.height = height;
}
public void setCloseOnEscape(boolean close) {
this.closeOnEsc = close;
}
public boolean doesCloseOnEscape() {
return this.closeOnEsc;
}
public void setDoesPauseGame(boolean pauseGame) {
this.pauseGame = pauseGame;
}
public boolean doesPauseGame() {
return this.pauseGame;
}
public void setBackgroundTexture(String resourceLocation) {
this.backgroundTexture = resourceLocation;
}
public String getBackgroundTexture() {
return this.backgroundTexture;
}
public IButton addButton(int id, String label, int x, int y) {
ScriptGuiButton component = new ScriptGuiButton(id, label, x, y);
this.updateComponent(component);
return (IButton) this.getComponent(id);
}
public IButton addButton(int id, String label, int x, int y, int width, int height) {
ScriptGuiButton component = new ScriptGuiButton(id, label, x, y, width, height);
this.updateComponent(component);
return (IButton) this.getComponent(id);
}
public IButton addTexturedButton(int id, String label, int x, int y, int width, int height, String texture) {
ScriptGuiButton component = new ScriptGuiButton(id, label, x, y, width, height, texture);
this.updateComponent(component);
return (IButton) this.getComponent(id);
}
public IButton addTexturedButton(int id, String label, int x, int y, int width, int height, String texture, int textureX, int textureY) {
ScriptGuiButton component = new ScriptGuiButton(id, label, x, y, width, height, texture, textureX, textureY);
this.updateComponent(component);
return (IButton) this.getComponent(id);
}
public ILabel addLabel(int id, String label, int x, int y, int width, int height) {
ScriptGuiLabel component = new ScriptGuiLabel(id, label, x, y, width, height);
this.updateComponent(component);
return (ILabel) this.getComponent(id);
}
public ILabel addLabel(int id, String label, int x, int y, int width, int height, int color) {
ScriptGuiLabel component = new ScriptGuiLabel(id, label, x, y, width, height, color);
this.updateComponent(component);
return (ILabel) this.getComponent(id);
}
public ITextField addTextField(int id, int x, int y, int width, int height) {
ScriptGuiTextField component = new ScriptGuiTextField(id, x, y, width, height);
this.updateComponent(component);
return (ITextField) this.getComponent(id);
}
public ITexturedRect addTexturedRect(int id, String texture, int x, int y, int width, int height) {
ScriptGuiTexturedRect component = new ScriptGuiTexturedRect(id, texture, x, y, width, height);
this.updateComponent(component);
return (ITexturedRect) this.getComponent(id);
}
public ITexturedRect addTexturedRect(int id, String texture, int x, int y, int width, int height, int textureX, int textureY) {
ScriptGuiTexturedRect component = new ScriptGuiTexturedRect(id, texture, x, y, width, height, textureX, textureY);
this.updateComponent(component);
return (ITexturedRect) this.getComponent(id);
}
public IItemSlot addItemSlot(int id, int x, int y) {
ScriptGuiItemSlot slot = new ScriptGuiItemSlot(id, x, y);
this.updateComponent(slot);
return (IItemSlot) this.getComponent(id);
}
public IItemSlot addItemSlot(int id, int x, int y, IItemStack stack) {
ScriptGuiItemSlot slot = new ScriptGuiItemSlot(id, x, y, stack);
this.updateComponent(slot);
return (IItemSlot) this.getComponent(id);
}
public IItemSlot addItemSlot(int x, int y) {
return this.addItemSlot(-1, x, y);
}
public IItemSlot addItemSlot(int x, int y, IItemStack stack) {
return this.addItemSlot(-1, x, y, stack);
}
public IScroll addScroll(int id, int x, int y, int width, int height, String[] list) {
ScriptGuiScroll component = new ScriptGuiScroll(id, x, y, width, height, list);
this.updateComponent(component);
return (IScroll) this.getComponent(id);
}
public ILine addLine(int id, int x1, int y1, int x2, int y2, int color, int thickness) {
ScriptGuiLine component = new ScriptGuiLine(id, x1, y1, x2, y2, color, thickness);
this.updateComponent(component);
return (ILine) this.getComponent(id);
}
public ILine addLine(int id, int x1, int y1, int x2, int y2) {
ScriptGuiLine component = new ScriptGuiLine(id, x1, y1, x2, y2);
this.updateComponent(component);
return (ILine) this.getComponent(id);
}
public void showPlayerInventory(int x, int y) {
this.showPlayerInv = true;
this.playerInvX = x;
this.playerInvY = y;
}
public ICustomGuiComponent getComponent(int componentID) {
return this.components.get(componentID);
}
public void removeComponent(int componentID) {
if (this.components.containsKey(componentID)) {
ICustomGuiComponent component = this.getComponent(componentID);
if (component instanceof IItemSlot) {
for (IItemSlot slot : this.slots) {
if (slot.getID() == componentID) {
this.slots.remove(slot);
break;
}
}
}
this.components.remove(componentID);
}
}
public void updateComponent(ICustomGuiComponent component) {
if (component != null) {
this.removeComponent(component.getID());
this.components.put(component.getID(), component);
if (component instanceof IItemSlot) {
this.slots.add((IItemSlot) component);
}
}
}
public void update(IPlayer player) {
CustomGuiController.updateGui(player, this);
}
public boolean getShowPlayerInv() {
return this.showPlayerInv;
}
public int getPlayerInvX() {
return this.playerInvX;
}
public int getPlayerInvY() {
return this.playerInvY;
}
private int getMaxId() {
int max = 0;
for (ICustomGuiComponent component : this.getComponents()) {
if (component.getID() >= max) {
max = component.getID();
}
}
return max;
}
public ICustomGui fromNBT(NBTTagCompound tag) {
this.id = tag.getInteger("id");
this.width = tag.getIntArray("size")[0];
this.height = tag.getIntArray("size")[1];
this.pauseGame = tag.getBoolean("pause");
this.backgroundTexture = tag.getString("bgTexture");
this.closeOnEsc = tag.getBoolean("closeOnEsc");
NBTTagList list = tag.getTagList("components", 10);
for (int i = 0; i < list.tagCount(); i++) {
NBTBase b = list.getCompoundTagAt(i);
ScriptGuiComponent component = ScriptGuiComponent.createFromNBT((NBTTagCompound) b);
if (component != null && !(component instanceof ScriptGuiItemSlot)) {
components.put(component.getID(), component);
}
}
List<IItemSlot> slots = new ArrayList<>();
list = tag.getTagList("slots", 10);
for (int i = 0; i < list.tagCount(); i++) {
NBTTagCompound slotNbt = list.getCompoundTagAt(i);
int id = slotNbt.getInteger("id");
if (!components.containsKey(id)) {
components.put(id, ScriptGuiComponent.createFromNBT(slotNbt));
} else {
components.get(id).fromNBT(slotNbt);
}
ScriptGuiItemSlot slot = (ScriptGuiItemSlot) components.get(id);
slots.add(slot);
}
this.slots = slots;
this.showPlayerInv = tag.getBoolean("showPlayerInv");
if (this.showPlayerInv) {
this.playerInvX = tag.getIntArray("pInvPos")[0];
this.playerInvY = tag.getIntArray("pInvPos")[1];
}
return this;
}
public NBTTagCompound toNBT() {
NBTTagCompound tag = new NBTTagCompound();
tag.setInteger("id", this.id);
tag.setIntArray("size", new int[]{this.width, this.height});
tag.setBoolean("pause", this.pauseGame);
tag.setString("bgTexture", this.backgroundTexture);
tag.setBoolean("closeOnEsc", this.closeOnEsc);
NBTTagList list = new NBTTagList();
Iterator var3 = this.components.values().iterator();
ICustomGuiComponent c;
while (var3.hasNext()) {
c = (ICustomGuiComponent) var3.next();
list.appendTag(c.toNBT(new NBTTagCompound()));
}
tag.setTag("components", list);
list = new NBTTagList();
var3 = this.slots.iterator();
while (var3.hasNext()) {
c = (ICustomGuiComponent) var3.next();
if (c.getID() == -1) {
c.setID(this.getMaxId() + 1);
}
list.appendTag(c.toNBT(new NBTTagCompound()));
}
tag.setTag("slots", list);
tag.setBoolean("showPlayerInv", this.showPlayerInv);
if (this.showPlayerInv) {
tag.setIntArray("pInvPos", new int[]{this.playerInvX, this.playerInvY});
}
return tag;
}
}