diff --git a/lib/PSWGCommon.jar b/lib/PSWGCommon.jar index 3059355e3..efa0304bc 100644 Binary files a/lib/PSWGCommon.jar and b/lib/PSWGCommon.jar differ diff --git a/src/intents/BuffIntent.java b/src/intents/BuffIntent.java index 00b6b3221..cd57acf5e 100644 --- a/src/intents/BuffIntent.java +++ b/src/intents/BuffIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public class BuffIntent extends Intent { private final String buffName; diff --git a/src/intents/DanceIntent.java b/src/intents/DanceIntent.java index 6e1921d0d..e159102d0 100644 --- a/src/intents/DanceIntent.java +++ b/src/intents/DanceIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public class DanceIntent extends Intent { private final String danceName; private final CreatureObject creatureObject; diff --git a/src/intents/FactionIntent.java b/src/intents/FactionIntent.java index ba50ad789..d33f9e92e 100644 --- a/src/intents/FactionIntent.java +++ b/src/intents/FactionIntent.java @@ -27,12 +27,12 @@ ***********************************************************************************/ package intents; +import com.projectswg.common.control.Intent; + import resources.PvpFaction; import resources.PvpStatus; import resources.objects.tangible.TangibleObject; -import com.projectswg.common.control.Intent; - public class FactionIntent extends Intent { private TangibleObject target; diff --git a/src/intents/FlourishIntent.java b/src/intents/FlourishIntent.java index 5c8c5f233..a983fccce 100644 --- a/src/intents/FlourishIntent.java +++ b/src/intents/FlourishIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents; -import resources.player.Player; - import com.projectswg.common.control.Intent; +import resources.player.Player; + public class FlourishIntent extends Intent { private final Player performer; diff --git a/src/intents/GrantBadgeIntent.java b/src/intents/GrantBadgeIntent.java index d33ec3c35..48a951877 100644 --- a/src/intents/GrantBadgeIntent.java +++ b/src/intents/GrantBadgeIntent.java @@ -26,10 +26,10 @@ ******************************************************************************/ package intents; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public class GrantBadgeIntent extends Intent { private CreatureObject creature; diff --git a/src/intents/GrantClickyCollectionIntent.java b/src/intents/GrantClickyCollectionIntent.java index 49406b093..3183f44d6 100644 --- a/src/intents/GrantClickyCollectionIntent.java +++ b/src/intents/GrantClickyCollectionIntent.java @@ -26,12 +26,12 @@ ******************************************************************************/ package intents; +import com.projectswg.common.control.Intent; + import resources.objects.SWGObject; import resources.objects.collections.CollectionItem; import resources.objects.creature.CreatureObject; -import com.projectswg.common.control.Intent; - public class GrantClickyCollectionIntent extends Intent { private CreatureObject creature; diff --git a/src/intents/GroupEventIntent.java b/src/intents/GroupEventIntent.java index f6c654588..5240754c4 100644 --- a/src/intents/GroupEventIntent.java +++ b/src/intents/GroupEventIntent.java @@ -26,11 +26,11 @@ ******************************************************************************/ package intents; +import com.projectswg.common.control.Intent; + import resources.objects.creature.CreatureObject; import resources.player.Player; -import com.projectswg.common.control.Intent; - public class GroupEventIntent extends Intent { private GroupEventType eventType; private Player player; diff --git a/src/intents/NotifyPlayersPacketIntent.java b/src/intents/NotifyPlayersPacketIntent.java index 12df53e5c..f44944107 100644 --- a/src/intents/NotifyPlayersPacketIntent.java +++ b/src/intents/NotifyPlayersPacketIntent.java @@ -29,11 +29,11 @@ package intents; import java.util.List; -import network.packets.Packet; -import resources.Terrain; -import resources.player.Player; - import com.projectswg.common.control.Intent; +import com.projectswg.common.data.location.Terrain; + +import network.packets.Packet; +import resources.player.Player; public class NotifyPlayersPacketIntent extends Intent { diff --git a/src/intents/RequestZoneInIntent.java b/src/intents/RequestZoneInIntent.java index 9a1249192..53859f80a 100644 --- a/src/intents/RequestZoneInIntent.java +++ b/src/intents/RequestZoneInIntent.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package intents; +import com.projectswg.common.control.Intent; + import resources.objects.creature.CreatureObject; import resources.player.Player; -import com.projectswg.common.control.Intent; - public class RequestZoneInIntent extends Intent { private Player player; diff --git a/src/intents/SkillModIntent.java b/src/intents/SkillModIntent.java index 317845960..b0a46cbf2 100644 --- a/src/intents/SkillModIntent.java +++ b/src/intents/SkillModIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public class SkillModIntent extends Intent { private final String skillModName; diff --git a/src/intents/WatchIntent.java b/src/intents/WatchIntent.java index defe4145e..2fb4def9a 100644 --- a/src/intents/WatchIntent.java +++ b/src/intents/WatchIntent.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package intents; +import com.projectswg.common.control.Intent; + import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; -import com.projectswg.common.control.Intent; - public class WatchIntent extends Intent { private final CreatureObject actor; diff --git a/src/intents/chat/ChatAvatarRequestIntent.java b/src/intents/chat/ChatAvatarRequestIntent.java index 9f1c88c49..f225db36a 100644 --- a/src/intents/chat/ChatAvatarRequestIntent.java +++ b/src/intents/chat/ChatAvatarRequestIntent.java @@ -26,10 +26,10 @@ ******************************************************************************/ package intents.chat; -import resources.player.Player; - import com.projectswg.common.control.Intent; +import resources.player.Player; + public class ChatAvatarRequestIntent extends Intent { private Player player; diff --git a/src/intents/chat/ChatBroadcastIntent.java b/src/intents/chat/ChatBroadcastIntent.java index 119efe10a..0ec9d50e4 100644 --- a/src/intents/chat/ChatBroadcastIntent.java +++ b/src/intents/chat/ChatBroadcastIntent.java @@ -28,8 +28,8 @@ package intents.chat; import com.projectswg.common.control.Intent; +import com.projectswg.common.data.location.Terrain; -import resources.Terrain; import resources.encodables.ProsePackage; import resources.player.Player; diff --git a/src/intents/chat/ChatRoomUpdateIntent.java b/src/intents/chat/ChatRoomUpdateIntent.java index 4fa75891e..cd7a44fe4 100644 --- a/src/intents/chat/ChatRoomUpdateIntent.java +++ b/src/intents/chat/ChatRoomUpdateIntent.java @@ -26,11 +26,11 @@ ******************************************************************************/ package intents.chat; +import com.projectswg.common.control.Intent; + import resources.chat.ChatAvatar; import resources.player.Player; -import com.projectswg.common.control.Intent; - public class ChatRoomUpdateIntent extends Intent { private String path; diff --git a/src/intents/chat/PersistentMessageIntent.java b/src/intents/chat/PersistentMessageIntent.java index 79768e7b0..f60684338 100644 --- a/src/intents/chat/PersistentMessageIntent.java +++ b/src/intents/chat/PersistentMessageIntent.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package intents.chat; +import com.projectswg.common.control.Intent; + import resources.encodables.player.Mail; import resources.objects.SWGObject; -import com.projectswg.common.control.Intent; - public class PersistentMessageIntent extends Intent { private Mail mail; diff --git a/src/intents/chat/SpatialChatIntent.java b/src/intents/chat/SpatialChatIntent.java index 30613da39..7807e9048 100644 --- a/src/intents/chat/SpatialChatIntent.java +++ b/src/intents/chat/SpatialChatIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.chat; -import resources.player.Player; - import com.projectswg.common.control.Intent; +import resources.player.Player; + public class SpatialChatIntent extends Intent { private Player player; diff --git a/src/intents/combat/CreatureKilledIntent.java b/src/intents/combat/CreatureKilledIntent.java index 0099463b9..c538a4bd2 100644 --- a/src/intents/combat/CreatureKilledIntent.java +++ b/src/intents/combat/CreatureKilledIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.combat; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public class CreatureKilledIntent extends Intent { private final CreatureObject killer; diff --git a/src/intents/combat/DeathblowIntent.java b/src/intents/combat/DeathblowIntent.java index 903e9ab01..d849e2dad 100644 --- a/src/intents/combat/DeathblowIntent.java +++ b/src/intents/combat/DeathblowIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.combat; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public class DeathblowIntent extends Intent { private final CreatureObject killer; diff --git a/src/intents/combat/DuelPlayerIntent.java b/src/intents/combat/DuelPlayerIntent.java index 87283c4bc..75282ef45 100644 --- a/src/intents/combat/DuelPlayerIntent.java +++ b/src/intents/combat/DuelPlayerIntent.java @@ -28,10 +28,10 @@ package intents.combat; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public class DuelPlayerIntent extends Intent { private final CreatureObject sender; diff --git a/src/intents/experience/ExperienceIntent.java b/src/intents/experience/ExperienceIntent.java index 4b1dafcd4..fd955a584 100644 --- a/src/intents/experience/ExperienceIntent.java +++ b/src/intents/experience/ExperienceIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.experience; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public final class ExperienceIntent extends Intent { private final CreatureObject creatureObject; diff --git a/src/intents/experience/GrantSkillIntent.java b/src/intents/experience/GrantSkillIntent.java index fdb237498..cf8246d47 100644 --- a/src/intents/experience/GrantSkillIntent.java +++ b/src/intents/experience/GrantSkillIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.experience; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public final class GrantSkillIntent extends Intent { private final IntentType intentType; diff --git a/src/intents/experience/LevelChangedIntent.java b/src/intents/experience/LevelChangedIntent.java index c0510f26e..f5b120062 100644 --- a/src/intents/experience/LevelChangedIntent.java +++ b/src/intents/experience/LevelChangedIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.experience; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public final class LevelChangedIntent extends Intent { private final CreatureObject creatureObject; diff --git a/src/intents/network/CloseConnectionIntent.java b/src/intents/network/CloseConnectionIntent.java index 062ef0dbb..91a68e317 100644 --- a/src/intents/network/CloseConnectionIntent.java +++ b/src/intents/network/CloseConnectionIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.network; -import resources.network.DisconnectReason; - import com.projectswg.common.control.Intent; +import resources.network.DisconnectReason; + public class CloseConnectionIntent extends Intent { private long networkId; diff --git a/src/intents/network/ConnectionClosedIntent.java b/src/intents/network/ConnectionClosedIntent.java index ba458a19b..f16bdfedc 100644 --- a/src/intents/network/ConnectionClosedIntent.java +++ b/src/intents/network/ConnectionClosedIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.network; -import network.packets.swg.holo.HoloConnectionStopped.ConnectionStoppedReason; - import com.projectswg.common.control.Intent; +import network.packets.swg.holo.HoloConnectionStopped.ConnectionStoppedReason; + public class ConnectionClosedIntent extends Intent { private long networkId; diff --git a/src/intents/network/GalacticPacketIntent.java b/src/intents/network/GalacticPacketIntent.java index 49aa7a36f..4df3119a6 100644 --- a/src/intents/network/GalacticPacketIntent.java +++ b/src/intents/network/GalacticPacketIntent.java @@ -27,9 +27,9 @@ ***********************************************************************************/ package intents.network; -import resources.player.Player; import intents.GalacticIntent; import network.packets.Packet; +import resources.player.Player; public class GalacticPacketIntent extends GalacticIntent { diff --git a/src/intents/network/InboundPacketIntent.java b/src/intents/network/InboundPacketIntent.java index 5fe0833bc..c22021ad6 100644 --- a/src/intents/network/InboundPacketIntent.java +++ b/src/intents/network/InboundPacketIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.network; -import network.packets.Packet; - import com.projectswg.common.control.Intent; +import network.packets.Packet; + public class InboundPacketIntent extends Intent { private Packet packet; diff --git a/src/intents/network/InboundPacketPendingIntent.java b/src/intents/network/InboundPacketPendingIntent.java index 3e1e63ef8..fa3d49ded 100644 --- a/src/intents/network/InboundPacketPendingIntent.java +++ b/src/intents/network/InboundPacketPendingIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.network; -import network.NetworkClient; - import com.projectswg.common.control.Intent; +import network.NetworkClient; + public class InboundPacketPendingIntent extends Intent { private NetworkClient client; diff --git a/src/intents/network/OutboundPacketIntent.java b/src/intents/network/OutboundPacketIntent.java index b28b33775..091efabb5 100644 --- a/src/intents/network/OutboundPacketIntent.java +++ b/src/intents/network/OutboundPacketIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.network; -import network.packets.Packet; - import com.projectswg.common.control.Intent; +import network.packets.Packet; + public class OutboundPacketIntent extends Intent { private Packet packet; diff --git a/src/intents/object/ContainerTransferIntent.java b/src/intents/object/ContainerTransferIntent.java index 4927fb666..c7dba0797 100644 --- a/src/intents/object/ContainerTransferIntent.java +++ b/src/intents/object/ContainerTransferIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.object; -import resources.objects.SWGObject; - import com.projectswg.common.control.Intent; +import resources.objects.SWGObject; + public class ContainerTransferIntent extends Intent { private SWGObject obj; diff --git a/src/intents/object/CreateStaticItemIntent.java b/src/intents/object/CreateStaticItemIntent.java index 361f9db58..cde3bcfe7 100644 --- a/src/intents/object/CreateStaticItemIntent.java +++ b/src/intents/object/CreateStaticItemIntent.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package intents.object; +import com.projectswg.common.control.Intent; + import resources.objects.SWGObject; import services.objects.StaticItemService.ObjectCreationHandler; -import com.projectswg.common.control.Intent; - public final class CreateStaticItemIntent extends Intent { private final SWGObject requester; diff --git a/src/intents/object/DestroyObjectIntent.java b/src/intents/object/DestroyObjectIntent.java index 188e1c1de..46c4ab3b7 100644 --- a/src/intents/object/DestroyObjectIntent.java +++ b/src/intents/object/DestroyObjectIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.object; -import resources.objects.SWGObject; - import com.projectswg.common.control.Intent; +import resources.objects.SWGObject; + public class DestroyObjectIntent extends Intent { private final SWGObject obj; diff --git a/src/intents/object/MoveObjectIntent.java b/src/intents/object/MoveObjectIntent.java index 4a3a7e9e8..7a3f95c8e 100644 --- a/src/intents/object/MoveObjectIntent.java +++ b/src/intents/object/MoveObjectIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.object; -import resources.Location; -import resources.objects.SWGObject; - import com.projectswg.common.control.Intent; +import com.projectswg.common.data.location.Location; + +import resources.objects.SWGObject; public class MoveObjectIntent extends Intent { diff --git a/src/intents/object/ObjectCreatedIntent.java b/src/intents/object/ObjectCreatedIntent.java index 4b4f57533..738463bfe 100644 --- a/src/intents/object/ObjectCreatedIntent.java +++ b/src/intents/object/ObjectCreatedIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.object; -import resources.objects.SWGObject; - import com.projectswg.common.control.Intent; +import resources.objects.SWGObject; + public class ObjectCreatedIntent extends Intent { private final SWGObject obj; diff --git a/src/intents/object/ObjectTeleportIntent.java b/src/intents/object/ObjectTeleportIntent.java index c34e3deec..d54b5364e 100644 --- a/src/intents/object/ObjectTeleportIntent.java +++ b/src/intents/object/ObjectTeleportIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.object; -import resources.Location; -import resources.objects.SWGObject; - import com.projectswg.common.control.Intent; +import com.projectswg.common.data.location.Location; + +import resources.objects.SWGObject; public class ObjectTeleportIntent extends Intent { diff --git a/src/intents/player/DeleteCharacterIntent.java b/src/intents/player/DeleteCharacterIntent.java index ece2f126a..30b7608db 100644 --- a/src/intents/player/DeleteCharacterIntent.java +++ b/src/intents/player/DeleteCharacterIntent.java @@ -26,10 +26,10 @@ ******************************************************************************/ package intents.player; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public class DeleteCharacterIntent extends Intent { private final CreatureObject creature; diff --git a/src/intents/player/PlayerTransformedIntent.java b/src/intents/player/PlayerTransformedIntent.java index ceac63e71..b786cace2 100644 --- a/src/intents/player/PlayerTransformedIntent.java +++ b/src/intents/player/PlayerTransformedIntent.java @@ -28,9 +28,9 @@ package intents.player; import com.projectswg.common.control.Intent; +import com.projectswg.common.data.location.Location; +import com.projectswg.common.data.location.Terrain; -import resources.Location; -import resources.Terrain; import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; diff --git a/src/intents/radial/RadialRequestIntent.java b/src/intents/radial/RadialRequestIntent.java index 5785a4bd0..420969067 100644 --- a/src/intents/radial/RadialRequestIntent.java +++ b/src/intents/radial/RadialRequestIntent.java @@ -27,12 +27,12 @@ ***********************************************************************************/ package intents.radial; +import com.projectswg.common.control.Intent; + import network.packets.swg.zone.object_controller.ObjectMenuRequest; import resources.objects.SWGObject; import resources.player.Player; -import com.projectswg.common.control.Intent; - public class RadialRequestIntent extends Intent { private Player player; diff --git a/src/intents/radial/RadialResponseIntent.java b/src/intents/radial/RadialResponseIntent.java index 110775877..0a3351427 100644 --- a/src/intents/radial/RadialResponseIntent.java +++ b/src/intents/radial/RadialResponseIntent.java @@ -29,12 +29,12 @@ package intents.radial; import java.util.List; +import com.projectswg.common.control.Intent; + import resources.objects.SWGObject; import resources.player.Player; import resources.radial.RadialOption; -import com.projectswg.common.control.Intent; - public class RadialResponseIntent extends Intent { private Player player; diff --git a/src/intents/radial/RadialSelectionIntent.java b/src/intents/radial/RadialSelectionIntent.java index 7e37ff43b..a77d81de9 100644 --- a/src/intents/radial/RadialSelectionIntent.java +++ b/src/intents/radial/RadialSelectionIntent.java @@ -27,12 +27,12 @@ ***********************************************************************************/ package intents.radial; +import com.projectswg.common.control.Intent; + import resources.objects.SWGObject; import resources.player.Player; import resources.radial.RadialItem; -import com.projectswg.common.control.Intent; - public class RadialSelectionIntent extends Intent { private Player player; diff --git a/src/intents/server/ServerManagementIntent.java b/src/intents/server/ServerManagementIntent.java index 29e73d794..be38ad658 100644 --- a/src/intents/server/ServerManagementIntent.java +++ b/src/intents/server/ServerManagementIntent.java @@ -29,10 +29,10 @@ package intents.server; import java.util.concurrent.TimeUnit; -import resources.player.Player; - import com.projectswg.common.control.Intent; +import resources.player.Player; + public class ServerManagementIntent extends Intent { private Player player; diff --git a/src/intents/server/ServerStatusIntent.java b/src/intents/server/ServerStatusIntent.java index 72f43700c..4f47c6fbe 100644 --- a/src/intents/server/ServerStatusIntent.java +++ b/src/intents/server/ServerStatusIntent.java @@ -29,10 +29,10 @@ package intents.server; import java.util.concurrent.TimeUnit; -import resources.control.ServerStatus; - import com.projectswg.common.control.Intent; +import resources.control.ServerStatus; + public class ServerStatusIntent extends Intent { private ServerStatus status; diff --git a/src/intents/sui/SuiWindowIntent.java b/src/intents/sui/SuiWindowIntent.java index be3102657..f2fc8a791 100644 --- a/src/intents/sui/SuiWindowIntent.java +++ b/src/intents/sui/SuiWindowIntent.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package intents.sui; +import com.projectswg.common.control.Intent; + import resources.player.Player; import resources.sui.SuiBaseWindow; -import com.projectswg.common.control.Intent; - public class SuiWindowIntent extends Intent { private SuiBaseWindow window; diff --git a/src/intents/travel/TicketPurchaseIntent.java b/src/intents/travel/TicketPurchaseIntent.java index ac674960e..f8db9ea52 100644 --- a/src/intents/travel/TicketPurchaseIntent.java +++ b/src/intents/travel/TicketPurchaseIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.travel; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public final class TicketPurchaseIntent extends Intent { private final CreatureObject purchaser; diff --git a/src/intents/travel/TicketUseIntent.java b/src/intents/travel/TicketUseIntent.java index 42ae54125..3264717db 100644 --- a/src/intents/travel/TicketUseIntent.java +++ b/src/intents/travel/TicketUseIntent.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package intents.travel; +import com.projectswg.common.control.Intent; + import resources.objects.SWGObject; import resources.player.Player; -import com.projectswg.common.control.Intent; - public class TicketUseIntent extends Intent { private final Player player; diff --git a/src/intents/travel/TravelPointSelectionIntent.java b/src/intents/travel/TravelPointSelectionIntent.java index 5234dcc63..919fd48ad 100644 --- a/src/intents/travel/TravelPointSelectionIntent.java +++ b/src/intents/travel/TravelPointSelectionIntent.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package intents.travel; -import resources.objects.creature.CreatureObject; - import com.projectswg.common.control.Intent; +import resources.objects.creature.CreatureObject; + public class TravelPointSelectionIntent extends Intent { private CreatureObject creature; diff --git a/src/main/ProjectSWG.java b/src/main/ProjectSWG.java index ccf3d58ff..ee44f64ec 100644 --- a/src/main/ProjectSWG.java +++ b/src/main/ProjectSWG.java @@ -27,8 +27,6 @@ ***********************************************************************************/ package main; -import intents.server.ServerStatusIntent; - import java.io.File; import java.io.IOException; import java.lang.Thread.State; @@ -38,11 +36,6 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; -import resources.Galaxy.GalaxyStatus; -import resources.control.ServerStatus; -import resources.server_info.DataManager; -import services.CoreManager; - import com.projectswg.common.concurrency.Delay; import com.projectswg.common.control.IntentManager; import com.projectswg.common.debug.Log; @@ -50,6 +43,12 @@ import com.projectswg.common.debug.Log.LogLevel; import com.projectswg.common.debug.log_wrapper.ConsoleLogWrapper; import com.projectswg.common.debug.log_wrapper.FileLogWrapper; +import intents.server.ServerStatusIntent; +import resources.Galaxy.GalaxyStatus; +import resources.control.ServerStatus; +import resources.server_info.DataManager; +import services.CoreManager; + public class ProjectSWG { private static ProjectSWG server; diff --git a/src/network/AdminNetworkClient.java b/src/network/AdminNetworkClient.java index 2cf4d7e6b..489a1724b 100644 --- a/src/network/AdminNetworkClient.java +++ b/src/network/AdminNetworkClient.java @@ -29,8 +29,8 @@ package network; import java.net.SocketAddress; -import services.network.PacketSender; import network.packets.Packet; +import services.network.PacketSender; public class AdminNetworkClient extends NetworkClient { diff --git a/src/network/NetworkClient.java b/src/network/NetworkClient.java index 8564795f6..98ecd087e 100644 --- a/src/network/NetworkClient.java +++ b/src/network/NetworkClient.java @@ -27,29 +27,28 @@ ***********************************************************************************/ package network; -import intents.network.ConnectionClosedIntent; -import intents.network.ConnectionOpenedIntent; -import intents.network.InboundPacketIntent; - import java.io.EOFException; import java.net.SocketAddress; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import com.projectswg.common.control.IntentChain; +import com.projectswg.common.debug.Assert; +import com.projectswg.common.debug.Log; +import com.projectswg.common.network.NetBufferStream; + +import intents.network.ConnectionClosedIntent; +import intents.network.ConnectionOpenedIntent; +import intents.network.InboundPacketIntent; import network.packets.Packet; import network.packets.swg.admin.AdminPacket; import network.packets.swg.holo.HoloConnectionStopped; import network.packets.swg.holo.HoloConnectionStopped.ConnectionStoppedReason; -import resources.network.NetBufferStream; import services.network.HolocoreSessionManager; import services.network.HolocoreSessionManager.ResponseAction; import services.network.NetworkProtocol; import services.network.PacketSender; -import com.projectswg.common.control.IntentChain; -import com.projectswg.common.debug.Assert; -import com.projectswg.common.debug.Log; - public class NetworkClient { private static final int DEFAULT_BUFFER = 128; diff --git a/src/network/PacketType.java b/src/network/PacketType.java index 69c55fcb8..7848d74ff 100644 --- a/src/network/PacketType.java +++ b/src/network/PacketType.java @@ -30,6 +30,8 @@ package network; import java.util.HashMap; import java.util.Map; +import com.projectswg.common.debug.Log; + import network.packets.swg.ErrorMessage; import network.packets.swg.SWGPacket; import network.packets.swg.ServerUnixEpochTime; @@ -161,8 +163,6 @@ import network.packets.swg.zone.spatial.GetMapLocationsMessage; import network.packets.swg.zone.spatial.GetMapLocationsResponseMessage; import network.packets.swg.zone.spatial.NewTicketActivityResponseMessage; -import com.projectswg.common.debug.Log; - public enum PacketType { diff --git a/src/network/packets/Packet.java b/src/network/packets/Packet.java index b79292867..d38ecdeb5 100644 --- a/src/network/packets/Packet.java +++ b/src/network/packets/Packet.java @@ -35,11 +35,10 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import resources.common.CRC; -import resources.encodables.Encodable; -import utilities.Encoder; - +import com.projectswg.common.data.CRC; import com.projectswg.common.debug.Log; +import com.projectswg.common.encoding.Encodable; +import com.projectswg.common.encoding.StringType; public class Packet { @@ -76,6 +75,10 @@ public class Packet { public int getOpcode() { return opcode; } + + protected static int getCrc(String str) { + return CRC.getCrc(str); + } public static void addList(ByteBuffer bb, Collection list) { if (list == null) { @@ -96,7 +99,7 @@ public class Packet { } } - public static void addList(ByteBuffer bb, List list, Encoder.StringType type) { + public static void addList(ByteBuffer bb, List list, StringType type) { addInt(bb, list.size()); switch(type) { @@ -319,7 +322,7 @@ public class Packet { return instance; } - public static List getList(ByteBuffer bb, Encoder.StringType type) { + public static List getList(ByteBuffer bb, StringType type) { int size = getInt(bb); if (size < 0) { diff --git a/src/network/packets/swg/SWGPacket.java b/src/network/packets/swg/SWGPacket.java index 00c330125..529efd06b 100644 --- a/src/network/packets/swg/SWGPacket.java +++ b/src/network/packets/swg/SWGPacket.java @@ -29,11 +29,11 @@ package network.packets.swg; import java.nio.ByteBuffer; +import com.projectswg.common.data.CRC; +import com.projectswg.common.debug.Log; + import network.PacketType; import network.packets.Packet; -import resources.common.CRC; - -import com.projectswg.common.debug.Log; public class SWGPacket extends Packet { diff --git a/src/network/packets/swg/admin/AdminShutdownServer.java b/src/network/packets/swg/admin/AdminShutdownServer.java index f959aefd8..84b5c9c46 100644 --- a/src/network/packets/swg/admin/AdminShutdownServer.java +++ b/src/network/packets/swg/admin/AdminShutdownServer.java @@ -31,7 +31,7 @@ import java.nio.ByteBuffer; public class AdminShutdownServer extends AdminPacket { - public static final int CRC = resources.common.CRC.getCrc("AdminShutdownServer"); + public static final int CRC = getCrc("AdminShutdownServer"); private int shutdownTime; diff --git a/src/network/packets/swg/holo/HoloConnectionStarted.java b/src/network/packets/swg/holo/HoloConnectionStarted.java index c6cf3c8e6..b14a770fc 100644 --- a/src/network/packets/swg/holo/HoloConnectionStarted.java +++ b/src/network/packets/swg/holo/HoloConnectionStarted.java @@ -31,7 +31,7 @@ import java.nio.ByteBuffer; public class HoloConnectionStarted extends HoloPacket { - public static final int CRC = resources.common.CRC.getCrc("HoloConnectionStarted"); + public static final int CRC = getCrc("HoloConnectionStarted"); public HoloConnectionStarted() { diff --git a/src/network/packets/swg/holo/HoloConnectionStopped.java b/src/network/packets/swg/holo/HoloConnectionStopped.java index e73ef03b9..dbf65beea 100644 --- a/src/network/packets/swg/holo/HoloConnectionStopped.java +++ b/src/network/packets/swg/holo/HoloConnectionStopped.java @@ -31,7 +31,7 @@ import java.nio.ByteBuffer; public class HoloConnectionStopped extends HoloPacket { - public static final int CRC = resources.common.CRC.getCrc("HoloConnectionStopped"); + public static final int CRC = getCrc("HoloConnectionStopped"); private ConnectionStoppedReason reason; diff --git a/src/network/packets/swg/holo/HoloSetProtocolVersion.java b/src/network/packets/swg/holo/HoloSetProtocolVersion.java index b6637f608..abecfbb11 100644 --- a/src/network/packets/swg/holo/HoloSetProtocolVersion.java +++ b/src/network/packets/swg/holo/HoloSetProtocolVersion.java @@ -31,7 +31,7 @@ import java.nio.ByteBuffer; public class HoloSetProtocolVersion extends HoloPacket { - public static final int CRC = resources.common.CRC.getCrc("HoloSetProtocolVersion"); + public static final int CRC = getCrc("HoloSetProtocolVersion"); private String protocol; diff --git a/src/network/packets/swg/login/ConnectionServerLagResponse.java b/src/network/packets/swg/login/ConnectionServerLagResponse.java index af39ff453..48b3bd1fe 100644 --- a/src/network/packets/swg/login/ConnectionServerLagResponse.java +++ b/src/network/packets/swg/login/ConnectionServerLagResponse.java @@ -34,7 +34,7 @@ import network.packets.swg.SWGPacket; public class ConnectionServerLagResponse extends SWGPacket { - public static final int CRC = resources.common.CRC.getCrc("ConnectionServerLagResponse"); + public static final int CRC = getCrc("ConnectionServerLagResponse"); public ConnectionServerLagResponse() { diff --git a/src/network/packets/swg/login/RequestExtendedClusters.java b/src/network/packets/swg/login/RequestExtendedClusters.java index 8c71cf930..ed7208a96 100644 --- a/src/network/packets/swg/login/RequestExtendedClusters.java +++ b/src/network/packets/swg/login/RequestExtendedClusters.java @@ -34,7 +34,7 @@ import network.packets.swg.SWGPacket; public class RequestExtendedClusters extends SWGPacket { - public static final int CRC = resources.common.CRC.getCrc("RequestExtendedClusterInfo"); + public static final int CRC = getCrc("RequestExtendedClusterInfo"); public RequestExtendedClusters() { diff --git a/src/network/packets/swg/login/creation/ClientCreateCharacter.java b/src/network/packets/swg/login/creation/ClientCreateCharacter.java index 6ee54578b..0080b941d 100644 --- a/src/network/packets/swg/login/creation/ClientCreateCharacter.java +++ b/src/network/packets/swg/login/creation/ClientCreateCharacter.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.login.creation; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ClientCreateCharacter extends SWGPacket { public static final int CRC = getCrc("ClientCreateCharacter"); diff --git a/src/network/packets/swg/zone/ClientOpenContainerMessage.java b/src/network/packets/swg/zone/ClientOpenContainerMessage.java index 9f7b3b9d3..d9e50e365 100644 --- a/src/network/packets/swg/zone/ClientOpenContainerMessage.java +++ b/src/network/packets/swg/zone/ClientOpenContainerMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ClientOpenContainerMessage extends SWGPacket { public static final int CRC = getCrc("ClientOpenContainerMessage"); diff --git a/src/network/packets/swg/zone/CmdSceneReady.java b/src/network/packets/swg/zone/CmdSceneReady.java index 1fb88a6a5..9fe0e2a76 100644 --- a/src/network/packets/swg/zone/CmdSceneReady.java +++ b/src/network/packets/swg/zone/CmdSceneReady.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class CmdSceneReady extends SWGPacket { public static final int CRC = getCrc("CmdSceneReady"); diff --git a/src/network/packets/swg/zone/ConnectPlayerResponseMessage.java b/src/network/packets/swg/zone/ConnectPlayerResponseMessage.java index 64dbd2851..fc9c00ae4 100644 --- a/src/network/packets/swg/zone/ConnectPlayerResponseMessage.java +++ b/src/network/packets/swg/zone/ConnectPlayerResponseMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ConnectPlayerResponseMessage extends SWGPacket { public static final int CRC = getCrc("ConnectPlayerResponseMessage"); diff --git a/src/network/packets/swg/zone/EnterTicketPurchaseModeMessage.java b/src/network/packets/swg/zone/EnterTicketPurchaseModeMessage.java index c69659cfc..e8298c697 100644 --- a/src/network/packets/swg/zone/EnterTicketPurchaseModeMessage.java +++ b/src/network/packets/swg/zone/EnterTicketPurchaseModeMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class EnterTicketPurchaseModeMessage extends SWGPacket { public static final int CRC = getCrc("EnterTicketPurchaseModeMessage"); diff --git a/src/network/packets/swg/zone/ExpertiseRequestMessage.java b/src/network/packets/swg/zone/ExpertiseRequestMessage.java index 2c433fb95..591a31b64 100644 --- a/src/network/packets/swg/zone/ExpertiseRequestMessage.java +++ b/src/network/packets/swg/zone/ExpertiseRequestMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public final class ExpertiseRequestMessage extends SWGPacket { public static final int CRC = getCrc("ExpertiseRequestMessage"); diff --git a/src/network/packets/swg/zone/GalaxyLoopTimesResponse.java b/src/network/packets/swg/zone/GalaxyLoopTimesResponse.java index 47d0f3d86..e987e1665 100644 --- a/src/network/packets/swg/zone/GalaxyLoopTimesResponse.java +++ b/src/network/packets/swg/zone/GalaxyLoopTimesResponse.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class GalaxyLoopTimesResponse extends SWGPacket { public static final int CRC = getCrc("GalaxyLoopTimesResponse"); diff --git a/src/network/packets/swg/zone/GameServerLagResponse.java b/src/network/packets/swg/zone/GameServerLagResponse.java index 37fa8f0ce..0e868daab 100644 --- a/src/network/packets/swg/zone/GameServerLagResponse.java +++ b/src/network/packets/swg/zone/GameServerLagResponse.java @@ -34,7 +34,7 @@ import network.packets.swg.SWGPacket; public class GameServerLagResponse extends SWGPacket { - public static final int CRC = resources.common.CRC.getCrc("GameServerLagResponse"); + public static final int CRC = getCrc("GameServerLagResponse"); public GameServerLagResponse() { diff --git a/src/network/packets/swg/zone/HeartBeat.java b/src/network/packets/swg/zone/HeartBeat.java index 944a2ec4d..e3a65a964 100644 --- a/src/network/packets/swg/zone/HeartBeat.java +++ b/src/network/packets/swg/zone/HeartBeat.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class HeartBeat extends SWGPacket { public static final int CRC = getCrc("HeartBeat"); diff --git a/src/network/packets/swg/zone/LagRequest.java b/src/network/packets/swg/zone/LagRequest.java index 19aba84b6..7aee46e5b 100644 --- a/src/network/packets/swg/zone/LagRequest.java +++ b/src/network/packets/swg/zone/LagRequest.java @@ -34,7 +34,7 @@ import network.packets.swg.SWGPacket; public class LagRequest extends SWGPacket { - public static final int CRC = resources.common.CRC.getCrc("LagRequest"); + public static final int CRC = getCrc("LagRequest"); public LagRequest() { diff --git a/src/network/packets/swg/zone/ParametersMessage.java b/src/network/packets/swg/zone/ParametersMessage.java index 30a7bfdcb..835a70382 100644 --- a/src/network/packets/swg/zone/ParametersMessage.java +++ b/src/network/packets/swg/zone/ParametersMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ParametersMessage extends SWGPacket { public static final int CRC = getCrc("ParametersMessage"); diff --git a/src/network/packets/swg/zone/PlanetTravelPointListResponse.java b/src/network/packets/swg/zone/PlanetTravelPointListResponse.java index 020f368d6..d87974b2e 100644 --- a/src/network/packets/swg/zone/PlanetTravelPointListResponse.java +++ b/src/network/packets/swg/zone/PlanetTravelPointListResponse.java @@ -32,12 +32,13 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import resources.Location; -import resources.Point3D; -import resources.Terrain; -import resources.TravelPoint; -import utilities.Encoder.StringType; +import com.projectswg.common.data.location.Location; +import com.projectswg.common.data.location.Point3D; +import com.projectswg.common.data.location.Terrain; +import com.projectswg.common.encoding.StringType; + import network.packets.swg.SWGPacket; +import resources.TravelPoint; public class PlanetTravelPointListResponse extends SWGPacket { diff --git a/src/network/packets/swg/zone/PlayClientEffectObjectMessage.java b/src/network/packets/swg/zone/PlayClientEffectObjectMessage.java index 316b7ece9..da2e6ee97 100644 --- a/src/network/packets/swg/zone/PlayClientEffectObjectMessage.java +++ b/src/network/packets/swg/zone/PlayClientEffectObjectMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class PlayClientEffectObjectMessage extends SWGPacket { public static final int CRC = getCrc("PlayClientEffectObjectMessage"); diff --git a/src/network/packets/swg/zone/PlayMusicMessage.java b/src/network/packets/swg/zone/PlayMusicMessage.java index c3256a0f2..d5e019f42 100644 --- a/src/network/packets/swg/zone/PlayMusicMessage.java +++ b/src/network/packets/swg/zone/PlayMusicMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class PlayMusicMessage extends SWGPacket { public static final int CRC = getCrc("PlayMusicMessage"); diff --git a/src/network/packets/swg/zone/RequestGalaxyLoopTimes.java b/src/network/packets/swg/zone/RequestGalaxyLoopTimes.java index 7dcc0a9de..1c5ad51ef 100644 --- a/src/network/packets/swg/zone/RequestGalaxyLoopTimes.java +++ b/src/network/packets/swg/zone/RequestGalaxyLoopTimes.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class RequestGalaxyLoopTimes extends SWGPacket { public static final int CRC = getCrc("RequestGalaxyLoopTimes"); diff --git a/src/network/packets/swg/zone/SceneCreateObjectByCrc.java b/src/network/packets/swg/zone/SceneCreateObjectByCrc.java index cfbdaa716..a0fd48b56 100644 --- a/src/network/packets/swg/zone/SceneCreateObjectByCrc.java +++ b/src/network/packets/swg/zone/SceneCreateObjectByCrc.java @@ -27,11 +27,12 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; -import resources.Location; - import java.nio.ByteBuffer; +import com.projectswg.common.data.location.Location; + +import network.packets.swg.SWGPacket; + public class SceneCreateObjectByCrc extends SWGPacket { public static final int CRC = getCrc("SceneCreateObjectByCrc"); diff --git a/src/network/packets/swg/zone/SceneDestroyObject.java b/src/network/packets/swg/zone/SceneDestroyObject.java index c85b8b118..797d6791c 100644 --- a/src/network/packets/swg/zone/SceneDestroyObject.java +++ b/src/network/packets/swg/zone/SceneDestroyObject.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class SceneDestroyObject extends SWGPacket { public static final int CRC = getCrc("SceneDestroyObject"); diff --git a/src/network/packets/swg/zone/SceneEndBaselines.java b/src/network/packets/swg/zone/SceneEndBaselines.java index 0ca2fe2a1..ccda0bb69 100644 --- a/src/network/packets/swg/zone/SceneEndBaselines.java +++ b/src/network/packets/swg/zone/SceneEndBaselines.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class SceneEndBaselines extends SWGPacket { public static final int CRC = getCrc("SceneEndBaselines"); diff --git a/src/network/packets/swg/zone/ServerNowEpochTime.java b/src/network/packets/swg/zone/ServerNowEpochTime.java index bc75ff817..0a3c1f508 100644 --- a/src/network/packets/swg/zone/ServerNowEpochTime.java +++ b/src/network/packets/swg/zone/ServerNowEpochTime.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ServerNowEpochTime extends SWGPacket { public static final int CRC = getCrc("ServerNowEpochTime"); diff --git a/src/network/packets/swg/zone/ServerTimeMessage.java b/src/network/packets/swg/zone/ServerTimeMessage.java index 0231734ef..f8f73a24d 100644 --- a/src/network/packets/swg/zone/ServerTimeMessage.java +++ b/src/network/packets/swg/zone/ServerTimeMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ServerTimeMessage extends SWGPacket { public static final int CRC = getCrc("ServerTimeMessage"); diff --git a/src/network/packets/swg/zone/ServerWeatherMessage.java b/src/network/packets/swg/zone/ServerWeatherMessage.java index dbe9b13d2..b8eeaddf8 100644 --- a/src/network/packets/swg/zone/ServerWeatherMessage.java +++ b/src/network/packets/swg/zone/ServerWeatherMessage.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package network.packets.swg.zone; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.WeatherType; -import java.nio.ByteBuffer; - public class ServerWeatherMessage extends SWGPacket { public static final int CRC = getCrc("ServerWeatherMessage"); diff --git a/src/network/packets/swg/zone/SetWaypointColor.java b/src/network/packets/swg/zone/SetWaypointColor.java index a4157cc03..188deac19 100644 --- a/src/network/packets/swg/zone/SetWaypointColor.java +++ b/src/network/packets/swg/zone/SetWaypointColor.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class SetWaypointColor extends SWGPacket { public static final int CRC = getCrc("SetWaypointColor"); diff --git a/src/network/packets/swg/zone/ShowBackpack.java b/src/network/packets/swg/zone/ShowBackpack.java index 1cc12eacf..bc710e577 100644 --- a/src/network/packets/swg/zone/ShowBackpack.java +++ b/src/network/packets/swg/zone/ShowBackpack.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ShowBackpack extends SWGPacket { public static final int CRC = getCrc("ShowBackpack"); diff --git a/src/network/packets/swg/zone/ShowHelmet.java b/src/network/packets/swg/zone/ShowHelmet.java index fbb77708c..e50b79cdc 100644 --- a/src/network/packets/swg/zone/ShowHelmet.java +++ b/src/network/packets/swg/zone/ShowHelmet.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ShowHelmet extends SWGPacket { public static final int CRC = getCrc("ShowHelmet"); diff --git a/src/network/packets/swg/zone/StopClientEffectObjectByLabelMessage.java b/src/network/packets/swg/zone/StopClientEffectObjectByLabelMessage.java index a02f6853f..d72d1ba10 100644 --- a/src/network/packets/swg/zone/StopClientEffectObjectByLabelMessage.java +++ b/src/network/packets/swg/zone/StopClientEffectObjectByLabelMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class StopClientEffectObjectByLabelMessage extends SWGPacket { public static final int CRC = getCrc("StopClientEffectObjectByLabelMessage"); diff --git a/src/network/packets/swg/zone/UpdateContainmentMessage.java b/src/network/packets/swg/zone/UpdateContainmentMessage.java index 8791a362d..840416065 100644 --- a/src/network/packets/swg/zone/UpdateContainmentMessage.java +++ b/src/network/packets/swg/zone/UpdateContainmentMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class UpdateContainmentMessage extends SWGPacket { public static final int CRC = getCrc("UpdateContainmentMessage"); diff --git a/src/network/packets/swg/zone/UpdatePostureMessage.java b/src/network/packets/swg/zone/UpdatePostureMessage.java index 964ddcea7..689687099 100644 --- a/src/network/packets/swg/zone/UpdatePostureMessage.java +++ b/src/network/packets/swg/zone/UpdatePostureMessage.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package network.packets.swg.zone; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.Posture; -import java.nio.ByteBuffer; - public class UpdatePostureMessage extends SWGPacket { public static final int CRC = getCrc("UpdatePostureMessage"); diff --git a/src/network/packets/swg/zone/UpdatePvpStatusMessage.java b/src/network/packets/swg/zone/UpdatePvpStatusMessage.java index ca28cabcd..07536dac4 100644 --- a/src/network/packets/swg/zone/UpdatePvpStatusMessage.java +++ b/src/network/packets/swg/zone/UpdatePvpStatusMessage.java @@ -27,11 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; import java.util.EnumSet; +import network.packets.swg.SWGPacket; import resources.PvpFaction; import resources.PvpFlag; diff --git a/src/network/packets/swg/zone/UpdateTransformMessage.java b/src/network/packets/swg/zone/UpdateTransformMessage.java index 2292fb3a0..d8a63e78d 100644 --- a/src/network/packets/swg/zone/UpdateTransformMessage.java +++ b/src/network/packets/swg/zone/UpdateTransformMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class UpdateTransformMessage extends SWGPacket { public static final int CRC = getCrc("UpdateTransformMessage"); diff --git a/src/network/packets/swg/zone/UpdateTransformWithParentMessage.java b/src/network/packets/swg/zone/UpdateTransformWithParentMessage.java index 33dc3e4fa..7c9327de6 100644 --- a/src/network/packets/swg/zone/UpdateTransformWithParentMessage.java +++ b/src/network/packets/swg/zone/UpdateTransformWithParentMessage.java @@ -27,11 +27,12 @@ package network.packets.swg.zone; -import network.packets.swg.SWGPacket; -import resources.Location; - import java.nio.ByteBuffer; +import com.projectswg.common.data.location.Location; + +import network.packets.swg.SWGPacket; + /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/baselines/Baseline.java b/src/network/packets/swg/zone/baselines/Baseline.java index f3f5b9298..2cee302b5 100644 --- a/src/network/packets/swg/zone/baselines/Baseline.java +++ b/src/network/packets/swg/zone/baselines/Baseline.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package network.packets.swg.zone.baselines; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; import java.nio.ByteOrder; +import network.packets.swg.SWGPacket; + public class Baseline extends SWGPacket { public static final int CRC = getCrc("BaselinesMessage"); diff --git a/src/network/packets/swg/zone/building/UpdateCellPermissionMessage.java b/src/network/packets/swg/zone/building/UpdateCellPermissionMessage.java index cd145cbb3..f7062be08 100644 --- a/src/network/packets/swg/zone/building/UpdateCellPermissionMessage.java +++ b/src/network/packets/swg/zone/building/UpdateCellPermissionMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone.building; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class UpdateCellPermissionMessage extends SWGPacket { public static final int CRC = getCrc("UpdateCellPermissionMessage"); diff --git a/src/network/packets/swg/zone/chat/ChatAddModeratorToRoom.java b/src/network/packets/swg/zone/chat/ChatAddModeratorToRoom.java index cecc2b43a..5bfb5530f 100644 --- a/src/network/packets/swg/zone/chat/ChatAddModeratorToRoom.java +++ b/src/network/packets/swg/zone/chat/ChatAddModeratorToRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatBanAvatarFromRoom.java b/src/network/packets/swg/zone/chat/ChatBanAvatarFromRoom.java index c307d67f8..d12651a77 100644 --- a/src/network/packets/swg/zone/chat/ChatBanAvatarFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatBanAvatarFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatCreateRoom.java b/src/network/packets/swg/zone/chat/ChatCreateRoom.java index 316862f49..3d9070a44 100644 --- a/src/network/packets/swg/zone/chat/ChatCreateRoom.java +++ b/src/network/packets/swg/zone/chat/ChatCreateRoom.java @@ -27,10 +27,10 @@ package network.packets.swg.zone.chat; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatDeletePersistentMessage.java b/src/network/packets/swg/zone/chat/ChatDeletePersistentMessage.java index d48fa9f58..9e01f3d83 100644 --- a/src/network/packets/swg/zone/chat/ChatDeletePersistentMessage.java +++ b/src/network/packets/swg/zone/chat/ChatDeletePersistentMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone.chat; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ChatDeletePersistentMessage extends SWGPacket { public static final int CRC = getCrc("ChatDeletePersistentMessage"); diff --git a/src/network/packets/swg/zone/chat/ChatDestroyRoom.java b/src/network/packets/swg/zone/chat/ChatDestroyRoom.java index 55d319ea0..49e4dab7d 100644 --- a/src/network/packets/swg/zone/chat/ChatDestroyRoom.java +++ b/src/network/packets/swg/zone/chat/ChatDestroyRoom.java @@ -27,10 +27,10 @@ package network.packets.swg.zone.chat; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatEnterRoomById.java b/src/network/packets/swg/zone/chat/ChatEnterRoomById.java index 2967e3e94..67fbfd33f 100644 --- a/src/network/packets/swg/zone/chat/ChatEnterRoomById.java +++ b/src/network/packets/swg/zone/chat/ChatEnterRoomById.java @@ -27,10 +27,10 @@ package network.packets.swg.zone.chat; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatFriendsListUpdate.java b/src/network/packets/swg/zone/chat/ChatFriendsListUpdate.java index 77fa0851e..a9e82867c 100644 --- a/src/network/packets/swg/zone/chat/ChatFriendsListUpdate.java +++ b/src/network/packets/swg/zone/chat/ChatFriendsListUpdate.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - public class ChatFriendsListUpdate extends SWGPacket { public static final int CRC = getCrc("ChatFriendsListUpdate"); diff --git a/src/network/packets/swg/zone/chat/ChatInviteAvatarToRoom.java b/src/network/packets/swg/zone/chat/ChatInviteAvatarToRoom.java index 99d09671b..cb60fb0aa 100644 --- a/src/network/packets/swg/zone/chat/ChatInviteAvatarToRoom.java +++ b/src/network/packets/swg/zone/chat/ChatInviteAvatarToRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatKickAvatarFromRoom.java b/src/network/packets/swg/zone/chat/ChatKickAvatarFromRoom.java index cfcf67df5..fe7beb5dd 100644 --- a/src/network/packets/swg/zone/chat/ChatKickAvatarFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatKickAvatarFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatOnAddModeratorToRoom.java b/src/network/packets/swg/zone/chat/ChatOnAddModeratorToRoom.java index 620c7cfff..19782a81e 100644 --- a/src/network/packets/swg/zone/chat/ChatOnAddModeratorToRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnAddModeratorToRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatOnBanAvatarFromRoom.java b/src/network/packets/swg/zone/chat/ChatOnBanAvatarFromRoom.java index 18a37ba73..db1145434 100644 --- a/src/network/packets/swg/zone/chat/ChatOnBanAvatarFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnBanAvatarFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatOnChangeFriendStatus.java b/src/network/packets/swg/zone/chat/ChatOnChangeFriendStatus.java index 148618bca..699e36345 100644 --- a/src/network/packets/swg/zone/chat/ChatOnChangeFriendStatus.java +++ b/src/network/packets/swg/zone/chat/ChatOnChangeFriendStatus.java @@ -27,10 +27,10 @@ package network.packets.swg.zone.chat; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatOnCreateRoom.java b/src/network/packets/swg/zone/chat/ChatOnCreateRoom.java index 2982aa4b5..80e0dd3d8 100644 --- a/src/network/packets/swg/zone/chat/ChatOnCreateRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnCreateRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatRoom; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatOnDestroyRoom.java b/src/network/packets/swg/zone/chat/ChatOnDestroyRoom.java index 148836231..51c0539c0 100644 --- a/src/network/packets/swg/zone/chat/ChatOnDestroyRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnDestroyRoom.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - public class ChatOnDestroyRoom extends SWGPacket { public static final int CRC = getCrc("ChatOnDestroyRoom"); diff --git a/src/network/packets/swg/zone/chat/ChatOnEnteredRoom.java b/src/network/packets/swg/zone/chat/ChatOnEnteredRoom.java index 90fe54dfe..bfaf892fc 100644 --- a/src/network/packets/swg/zone/chat/ChatOnEnteredRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnEnteredRoom.java @@ -27,12 +27,12 @@ ***********************************************************************************/ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; import resources.chat.ChatResult; -import java.nio.ByteBuffer; - public class ChatOnEnteredRoom extends SWGPacket { public static final int CRC = getCrc("ChatOnEnteredRoom"); diff --git a/src/network/packets/swg/zone/chat/ChatOnInviteToRoom.java b/src/network/packets/swg/zone/chat/ChatOnInviteToRoom.java index 44019ed29..a9100b9f0 100644 --- a/src/network/packets/swg/zone/chat/ChatOnInviteToRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnInviteToRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatOnKickAvatarFromRoom.java b/src/network/packets/swg/zone/chat/ChatOnKickAvatarFromRoom.java index 92dfd4045..dbb56f108 100644 --- a/src/network/packets/swg/zone/chat/ChatOnKickAvatarFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnKickAvatarFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatOnLeaveRoom.java b/src/network/packets/swg/zone/chat/ChatOnLeaveRoom.java index 25d192506..72966c4bd 100644 --- a/src/network/packets/swg/zone/chat/ChatOnLeaveRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnLeaveRoom.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - public class ChatOnLeaveRoom extends SWGPacket { public static final int CRC = getCrc("ChatOnLeaveRoom"); diff --git a/src/network/packets/swg/zone/chat/ChatOnRemoveModeratorFromRoom.java b/src/network/packets/swg/zone/chat/ChatOnRemoveModeratorFromRoom.java index 5d559b9ab..fae5ea51d 100644 --- a/src/network/packets/swg/zone/chat/ChatOnRemoveModeratorFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnRemoveModeratorFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatOnUnbanAvatarFromRoom.java b/src/network/packets/swg/zone/chat/ChatOnUnbanAvatarFromRoom.java index 7dbafe6b8..266b54042 100644 --- a/src/network/packets/swg/zone/chat/ChatOnUnbanAvatarFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnUnbanAvatarFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatOnUninviteFromRoom.java b/src/network/packets/swg/zone/chat/ChatOnUninviteFromRoom.java index 6c6912ca1..6b9298dfa 100644 --- a/src/network/packets/swg/zone/chat/ChatOnUninviteFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatOnUninviteFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatPersistentMessageToClient.java b/src/network/packets/swg/zone/chat/ChatPersistentMessageToClient.java index 127a2a944..485315f5e 100644 --- a/src/network/packets/swg/zone/chat/ChatPersistentMessageToClient.java +++ b/src/network/packets/swg/zone/chat/ChatPersistentMessageToClient.java @@ -30,8 +30,8 @@ package network.packets.swg.zone.chat; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import resources.encodables.player.Mail; import network.packets.swg.SWGPacket; +import resources.encodables.player.Mail; public class ChatPersistentMessageToClient extends SWGPacket { public static final int CRC = getCrc("ChatPersistentMessageToClient"); diff --git a/src/network/packets/swg/zone/chat/ChatPersistentMessageToServer.java b/src/network/packets/swg/zone/chat/ChatPersistentMessageToServer.java index 56528ac88..284c2aa4c 100644 --- a/src/network/packets/swg/zone/chat/ChatPersistentMessageToServer.java +++ b/src/network/packets/swg/zone/chat/ChatPersistentMessageToServer.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.encodables.OutOfBandPackage; -import java.nio.ByteBuffer; - public class ChatPersistentMessageToServer extends SWGPacket { public static final int CRC = getCrc("ChatPersistentMessageToServer"); diff --git a/src/network/packets/swg/zone/chat/ChatQueryRoom.java b/src/network/packets/swg/zone/chat/ChatQueryRoom.java index 34b897810..67fa661ec 100644 --- a/src/network/packets/swg/zone/chat/ChatQueryRoom.java +++ b/src/network/packets/swg/zone/chat/ChatQueryRoom.java @@ -27,10 +27,10 @@ package network.packets.swg.zone.chat; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatQueryRoomResults.java b/src/network/packets/swg/zone/chat/ChatQueryRoomResults.java index 9ac97439d..052975722 100644 --- a/src/network/packets/swg/zone/chat/ChatQueryRoomResults.java +++ b/src/network/packets/swg/zone/chat/ChatQueryRoomResults.java @@ -27,11 +27,12 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; +import java.util.List; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; import resources.chat.ChatRoom; -import java.nio.ByteBuffer; -import java.util.List; /** * @author Waverunner diff --git a/src/network/packets/swg/zone/chat/ChatRemoveAvatarFromRoom.java b/src/network/packets/swg/zone/chat/ChatRemoveAvatarFromRoom.java index 29ee79695..5346f9470 100644 --- a/src/network/packets/swg/zone/chat/ChatRemoveAvatarFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatRemoveAvatarFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatRemoveModeratorFromRoom.java b/src/network/packets/swg/zone/chat/ChatRemoveModeratorFromRoom.java index 25204eb32..e31ead1b1 100644 --- a/src/network/packets/swg/zone/chat/ChatRemoveModeratorFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatRemoveModeratorFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatRoomMessage.java b/src/network/packets/swg/zone/chat/ChatRoomMessage.java index 274ecd663..17b60fd18 100644 --- a/src/network/packets/swg/zone/chat/ChatRoomMessage.java +++ b/src/network/packets/swg/zone/chat/ChatRoomMessage.java @@ -27,12 +27,12 @@ ***********************************************************************************/ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; import resources.encodables.OutOfBandPackage; -import java.nio.ByteBuffer; - public class ChatRoomMessage extends SWGPacket { public static final int CRC = getCrc("ChatRoomMessage"); diff --git a/src/network/packets/swg/zone/chat/ChatSendToRoom.java b/src/network/packets/swg/zone/chat/ChatSendToRoom.java index 8d8e163f9..740945208 100644 --- a/src/network/packets/swg/zone/chat/ChatSendToRoom.java +++ b/src/network/packets/swg/zone/chat/ChatSendToRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.encodables.OutOfBandPackage; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatSystemMessage.java b/src/network/packets/swg/zone/chat/ChatSystemMessage.java index 9cbb744ee..1f2519ca7 100644 --- a/src/network/packets/swg/zone/chat/ChatSystemMessage.java +++ b/src/network/packets/swg/zone/chat/ChatSystemMessage.java @@ -29,8 +29,8 @@ package network.packets.swg.zone.chat; import java.nio.ByteBuffer; -import resources.encodables.OutOfBandPackage; import network.packets.swg.SWGPacket; +import resources.encodables.OutOfBandPackage; public class ChatSystemMessage extends SWGPacket { public static final int CRC = getCrc("ChatSystemMessage"); diff --git a/src/network/packets/swg/zone/chat/ChatUnbanAvatarFromRoom.java b/src/network/packets/swg/zone/chat/ChatUnbanAvatarFromRoom.java index 029f706f1..40affd9a7 100644 --- a/src/network/packets/swg/zone/chat/ChatUnbanAvatarFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatUnbanAvatarFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/chat/ChatUninviteFromRoom.java b/src/network/packets/swg/zone/chat/ChatUninviteFromRoom.java index e2035b642..f4ca028c1 100644 --- a/src/network/packets/swg/zone/chat/ChatUninviteFromRoom.java +++ b/src/network/packets/swg/zone/chat/ChatUninviteFromRoom.java @@ -27,11 +27,11 @@ package network.packets.swg.zone.chat; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.chat.ChatAvatar; -import java.nio.ByteBuffer; - /** * @author Waverunner */ diff --git a/src/network/packets/swg/zone/deltas/DeltasMessage.java b/src/network/packets/swg/zone/deltas/DeltasMessage.java index d4e9f068e..f5c1f9eb6 100644 --- a/src/network/packets/swg/zone/deltas/DeltasMessage.java +++ b/src/network/packets/swg/zone/deltas/DeltasMessage.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package network.packets.swg.zone.deltas; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import network.packets.swg.zone.baselines.Baseline.BaselineType; -import java.nio.ByteBuffer; - public class DeltasMessage extends SWGPacket { public static final int CRC = getCrc("DeltasMessage"); diff --git a/src/network/packets/swg/zone/insertion/ChatRoomList.java b/src/network/packets/swg/zone/insertion/ChatRoomList.java index d092f1a76..592e9df8e 100644 --- a/src/network/packets/swg/zone/insertion/ChatRoomList.java +++ b/src/network/packets/swg/zone/insertion/ChatRoomList.java @@ -27,13 +27,13 @@ ***********************************************************************************/ package network.packets.swg.zone.insertion; -import network.packets.swg.SWGPacket; -import resources.chat.ChatRoom; - import java.nio.ByteBuffer; import java.util.Arrays; import java.util.Collection; +import network.packets.swg.SWGPacket; +import resources.chat.ChatRoom; + public class ChatRoomList extends SWGPacket { public static final int CRC = getCrc("ChatRoomList"); diff --git a/src/network/packets/swg/zone/insertion/ChatServerStatus.java b/src/network/packets/swg/zone/insertion/ChatServerStatus.java index 9da0075b6..7b9d0441b 100644 --- a/src/network/packets/swg/zone/insertion/ChatServerStatus.java +++ b/src/network/packets/swg/zone/insertion/ChatServerStatus.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone.insertion; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ChatServerStatus extends SWGPacket { public static final int CRC = getCrc("ChatServerStatus"); diff --git a/src/network/packets/swg/zone/insertion/CmdStartScene.java b/src/network/packets/swg/zone/insertion/CmdStartScene.java index 8af9a4cb2..6464eee52 100644 --- a/src/network/packets/swg/zone/insertion/CmdStartScene.java +++ b/src/network/packets/swg/zone/insertion/CmdStartScene.java @@ -27,13 +27,14 @@ ***********************************************************************************/ package network.packets.swg.zone.insertion; -import network.packets.swg.SWGPacket; -import resources.Location; -import resources.Race; -import resources.Terrain; - import java.nio.ByteBuffer; +import com.projectswg.common.data.location.Location; +import com.projectswg.common.data.location.Terrain; + +import network.packets.swg.SWGPacket; +import resources.Race; + public class CmdStartScene extends SWGPacket { public static final int CRC = getCrc("CmdStartScene"); @@ -62,6 +63,7 @@ public class CmdStartScene extends SWGPacket { this.serverEpoch = serverEpoch; } + @Override public void decode(ByteBuffer data) { if (!super.decode(data, CRC)) return; @@ -81,6 +83,7 @@ public class CmdStartScene extends SWGPacket { serverEpoch = getInt(data); } + @Override public ByteBuffer encode() { int length = 47 + l.getTerrain().getFile().length() + race.getFilename().length(); ByteBuffer data = ByteBuffer.allocate(length); diff --git a/src/network/packets/swg/zone/insertion/ConnectPlayerMessage.java b/src/network/packets/swg/zone/insertion/ConnectPlayerMessage.java index bcdca6f9f..74c005044 100644 --- a/src/network/packets/swg/zone/insertion/ConnectPlayerMessage.java +++ b/src/network/packets/swg/zone/insertion/ConnectPlayerMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone.insertion; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class ConnectPlayerMessage extends SWGPacket { public static final int CRC = getCrc("ConnectPlayerMessage"); diff --git a/src/network/packets/swg/zone/insertion/SelectCharacter.java b/src/network/packets/swg/zone/insertion/SelectCharacter.java index 3aea2cfb4..f2155e430 100644 --- a/src/network/packets/swg/zone/insertion/SelectCharacter.java +++ b/src/network/packets/swg/zone/insertion/SelectCharacter.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone.insertion; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class SelectCharacter extends SWGPacket { public static final int CRC = getCrc("SelectCharacter"); diff --git a/src/network/packets/swg/zone/object_controller/DataTransform.java b/src/network/packets/swg/zone/object_controller/DataTransform.java index 95c5c29dc..e2b5ce0d1 100644 --- a/src/network/packets/swg/zone/object_controller/DataTransform.java +++ b/src/network/packets/swg/zone/object_controller/DataTransform.java @@ -29,13 +29,12 @@ package network.packets.swg.zone.object_controller; import java.nio.ByteBuffer; -import resources.Location; - +import com.projectswg.common.data.location.Location; public class DataTransform extends ObjectController { public static final int CRC = 0x0071; - + private int timestamp; private int updateCounter = 0; private Location l; @@ -72,6 +71,7 @@ public class DataTransform extends ObjectController { decode(data); } + @Override public void decode(ByteBuffer data) { decodeHeader(data); timestamp = getInt(data); @@ -82,6 +82,7 @@ public class DataTransform extends ObjectController { useLookAtYaw = getBoolean(data); } + @Override public ByteBuffer encode() { ByteBuffer data = ByteBuffer.allocate(HEADER_LENGTH + 45); encodeHeader(data); @@ -94,40 +95,59 @@ public class DataTransform extends ObjectController { return data; } - public void setTimestamp(int timestamp) { this.timestamp = timestamp; } - public void setUpdateCounter(int counter) { this.updateCounter = counter; } - public void setLocation(Location l) { this.l = l; } - public void setSpeed(float speed) { this.speed = speed; } + public void setTimestamp(int timestamp) { + this.timestamp = timestamp; + } + + public void setUpdateCounter(int counter) { + this.updateCounter = counter; + } + + public void setLocation(Location l) { + this.l = l; + } + + public void setSpeed(float speed) { + this.speed = speed; + } + + public int getUpdateCounter() { + return updateCounter; + } + + public Location getLocation() { + return l; + } + + public float getSpeed() { + return speed; + } - public int getUpdateCounter() { return updateCounter; } - public Location getLocation() { return l; } - public float getSpeed() { return speed; } - public boolean isUseLookAtYaw() { return useLookAtYaw; } - + public void setUseLookAtYaw(boolean useLookAtYaw) { this.useLookAtYaw = useLookAtYaw; } - + public float getLookAtYaw() { return lookAtYaw; } - + public void setLookAtYaw(float lookAtYaw) { this.lookAtYaw = lookAtYaw; } - + public int getTimestamp() { return timestamp; } - + public byte getMovementAngle() { byte movementAngle = (byte) 0.0f; double wOrient = l.getOrientationW(); double yOrient = l.getOrientationY(); - double sq = Math.sqrt(1 - (wOrient*wOrient)); + double sq = Math.sqrt(1 - (wOrient * wOrient)); if (sq != 0) { if (l.getOrientationW() > 0 && l.getOrientationY() < 0) { @@ -139,5 +159,5 @@ public class DataTransform extends ObjectController { return movementAngle; } - + } diff --git a/src/network/packets/swg/zone/object_controller/DataTransformWithParent.java b/src/network/packets/swg/zone/object_controller/DataTransformWithParent.java index 6dacd9819..e98eb69cb 100644 --- a/src/network/packets/swg/zone/object_controller/DataTransformWithParent.java +++ b/src/network/packets/swg/zone/object_controller/DataTransformWithParent.java @@ -27,16 +27,15 @@ ***********************************************************************************/ package network.packets.swg.zone.object_controller; -import resources.Location; import java.nio.ByteBuffer; -/** - * @author Waverunner - */ -public class DataTransformWithParent extends ObjectController { - public static final int CRC = 0x00F1; +import com.projectswg.common.data.location.Location; +public class DataTransformWithParent extends ObjectController { + + public static final int CRC = 0x00F1; + private int timestamp; private int counter; private long cellId; @@ -44,16 +43,16 @@ public class DataTransformWithParent extends ObjectController { private float speed; private float lookAtYaw; private boolean useLookAtYaw; - + public DataTransformWithParent(long objectId) { super(objectId, CRC); } - + public DataTransformWithParent(ByteBuffer data) { super(CRC); decode(data); } - + @Override public void decode(ByteBuffer data) { decodeHeader(data); @@ -65,7 +64,7 @@ public class DataTransformWithParent extends ObjectController { lookAtYaw = getFloat(data); useLookAtYaw = getBoolean(data); } - + @Override public ByteBuffer encode() { return null; @@ -74,65 +73,65 @@ public class DataTransformWithParent extends ObjectController { public void setUpdateCounter(int counter) { this.counter = counter; } - + public void setTimestamp(int timestamp) { this.timestamp = timestamp; } - + public void setCellId(long cellId) { this.cellId = cellId; } - + public void setLocation(Location l) { this.l = l; } - + public void setSpeed(float speed) { this.speed = speed; } - + public void setLookAtYaw(float lookAtYaw) { this.lookAtYaw = lookAtYaw; } - + public void setUseLookAtYaw(boolean useLookAtYaw) { this.useLookAtYaw = useLookAtYaw; } - + public int getUpdateCounter() { return counter; } - + public long getCellId() { return cellId; } - + public Location getLocation() { return l; } - + public float getSpeed() { return speed; } - + public float getLookAtYaw() { return lookAtYaw; } - + public boolean isUseLookAtYaw() { return useLookAtYaw; } - + public int getTimestamp() { return timestamp; } - + public byte getMovementAngle() { byte movementAngle = (byte) 0.0f; double wOrient = l.getOrientationW(); double yOrient = l.getOrientationY(); - double sq = Math.sqrt(1 - (wOrient*wOrient)); - + double sq = Math.sqrt(1 - (wOrient * wOrient)); + if (sq != 0) { if (l.getOrientationW() > 0 && l.getOrientationY() < 0) { wOrient *= -1; @@ -140,7 +139,7 @@ public class DataTransformWithParent extends ObjectController { } movementAngle = (byte) ((yOrient / sq) * (2 * Math.acos(wOrient) / 0.06283f)); } - + return movementAngle; } } diff --git a/src/network/packets/swg/zone/object_controller/ObjectController.java b/src/network/packets/swg/zone/object_controller/ObjectController.java index 7e44621b7..57f12e349 100644 --- a/src/network/packets/swg/zone/object_controller/ObjectController.java +++ b/src/network/packets/swg/zone/object_controller/ObjectController.java @@ -29,12 +29,12 @@ package network.packets.swg.zone.object_controller; import java.nio.ByteBuffer; +import com.projectswg.common.debug.Log; + import network.packets.swg.SWGPacket; import network.packets.swg.zone.object_controller.combat.CombatAction; import network.packets.swg.zone.object_controller.combat.CombatSpam; -import com.projectswg.common.debug.Log; - public abstract class ObjectController extends SWGPacket { public static final int CRC = 0x80CE5E46; diff --git a/src/network/packets/swg/zone/object_controller/ObjectMenuRequest.java b/src/network/packets/swg/zone/object_controller/ObjectMenuRequest.java index 73b12ba69..e651b745c 100644 --- a/src/network/packets/swg/zone/object_controller/ObjectMenuRequest.java +++ b/src/network/packets/swg/zone/object_controller/ObjectMenuRequest.java @@ -29,6 +29,7 @@ package network.packets.swg.zone.object_controller; import java.nio.ByteBuffer; import java.util.List; + import resources.radial.RadialOption; import resources.radial.RadialOptionList; diff --git a/src/network/packets/swg/zone/object_controller/ShowFlyText.java b/src/network/packets/swg/zone/object_controller/ShowFlyText.java index cb4aaf7e7..52b0f41da 100644 --- a/src/network/packets/swg/zone/object_controller/ShowFlyText.java +++ b/src/network/packets/swg/zone/object_controller/ShowFlyText.java @@ -31,10 +31,11 @@ import java.nio.ByteBuffer; import java.util.EnumSet; import java.util.Set; -import resources.common.RGB; +import com.projectswg.common.data.RGB; +import com.projectswg.common.network.NetBuffer; + import resources.encodables.OutOfBandPackage; import resources.encodables.StringId; -import resources.network.NetBuffer; public class ShowFlyText extends ObjectController { diff --git a/src/network/packets/swg/zone/object_controller/ShowLootBox.java b/src/network/packets/swg/zone/object_controller/ShowLootBox.java index 8b72cf75b..334cb2ab4 100644 --- a/src/network/packets/swg/zone/object_controller/ShowLootBox.java +++ b/src/network/packets/swg/zone/object_controller/ShowLootBox.java @@ -28,7 +28,8 @@ package network.packets.swg.zone.object_controller; import java.nio.ByteBuffer; -import resources.network.NetBuffer; + +import com.projectswg.common.network.NetBuffer; public class ShowLootBox extends ObjectController { diff --git a/src/network/packets/swg/zone/object_controller/SitOnObject.java b/src/network/packets/swg/zone/object_controller/SitOnObject.java index effc3a4f2..17d2b8ce1 100644 --- a/src/network/packets/swg/zone/object_controller/SitOnObject.java +++ b/src/network/packets/swg/zone/object_controller/SitOnObject.java @@ -29,8 +29,6 @@ package network.packets.swg.zone.object_controller; import java.nio.ByteBuffer; -import network.packets.swg.zone.object_controller.ObjectController; - public class SitOnObject extends ObjectController { public static final int CRC = 0x013B; diff --git a/src/network/packets/swg/zone/object_controller/combat/CombatAction.java b/src/network/packets/swg/zone/object_controller/combat/CombatAction.java index 36a9b367e..500ffe4af 100644 --- a/src/network/packets/swg/zone/object_controller/combat/CombatAction.java +++ b/src/network/packets/swg/zone/object_controller/combat/CombatAction.java @@ -31,13 +31,14 @@ import java.nio.ByteBuffer; import java.util.HashSet; import java.util.Set; -import resources.Point3D; +import com.projectswg.common.data.location.Point3D; +import com.projectswg.common.network.NetBuffer; + +import network.packets.swg.zone.object_controller.ObjectController; import resources.Posture; import resources.combat.HitLocation; import resources.combat.TrailLocation; -import resources.network.NetBuffer; import resources.objects.creature.CreatureObject; -import network.packets.swg.zone.object_controller.ObjectController; public class CombatAction extends ObjectController { diff --git a/src/network/packets/swg/zone/object_controller/combat/CombatSpam.java b/src/network/packets/swg/zone/object_controller/combat/CombatSpam.java index e544c2b79..809415665 100644 --- a/src/network/packets/swg/zone/object_controller/combat/CombatSpam.java +++ b/src/network/packets/swg/zone/object_controller/combat/CombatSpam.java @@ -29,13 +29,14 @@ package network.packets.swg.zone.object_controller.combat; import java.nio.ByteBuffer; +import com.projectswg.common.data.location.Point3D; +import com.projectswg.common.network.NetBuffer; + import network.packets.swg.zone.object_controller.ObjectController; -import resources.Point3D; import resources.combat.AttackInfo; import resources.combat.DamageType; import resources.combat.HitLocation; import resources.encodables.StringId; -import resources.network.NetBuffer; import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; diff --git a/src/network/packets/swg/zone/resource/ResourceWeight.java b/src/network/packets/swg/zone/resource/ResourceWeight.java index b187f541f..43c78e2fc 100644 --- a/src/network/packets/swg/zone/resource/ResourceWeight.java +++ b/src/network/packets/swg/zone/resource/ResourceWeight.java @@ -34,10 +34,10 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import network.packets.swg.zone.object_controller.ObjectController; - import com.projectswg.common.debug.Assert; +import network.packets.swg.zone.object_controller.ObjectController; + public class ResourceWeight extends ObjectController { public static final int CRC = 0x0207; diff --git a/src/network/packets/swg/zone/server_ui/SuiCreatePageMessage.java b/src/network/packets/swg/zone/server_ui/SuiCreatePageMessage.java index cfb9c0615..9e31f0d59 100644 --- a/src/network/packets/swg/zone/server_ui/SuiCreatePageMessage.java +++ b/src/network/packets/swg/zone/server_ui/SuiCreatePageMessage.java @@ -27,11 +27,11 @@ ***********************************************************************************/ package network.packets.swg.zone.server_ui; +import java.nio.ByteBuffer; + import network.packets.swg.SWGPacket; import resources.sui.SuiBaseWindow; -import java.nio.ByteBuffer; - public class SuiCreatePageMessage extends SWGPacket { public static final int CRC = getCrc("SuiCreatePageMessage"); diff --git a/src/network/packets/swg/zone/server_ui/SuiEventNotification.java b/src/network/packets/swg/zone/server_ui/SuiEventNotification.java index 89ee79347..df1f60e21 100644 --- a/src/network/packets/swg/zone/server_ui/SuiEventNotification.java +++ b/src/network/packets/swg/zone/server_ui/SuiEventNotification.java @@ -27,12 +27,12 @@ ***********************************************************************************/ package network.packets.swg.zone.server_ui; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; +import network.packets.swg.SWGPacket; + public class SuiEventNotification extends SWGPacket { public static final int CRC = getCrc("SuiEventNotification"); diff --git a/src/network/packets/swg/zone/server_ui/SuiForceClosePage.java b/src/network/packets/swg/zone/server_ui/SuiForceClosePage.java index d459e1457..1b13ecf83 100644 --- a/src/network/packets/swg/zone/server_ui/SuiForceClosePage.java +++ b/src/network/packets/swg/zone/server_ui/SuiForceClosePage.java @@ -27,10 +27,10 @@ package network.packets.swg.zone.server_ui; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + /** * Created by Waverunner on 8/17/2015 */ diff --git a/src/network/packets/swg/zone/spatial/AttributeListMessage.java b/src/network/packets/swg/zone/spatial/AttributeListMessage.java index 7afbb856b..5d51db8a9 100644 --- a/src/network/packets/swg/zone/spatial/AttributeListMessage.java +++ b/src/network/packets/swg/zone/spatial/AttributeListMessage.java @@ -27,13 +27,13 @@ ***********************************************************************************/ package network.packets.swg.zone.spatial; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; +import network.packets.swg.SWGPacket; + public class AttributeListMessage extends SWGPacket { public static final int CRC = getCrc("AttributeListMessage"); diff --git a/src/network/packets/swg/zone/spatial/GetMapLocationsMessage.java b/src/network/packets/swg/zone/spatial/GetMapLocationsMessage.java index 668ae9333..f382ff9a0 100644 --- a/src/network/packets/swg/zone/spatial/GetMapLocationsMessage.java +++ b/src/network/packets/swg/zone/spatial/GetMapLocationsMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone.spatial; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class GetMapLocationsMessage extends SWGPacket { public static final int CRC = getCrc("GetMapLocationsMessage"); diff --git a/src/network/packets/swg/zone/spatial/GetMapLocationsResponseMessage.java b/src/network/packets/swg/zone/spatial/GetMapLocationsResponseMessage.java index 618721ba1..142d11489 100644 --- a/src/network/packets/swg/zone/spatial/GetMapLocationsResponseMessage.java +++ b/src/network/packets/swg/zone/spatial/GetMapLocationsResponseMessage.java @@ -27,13 +27,13 @@ ***********************************************************************************/ package network.packets.swg.zone.spatial; -import network.packets.swg.SWGPacket; -import services.map.MapLocation; - import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.List; +import network.packets.swg.SWGPacket; +import services.map.MapLocation; + public class GetMapLocationsResponseMessage extends SWGPacket { public static final int CRC = getCrc("GetMapLocationsResponseMessage"); diff --git a/src/network/packets/swg/zone/spatial/NewTicketActivityResponseMessage.java b/src/network/packets/swg/zone/spatial/NewTicketActivityResponseMessage.java index 6c36bebda..6ac489fa0 100644 --- a/src/network/packets/swg/zone/spatial/NewTicketActivityResponseMessage.java +++ b/src/network/packets/swg/zone/spatial/NewTicketActivityResponseMessage.java @@ -27,10 +27,10 @@ ***********************************************************************************/ package network.packets.swg.zone.spatial; -import network.packets.swg.SWGPacket; - import java.nio.ByteBuffer; +import network.packets.swg.SWGPacket; + public class NewTicketActivityResponseMessage extends SWGPacket { public static final int CRC = getCrc("NewTicketActivityResponseMessage"); diff --git a/src/resources/Location.java b/src/resources/Location.java deleted file mode 100644 index 2397e45af..000000000 --- a/src/resources/Location.java +++ /dev/null @@ -1,299 +0,0 @@ -/*********************************************************************************** -* Copyright (c) 2015 /// Project SWG /// www.projectswg.com * -* * -* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * -* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * -* Our goal is to create an emulator which will provide a server for players to * -* continue playing a game similar to the one they used to play. We are basing * -* it on the final publish of the game prior to end-game events. * -* * -* This file is part of Holocore. * -* * -* -------------------------------------------------------------------------------- * -* * -* Holocore 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. * -* * -* Holocore 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 Holocore. If not, see . * -* * -***********************************************************************************/ -package resources; - -import network.packets.Packet; -import resources.encodables.Encodable; -import resources.network.NetBufferStream; -import resources.persistable.Persistable; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; - - -public class Location implements Encodable, Persistable { - - private final Point3D point; - private final Quaternion orientation; - private Terrain terrain; - - public Location() { - this(Double.NaN, Double.NaN, Double.NaN, null); - } - - public Location(Location l) { - this(l.getX(), l.getY(), l.getZ(), l.terrain); - orientation.set(l.orientation); - } - - public Location(double x, double y, double z, Terrain terrain) { - this.orientation = new Quaternion(0, 0, 0, 1); - this.point = new Point3D(x, y, z); - this.terrain = terrain; - } - - public void setTerrain(Terrain terrain) { this.terrain = terrain; } - public void setX(double x) { point.setX(x); } - public void setY(double y) { point.setY(y); } - public void setZ(double z) { point.setZ(z); } - public void setOrientationX(double oX) { orientation.setX(oX); } - public void setOrientationY(double oY) { orientation.setY(oY); } - public void setOrientationZ(double oZ) { orientation.setZ(oZ); } - public void setOrientationW(double oW) { orientation.setW(oW); } - public void setPosition(double x, double y, double z) { - setX(x); - setY(y); - setZ(z); - } - public void setOrientation(double oX, double oY, double oZ, double oW) { - setOrientationX(oX); - setOrientationY(oY); - setOrientationZ(oZ); - setOrientationW(oW); - } - - public Terrain getTerrain() { return terrain; } - public double getX() { return point.getX(); } - public double getY() { return point.getY(); } - public double getZ() { return point.getZ(); } - public Point3D getPosition() { return new Point3D(point); } - public double getOrientationX() { return orientation.getX(); } - public double getOrientationY() { return orientation.getY(); } - public double getOrientationZ() { return orientation.getZ(); } - public double getOrientationW() { return orientation.getW(); } - public Quaternion getOrientation() { return new Quaternion(orientation); } - - public boolean isWithinDistance(Location l, double x, double y, double z) { - if (getTerrain() != l.getTerrain()) - return false; - double xD = Math.abs(getX() - l.getX()); - double yD = Math.abs(getY() - l.getY()); - double zD = Math.abs(getZ() - l.getZ()); - return xD <= x && yD <= y && zD <= z; - } - - public boolean isWithinDistance(Location l, double radius) { - return isWithinDistance(l.getTerrain(), l.getX(), l.getY(), l.getZ(), radius); - } - - public boolean isWithinDistance(Terrain t, double x, double y, double z, double radius) { - if (getTerrain() != t) - return false; - return square(getX()-x) + square(getY()-y) + square(getZ()-z) <= square(radius); - } - - public boolean isWithinFlatDistance(Location l, double radius) { - return isWithinFlatDistance(l.point, radius); - } - - public boolean isWithinFlatDistance(Point3D target, double radius){ - return square(getX() - target.getX()) + square(getZ() - target.getZ()) <= square(radius); - } - - public void translatePosition(double x, double y, double z) { - setX(getX() + x); - setY(getY() + y); - setZ(getZ() + z); - } - - public void translateLocation(Location l) { - point.rotateAround(l.getX(), l.getY(), l.getZ(), l.orientation); - orientation.rotateByQuaternion(l.orientation); - } - - public Location translate(Location l) { - Location ret = new Location(this); - ret.translateLocation(l); - return ret; - } - - /** - * Sets the orientation to be facing the specified heading - * @param heading the heading to face, in degrees - */ - public void setHeading(double heading) { - orientation.setHeading(heading); - } - - /** - * Rotates the orientation by the specified angle along the Y-axis - * @param angle the angle to rotate by in degrees - */ - public void rotateHeading(double angle) { - orientation.rotateHeading(angle); - } - - /** - * Rotates the orientation by the specified angle along the specified axises - * @param angle the angle to rotate by in degrees - * @param axisX the amount of rotation about the x-axis - * @param axisY the amount of rotation about the x-axis - * @param axisZ the amount of rotation about the x-axis - */ - public void rotate(double angle, double axisX, double axisY, double axisZ) { - orientation.rotateDegrees(angle, axisX, axisY, axisZ); - } - - public void mergeWith(Location l) { - if (terrain == null || terrain != l.getTerrain()) - terrain = l.getTerrain(); - mergeLocation(l.getX(), l.getY(), l.getZ()); - mergeOrientation(l); - } - - public void mergeLocation(double lX, double lY, double lZ) { - if (!isEqual(getX(), lX)) - point.setX(lX); - if (!isEqual(getY(), lY)) - point.setY(lY); - if (!isEqual(getZ(), lZ)) - point.setZ(lZ); - } - - private void mergeOrientation(Location l) { - if (!isEqual(getOrientationX(), l.getOrientationX())) - orientation.setX(l.getOrientationX()); - if (!isEqual(getOrientationY(), l.getOrientationY())) - orientation.setY(l.getOrientationY()); - if (!isEqual(getOrientationZ(), l.getOrientationZ())) - orientation.setZ(l.getOrientationZ()); - if (!isEqual(getOrientationW(), l.getOrientationW())) - orientation.setW(l.getOrientationW()); - } - - public double getSpeed(Location l, double deltaTime) { - double dist = Math.sqrt(square(getX()-l.getX()) + square(getY()-l.getY()) + square(getZ()-l.getZ())); - return dist / deltaTime; - } - - public double getYaw() { - return orientation.getYaw(); - } - - private double square(double x) { - return x*x; - } - - public boolean equals(Object o) { - if (!(o instanceof Location)) - return false; - return equals((Location) o); - } - - public boolean equals(Location l) { - if (terrain != l.terrain) - return false; - if (!isEqual(l.getX(), getX())) - return false; - if (!isEqual(l.getY(), getY())) - return false; - if (!isEqual(l.getZ(), getZ())) - return false; - if (!isEqual(l.getOrientationX(), getOrientationX())) - return false; - if (!isEqual(l.getOrientationY(), getOrientationY())) - return false; - if (!isEqual(l.getOrientationZ(), getOrientationZ())) - return false; - if (!isEqual(l.getOrientationW(), getOrientationW())) - return false; - return true; - } - - public int hashCode() { - return hash(getX())*13 + hash(getY())*17 + hash(getZ())*19 + hash(getOrientationX())*23 + hash(getOrientationY())*29 + hash(getOrientationZ())*31 + hash(getOrientationW())*37; - } - - private int hash(double x) { - long v = Double.doubleToLongBits(x); - return (int)(v^(v>>>32)); - } - - private boolean isEqual(double x, double y) { - if (Double.isNaN(x)) - return Double.isNaN(y); - if (Double.isNaN(y)) - return false; - return Math.abs(x - y) <= 1E-7; - } - - @Override - public byte[] encode() { - ByteBuffer bb = ByteBuffer.allocate(28).order(ByteOrder.LITTLE_ENDIAN); - Packet.addFloat(bb, (float) (Double.isNaN(orientation.getX()) ? 0 : orientation.getX())); - Packet.addFloat(bb, (float) (Double.isNaN(orientation.getY()) ? 0 : orientation.getY())); - Packet.addFloat(bb, (float) (Double.isNaN(orientation.getZ()) ? 0 : orientation.getZ())); - Packet.addFloat(bb, (float) (Double.isNaN(orientation.getW()) ? 1 : orientation.getW())); - Packet.addFloat(bb, (float) (Double.isNaN(point.getX()) ? 0 : point.getX())); - Packet.addFloat(bb, (float) (Double.isNaN(point.getY()) ? 0 : point.getY())); - Packet.addFloat(bb, (float) (Double.isNaN(point.getZ()) ? 0 : point.getZ())); - return bb.array(); - } - - @Override - public void decode(ByteBuffer data) { - orientation.decode(data); - point.decode(data); - } - - @Override - public void save(NetBufferStream stream) { - stream.addByte(0); - orientation.save(stream); - point.save(stream); - stream.addBoolean(terrain != null); - if (terrain != null) - stream.addAscii(terrain.name()); - } - - @Override - public void read(NetBufferStream stream) { - stream.getByte(); - orientation.read(stream); - point.read(stream); - if (stream.getBoolean()) - terrain = Terrain.valueOf(stream.getAscii()); - } - - @Override - public String toString() { - return String.format("Location[TRN=%s, %s %s]", terrain, point, orientation); - } - - /** - * @param destination to get the distance for - * @return the distance between {@code this} and destination, which is ALWAYS positive. - */ - public double distanceTo(Location destination) { - return distanceTo(destination.getX(), destination.getY(), destination.getZ()); - } - - public double distanceTo(double dstX, double dstY, double dstZ) { - return Math.sqrt(square(dstX - getX()) + square(dstY - getY()) + square(dstZ - getZ())); - } -} diff --git a/src/resources/Point3D.java b/src/resources/Point3D.java deleted file mode 100644 index 879ff4c6d..000000000 --- a/src/resources/Point3D.java +++ /dev/null @@ -1,149 +0,0 @@ -/*********************************************************************************** -* Copyright (c) 2015 /// Project SWG /// www.projectswg.com * -* * -* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * -* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * -* Our goal is to create an emulator which will provide a server for players to * -* continue playing a game similar to the one they used to play. We are basing * -* it on the final publish of the game prior to end-game events. * -* * -* This file is part of Holocore. * -* * -* -------------------------------------------------------------------------------- * -* * -* Holocore 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. * -* * -* Holocore 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 Holocore. If not, see . * -* * -***********************************************************************************/ -package resources; - -import network.packets.Packet; -import resources.encodables.Encodable; -import resources.network.NetBufferStream; -import resources.persistable.Persistable; - -import java.nio.ByteBuffer; - -public class Point3D implements Encodable, Persistable { - - private double x; - private double y; - private double z; - - public Point3D() { - this(0, 0, 0); - } - - public Point3D(Point3D p) { - this(p.getX(), p.getY(), p.getZ()); - } - - public Point3D(double x, double y, double z) { - set(x, y, z); - } - - public double getX() { - return x; - } - - public double getY() { - return y; - } - - public double getZ() { - return z; - } - - public void setX(double x) { - this.x = x; - } - - public void setY(double y) { - this.y = y; - } - - public void setZ(double z) { - this.z = z; - } - - public void set(double x, double y, double z) { - setX(x); - setY(y); - setZ(z); - } - - public void translate(Point3D p) { - translate(p.getX(), p.getY(), p.getZ()); - } - - public void translate(double x, double y, double z) { - this.x += x; - this.y += y; - this.z += z; - } - - public void rotateAround(double x, double y, double z, Quaternion rot) { - rot.rotatePoint(this); - translate(x, y, z); - } - - @Override - public byte[] encode() { - ByteBuffer bb = ByteBuffer.allocate(12); - Packet.addFloat(bb, (float) x); - Packet.addFloat(bb, (float) y); - Packet.addFloat(bb, (float) z); - return bb.array(); - } - - @Override - public void decode(ByteBuffer data) { - x = Packet.getFloat(data); - y = Packet.getFloat(data); - z = Packet.getFloat(data); - } - - @Override - public void save(NetBufferStream stream) { - stream.addFloat((float) x); - stream.addFloat((float) y); - stream.addFloat((float) z); - } - - @Override - public void read(NetBufferStream stream) { - x = stream.getFloat(); - y = stream.getFloat(); - z = stream.getFloat(); - } - - public boolean equals(Object o) { - if (!(o instanceof Point3D)) - return false; - if (Math.abs(((Point3D) o).getX()-getX()) > 1E-7) - return false; - if (Math.abs(((Point3D) o).getY()-getY()) > 1E-7) - return false; - if (Math.abs(((Point3D) o).getZ()-getZ()) > 1E-7) - return false; - return true; - } - - public int hashCode() { - return Double.hashCode(getX()) ^ Double.hashCode(getY()) ^ Double.hashCode(getZ()); - } - - public String toString() { - return String.format("Point3D[%.2f, %.2f, %.2f]", x, y, z); - } -} diff --git a/src/resources/PvpFaction.java b/src/resources/PvpFaction.java index b83daa860..2fa1023f8 100644 --- a/src/resources/PvpFaction.java +++ b/src/resources/PvpFaction.java @@ -30,7 +30,8 @@ package resources; import java.util.HashMap; import java.util.Map; -import resources.common.CRC; +import com.projectswg.common.data.CRC; + public enum PvpFaction { diff --git a/src/resources/Quaternion.java b/src/resources/Quaternion.java deleted file mode 100644 index 50f0bc91f..000000000 --- a/src/resources/Quaternion.java +++ /dev/null @@ -1,221 +0,0 @@ -/*********************************************************************************** -* Copyright (c) 2015 /// Project SWG /// www.projectswg.com * -* * -* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * -* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * -* Our goal is to create an emulator which will provide a server for players to * -* continue playing a game similar to the one they used to play. We are basing * -* it on the final publish of the game prior to end-game events. * -* * -* This file is part of Holocore. * -* * -* -------------------------------------------------------------------------------- * -* * -* Holocore 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. * -* * -* Holocore 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 Holocore. If not, see . * -* * -***********************************************************************************/ -package resources; - -import network.packets.Packet; -import resources.encodables.Encodable; -import resources.network.NetBufferStream; -import resources.persistable.Persistable; - -import java.nio.ByteBuffer; - -public class Quaternion implements Encodable, Persistable { - - private final double [][] rotationMatrix; - private double x; - private double y; - private double z; - private double w; - - public Quaternion(Quaternion q) { - this(q.x, q.y, q.z, q.w); - } - - public Quaternion(double x, double y, double z, double w) { - this.x = x; - this.y = y; - this.z = z; - this.w = w; - this.rotationMatrix = new double[3][3]; - updateRotationMatrix(); - } - - public double getX() { - return x; - } - - public double getY() { - return y; - } - - public double getZ() { - return z; - } - - public double getW() { - return w; - } - - public double getYaw() { - return Math.toDegrees(Math.atan2(y*y, w*w)); - } - - public void setX(double x) { - this.x = x; - updateRotationMatrix(); - } - - public void setY(double y) { - this.y = y; - updateRotationMatrix(); - } - - public void setZ(double z) { - this.z = z; - updateRotationMatrix(); - } - - public void setW(double w) { - this.w = w; - updateRotationMatrix(); - } - - public void set(double x, double y, double z, double w) { - this.x = x; - this.y = y; - this.z = z; - this.w = w; - updateRotationMatrix(); - } - - public void set(Quaternion q) { - set(q.x, q.y, q.z, q.w); - } - - public void setHeading(double degrees) { - set(0, 0, 0, 1); - rotateHeading(degrees); - } - - public void rotateHeading(double degrees) { - rotateDegrees(degrees, 0, 1, 0); - } - - public void rotateDegrees(double degrees, double axisX, double axisY, double axisZ) { - double rad = Math.toRadians(degrees) / 2; - double sin = Math.sin(rad); - w = Math.cos(rad); - x = sin * axisX; - y = sin * axisY; - z = sin * axisZ; - normalize(); - } - - public void rotateByQuaternion(Quaternion q) { - double nW = w * q.w - x * q.x - y * q.y - z * q.z; - double nX = w * q.x + x * q.w + y * q.z - z * q.y; - double nY = w * q.y + y * q.w + z * q.x - x * q.z; - double nZ = w * q.z + z * q.w + x * q.y - y * q.x; - set(nX, nY, nZ, nW); - normalize(); - } - - public void rotatePoint(Point3D p) { - double nX = rotationMatrix[0][0]*p.getX() + rotationMatrix[0][1]*p.getY() + rotationMatrix[0][2]*p.getZ(); - double nY = rotationMatrix[1][0]*p.getX() + rotationMatrix[1][1]*p.getY() + rotationMatrix[1][2]*p.getZ(); - double nZ = rotationMatrix[2][0]*p.getX() + rotationMatrix[2][1]*p.getY() + rotationMatrix[2][2]*p.getZ(); - p.set(nX, nY, nZ); - } - - public void normalize() { - double mag = Math.sqrt(x * x + y * y + z * z + w * w); - x /= mag; - y /= mag; - z /= mag; - w /= mag; - updateRotationMatrix(); - } - - @Override - public byte[] encode() { - ByteBuffer bb = ByteBuffer.allocate(16); - Packet.addFloat(bb, (float) x); - Packet.addFloat(bb, (float) y); - Packet.addFloat(bb, (float) z); - Packet.addFloat(bb, (float) w); - return bb.array(); - } - - @Override - public void decode(ByteBuffer data) { - x = Packet.getFloat(data); - y = Packet.getFloat(data); - z = Packet.getFloat(data); - w = Packet.getFloat(data); - updateRotationMatrix(); - } - - @Override - public void save(NetBufferStream stream) { - stream.addFloat((float) x); - stream.addFloat((float) y); - stream.addFloat((float) z); - stream.addFloat((float) w); - } - - @Override - public void read(NetBufferStream stream) { - x = stream.getFloat(); - y = stream.getFloat(); - z = stream.getFloat(); - w = stream.getFloat(); - updateRotationMatrix(); - } - - public String toString() { - return String.format("Quaternion[%.3f, %.3f, %.3f, %.3f]", x, y, z, w); - } - - private void updateRotationMatrix() { - double x2 = x * x; - double y2 = y * y; - double z2 = z * z; - double w2 = w * w; - updateRotationMatrixX(x2, y2, z2, w2); - updateRotationMatrixY(x2, y2, z2, w2); - updateRotationMatrixZ(x2, y2, z2, w2); - } - - private void updateRotationMatrixX(double x2, double y2, double z2, double w2) { - rotationMatrix[0][0] = x2 + w2 - y2 - z2; - rotationMatrix[0][1] = 2*y*x - 2*z*w; - rotationMatrix[0][2] = 2*y*w + 2*z*x; - } - - private void updateRotationMatrixY(double x2, double y2, double z2, double w2) { - rotationMatrix[1][0] = 2*x*y + 2*w*z; - rotationMatrix[1][1] = y2 - z2 + w2 - x2; - rotationMatrix[1][2] = 2*z*y - 2*x*w; - } - - private void updateRotationMatrixZ(double x2, double y2, double z2, double w2) { - rotationMatrix[2][0] = 2*x*z - 2*w*y; - rotationMatrix[2][1] = 2*y*z + 2*w*x; - rotationMatrix[2][2] = z2 + w2 - x2 - y2; - } -} diff --git a/src/resources/Race.java b/src/resources/Race.java index b68ff5532..641496a8c 100644 --- a/src/resources/Race.java +++ b/src/resources/Race.java @@ -30,8 +30,8 @@ package resources; import java.util.HashMap; import java.util.Map; -import resources.client_info.ClientFactory; -import resources.common.CRC; +import com.projectswg.common.data.CRC; +import com.projectswg.common.data.swgfile.ClientFactory; public enum Race { diff --git a/src/resources/SkillMod.java b/src/resources/SkillMod.java index 33db0c4c8..73bb7ae57 100644 --- a/src/resources/SkillMod.java +++ b/src/resources/SkillMod.java @@ -30,9 +30,9 @@ package resources; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import resources.encodables.Encodable; -import resources.network.NetBufferStream; -import resources.persistable.Persistable; +import com.projectswg.common.encoding.Encodable; +import com.projectswg.common.network.NetBufferStream; +import com.projectswg.common.persistable.Persistable; public class SkillMod implements Encodable, Persistable { diff --git a/src/resources/Terrain.java b/src/resources/Terrain.java deleted file mode 100644 index dde731d4f..000000000 --- a/src/resources/Terrain.java +++ /dev/null @@ -1,194 +0,0 @@ -/*********************************************************************************** -* Copyright (c) 2015 /// Project SWG /// www.projectswg.com * -* * -* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * -* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * -* Our goal is to create an emulator which will provide a server for players to * -* continue playing a game similar to the one they used to play. We are basing * -* it on the final publish of the game prior to end-game events. * -* * -* This file is part of Holocore. * -* * -* -------------------------------------------------------------------------------- * -* * -* Holocore 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. * -* * -* Holocore 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 Holocore. If not, see . * -* * -***********************************************************************************/ -package resources; - -import java.util.Locale; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.ConcurrentHashMap; - -import resources.common.CRC; - - -public enum Terrain { - ADVENTURE1 ("terrain/adventure1.trn"), - ADVENTURE2 ("terrain/adventure2.trn"), - CHARACTER_FARM ("terrain/character_farm.trn"), - CINCO_CITY_TEST_M5 ("terrain/cinco_city_test_m5.trn"), - CORELLIA ("terrain/corellia.trn"), - CREATURE_TEST ("terrain/creature_test.trn"), - DANTOOINE ("terrain/dantooine.trn"), - DATHOMIR ("terrain/dathomir.trn"), - DEV_AREA ("terrain/tatooine.trn"), - DUNGEON1 ("terrain/dungeon1.trn"), - ENDOR_ASOMMERS ("terrain/endor_asommers.trn"), - ENDOR ("terrain/endor.trn"), - FLORATEST ("terrain/floratest.trn"), - GODCLIENT_TEST ("terrain/godclient_test.trn"), - GONE ("terrain/gone.trn"), - KASHYYYK_DEAD_FOREST ("terrain/kashyyyk_dead_forest.trn"), - KASHYYYK_HUNTING ("terrain/kashyyyk_hunting.trn"), - KASHYYYK_MAIN ("terrain/kashyyyk_main.trn"), - KASHYYYK_NORTH_DUNGEONS ("terrain/kashyyyk_north_dungeons.trn"), - KASHYYYK_POB_DUNGEONS ("terrain/kashyyyk_pob_dungeons.trn"), - KASHYYYK_RRYATT_TRAIL ("terrain/kashyyyk_rryatt_trail.trn"), - KASHYYYK_SOUTH_DUNGEONS ("terrain/kashyyyk_south_dungeons.trn"), - KASHYYYK ("terrain/kashyyyk.trn"), - LOK ("terrain/lok.trn"), - MUSTAFAR ("terrain/mustafar.trn"), - NABOO ("terrain/naboo.trn"), - OTOH_GUNGA ("terrain/otoh_gunga.trn"), - RIVERTEST ("terrain/rivertest.trn"), - RORI ("terrain/rori.trn"), - RUNTIMERULES ("terrain/runtimerules.trn"), - SIMPLE ("terrain/simple.trn"), - SPACE_CORELLIA_2 ("terrain/space_corellia_2.trn"), - SPACE_CORELLIA ("terrain/space_corellia.trn"), - SPACE_DANTOOINE ("terrain/space_dantooine.trn"), - SPACE_DATHOMIR ("terrain/space_dathomir.trn"), - SPACE_ENDOR ("terrain/space_endor.trn"), - SPACE_ENV ("terrain/space_env.trn"), - SPACE_HALOS ("terrain/space_halos.trn"), - SPACE_HEAVY1 ("terrain/space_heavy1.trn"), - SPACE_KASHYYYK ("terrain/space_kashyyyk.trn"), - SPACE_LIGHT1 ("terrain/space_light1.trn"), - SPACE_LOK ("terrain/space_lok.trn"), - SPACE_NABOO_2 ("terrain/space_naboo_2.trn"), - SPACE_NABOO ("terrain/space_naboo.trn"), - SPACE_NOVA_ORION ("terrain/space_nova_orion.trn"), - SPACE_NPE_FALCON_2 ("terrain/space_npe_falcon_2.trn"), - SPACE_NPE_FALCON_3 ("terrain/space_npe_falcon_3.trn"), - SPACE_NPE_FALCON ("terrain/space_npe_falcon.trn"), - SPACE_ORD_MANTELL_2 ("terrain/space_ord_mantell_2.trn"), - SPACE_ORD_MANTELL_3 ("terrain/space_ord_mantell_3.trn"), - SPACE_ORD_MANTELL_4 ("terrain/space_ord_mantell_4.trn"), - SPACE_ORD_MANTELL_5 ("terrain/space_ord_mantell_5.trn"), - SPACE_ORD_MANTELL_6 ("terrain/space_ord_mantell_6.trn"), - SPACE_ORD_MANTELL ("terrain/space_ord_mantell.trn"), - SPACE_TATOOINE_2 ("terrain/space_tatooine_2.trn"), - SPACE_TATOOINE ("terrain/space_tatooine.trn"), - SPACE_YAVIN4 ("terrain/space_yavin4.trn"), - TAANAB ("terrain/taanab.trn"), - TALUS ("terrain/talus.trn"), - TATOOINE ("terrain/tatooine.trn"), - TERRAIN_TEST ("terrain/terrain_test.trn"), - TEST_WEARABLES ("terrain/test_wearables.trn"), - TUSKAN_RAID_ENCOUNTER ("terrain/tuskan_raid_encounter.trn"), - TUTORIAL ("terrain/tutorial.trn"), - UMBRA ("terrain/umbra.trn"), - WATERTABLETEST ("terrain/watertabletest.trn"), - YAVIN4 ("terrain/yavin4.trn"); - - private static final Map CRC_TO_NAME = new ConcurrentHashMap<>(); - private static final Map NAME_TO_CRC = new ConcurrentHashMap<>(); - private static final Map NAME_TO_TERRAIN = new ConcurrentHashMap<>(); - private static final Map CRC_TO_TERRAIN = new ConcurrentHashMap<>(); - - private String file; - private String name; - private int crc; - - static { - for (Terrain p : values()) { - CRC_TO_TERRAIN.put(p.getCrc(), p); - CRC_TO_NAME.put(p.getCrc(), p.name()); - NAME_TO_CRC.put(p.name().toLowerCase(Locale.US), p.getCrc()); - NAME_TO_CRC.put(p.name().toLowerCase(Locale.US), p.getCrc()); - NAME_TO_TERRAIN.put(p.name().toLowerCase(Locale.US), p); - } - } - - Terrain(String file) { - this.file = file; - this.name = file.substring(8, file.length() - 4); - this.crc = CRC.getCrc(name); - } - - public String getFile() { return file; } - public String getName() { return name; } - public String getNameCapitalized() { return Character.toUpperCase(name.charAt(0)) + name.substring(1); } - public int getCrc() { return crc; } - - public Location getStartLocation() { - Location l = new Location(); - Random r = new Random(); - if (this == TATOOINE) { - l.setOrientationX(0); - l.setOrientationY(0); - l.setOrientationZ(0); - l.setOrientationW(1); - l.setX(3828 + r.nextInt(100) / 10 - 5); - l.setY(4); - l.setZ(-4804 + r.nextInt(100) / 10 - 5); - } - return l; - } - - public static int getTerrainCount() { - return CRC_TO_TERRAIN.size(); - } - - public static String getNameFromCrc(int crc) { - String name = CRC_TO_NAME.get(crc); - if (name == null) - return ""; - return name; - } - - public static int getCrcFromName(String name) { - Integer crc = NAME_TO_CRC.get(name.toLowerCase(Locale.ENGLISH)); - if (crc == null) - return 0; - return crc; - } - - /** - * Note: Defaults to TATOOINE - */ - public static Terrain getTerrainFromCrc(int crc) { - Terrain p = CRC_TO_TERRAIN.get(crc); - if (p == null) - return TATOOINE; - return p; - } - - /** - * Note: Defaults to TATOOINE - */ - public static Terrain getTerrainFromName(String name) { - Terrain p = NAME_TO_TERRAIN.get(name.toLowerCase(Locale.ENGLISH)); - if (p == null) - return TATOOINE; - return p; - } - - public static boolean doesTerrainExistForName(String name) { - return NAME_TO_TERRAIN.containsKey(name.toLowerCase(Locale.ENGLISH)); - } - -} diff --git a/src/resources/TravelPoint.java b/src/resources/TravelPoint.java index 7c2420368..bb783db9e 100644 --- a/src/resources/TravelPoint.java +++ b/src/resources/TravelPoint.java @@ -27,6 +27,8 @@ ***********************************************************************************/ package resources; +import com.projectswg.common.data.location.Location; + import resources.objects.SWGObject; import resources.objects.creature.CreatureObject; import services.galaxy.travel.TravelGroup; @@ -113,6 +115,7 @@ public final class TravelPoint implements Comparable { return name.hashCode(); } + @Override public String toString() { return String.format("TravelPoint[name=%s location=%s %s", name, location.getTerrain(), location.getPosition()); } diff --git a/src/resources/buildout/BuildoutArea.java b/src/resources/buildout/BuildoutArea.java index 544a2e832..27ccb2c58 100644 --- a/src/resources/buildout/BuildoutArea.java +++ b/src/resources/buildout/BuildoutArea.java @@ -27,8 +27,8 @@ ***********************************************************************************/ package resources.buildout; -import resources.Location; -import resources.Terrain; +import com.projectswg.common.data.location.Location; +import com.projectswg.common.data.location.Terrain; public class BuildoutArea implements Comparable { diff --git a/src/resources/buildout/BuildoutAreaGrid.java b/src/resources/buildout/BuildoutAreaGrid.java index 60c9f0971..929697934 100644 --- a/src/resources/buildout/BuildoutAreaGrid.java +++ b/src/resources/buildout/BuildoutAreaGrid.java @@ -30,7 +30,8 @@ package resources.buildout; import java.util.ArrayList; import java.util.List; -import resources.Terrain; +import com.projectswg.common.data.location.Terrain; + public class BuildoutAreaGrid { diff --git a/src/resources/chat/ChatAvatar.java b/src/resources/chat/ChatAvatar.java index 1c0362b01..3d8ab9ea2 100644 --- a/src/resources/chat/ChatAvatar.java +++ b/src/resources/chat/ChatAvatar.java @@ -26,16 +26,16 @@ ******************************************************************************/ package resources.chat; -import resources.encodables.CachedEncode; -import resources.encodables.Encodable; -import resources.network.NetBuffer; -import resources.network.NetBufferStream; -import resources.persistable.Persistable; -import resources.player.Player; - import java.nio.ByteBuffer; import java.util.Locale; +import com.projectswg.common.encoding.CachedEncode; +import com.projectswg.common.encoding.Encodable; +import com.projectswg.common.network.NetBuffer; +import com.projectswg.common.network.NetBufferStream; +import com.projectswg.common.persistable.Persistable; + +import resources.player.Player; import services.CoreManager; public class ChatAvatar implements Encodable, Persistable { diff --git a/src/resources/chat/ChatRoom.java b/src/resources/chat/ChatRoom.java index 636ef1891..2c6f09dde 100644 --- a/src/resources/chat/ChatRoom.java +++ b/src/resources/chat/ChatRoom.java @@ -26,19 +26,20 @@ ******************************************************************************/ package resources.chat; -import network.packets.Packet; -import network.packets.swg.SWGPacket; -import network.packets.swg.zone.chat.ChatRoomMessage; -import resources.encodables.Encodable; -import resources.encodables.OutOfBandPackage; -import resources.network.NetBufferStream; -import resources.persistable.Persistable; -import services.player.PlayerManager; - import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; +import com.projectswg.common.encoding.Encodable; +import com.projectswg.common.network.NetBufferStream; +import com.projectswg.common.persistable.Persistable; + +import network.packets.Packet; +import network.packets.swg.SWGPacket; +import network.packets.swg.zone.chat.ChatRoomMessage; +import resources.encodables.OutOfBandPackage; +import services.player.PlayerManager; + public class ChatRoom implements Encodable, Persistable { private int id; diff --git a/src/resources/client_info/ChunkReader.java b/src/resources/client_info/ChunkReader.java deleted file mode 100644 index e36ec06a9..000000000 --- a/src/resources/client_info/ChunkReader.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 /// Project SWG /// www.projectswg.com - * - * ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on - * July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. - * Our goal is to create an emulator which will provide a server for players to - * continue playing a game similar to the one they used to play. We are basing - * it on the final publish of the game prior to end-game events. - * - * This file is part of Holocore. - * - * -------------------------------------------------------------------------------- - * - * Holocore 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. - * - * Holocore 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 Holocore. If not, see - ******************************************************************************/ - -package resources.client_info; - -/** - * @author Waverunner - */ -public interface ChunkReader { - void handleReadChunk(IffNode chunk); -} diff --git a/src/resources/client_info/ClientData.java b/src/resources/client_info/ClientData.java deleted file mode 100644 index 350a23bf5..000000000 --- a/src/resources/client_info/ClientData.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 /// Project SWG /// www.projectswg.com - * - * ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on - * July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. - * Our goal is to create an emulator which will provide a server for players to - * continue playing a game similar to the one they used to play. We are basing - * it on the final publish of the game prior to end-game events. - * - * This file is part of Holocore. - * - * -------------------------------------------------------------------------------- - * - * Holocore 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. - * - * Holocore 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 Holocore. If not, see - ******************************************************************************/ - -package resources.client_info; - -/** - * Created by Waverunner on 6/9/2015 - */ -public abstract class ClientData { - public void readIff(SWGFile iff) {} - public void writeIff(SWGFile iff) {} -} diff --git a/src/resources/client_info/ClientFactory.java b/src/resources/client_info/ClientFactory.java deleted file mode 100644 index 028cfe58c..000000000 --- a/src/resources/client_info/ClientFactory.java +++ /dev/null @@ -1,240 +0,0 @@ -/*********************************************************************************** -* Copyright (c) 2015 /// Project SWG /// www.projectswg.com * -* * -* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * -* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * -* Our goal is to create an emulator which will provide a server for players to * -* continue playing a game similar to the one they used to play. We are basing * -* it on the final publish of the game prior to end-game events. * -* * -* This file is part of Holocore. * -* * -* -------------------------------------------------------------------------------- * -* * -* Holocore 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. * -* * -* Holocore 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 Holocore. If not, see . * -* * -***********************************************************************************/ -package resources.client_info; - -import java.lang.ref.SoftReference; -import java.util.HashMap; -import java.util.Map; - -import resources.client_info.visitors.CrcStringTableData; -import resources.client_info.visitors.DatatableData; -import resources.client_info.visitors.ObjectData; -import resources.client_info.visitors.PortalLayoutData; -import resources.client_info.visitors.ProfTemplateData; -import resources.client_info.visitors.SlotArrangementData; -import resources.client_info.visitors.SlotDefinitionData; -import resources.client_info.visitors.SlotDescriptorData; -import resources.client_info.visitors.WorldSnapshotData; -import resources.client_info.visitors.appearance.AppearanceTemplateData; -import resources.client_info.visitors.appearance.AppearanceTemplateList; -import resources.client_info.visitors.appearance.BasicSkeletonTemplate; -import resources.client_info.visitors.appearance.DetailedAppearanceTemplateData; -import resources.client_info.visitors.appearance.LodMeshGeneratorTemplateData; -import resources.client_info.visitors.appearance.LodSkeletonTemplateData; -import resources.client_info.visitors.appearance.MeshAppearanceTemplate; -import resources.client_info.visitors.appearance.SkeletalAppearanceData; -import resources.client_info.visitors.appearance.SkeletalMeshGeneratorTemplateData; -import resources.client_info.visitors.shader.CustomizableShaderData; -import resources.client_info.visitors.shader.StaticShaderData; - -import com.projectswg.common.debug.Log; - -public class ClientFactory extends DataFactory { - - private static final ClientFactory INSTANCE = new ClientFactory(); - - private Map > dataMap = new HashMap<>(); - private Map typeMap = new HashMap<>(); - - /** - * Creates a new instance of ClientFactory. - *
- *
- * In order to add parsing for an IFF type which is not yet parsed: - *
    - *
  1. Create a new class which extends {@link ClientData}. - *
  2. Perform the parsing of each node within the parse method using switch-case statements for different node names. - *
  3. Add a new entry to the typeMap through populateTypeMap() method by adding in the name of the folder/node you're parsing - * as the Key and the name of the class that was just created as the Value. - *
  4. Add in a case statement in the createDataObject method returning a new instance of the class, the case being the Value - * that was entered in Step 3. - *
- */ - public ClientFactory() { - populateTypeMap(); - } - - /** - * Retrieves information from a client file used by SWG. Parsing of the file is done internally using {@link ClientData} which also - * stores the variables and is the returned type. Retrieving info from this file puts a reference of the returned - * {@link ClientData} into a {@link HashMap}. Future calls for this file will try and obtain this reference if it's not null to prevent - * the file from being parsed multiple times if the save variable is true. - * @param file The SWG file you wish to get information from which resides in the ./clientdata/ folder. - * Example: creation/profession_defaults_combat_brawler.iff - * @return Specific visitor type of {@link ClientData} relating to the chosen file. For example, loading the file - * creation/profession_defaults_combat_brawler.iff would return an instance of {@link ProfTemplateData} extended from {@link ClientData}. - * A null instance of {@link ClientData} means that parsing for the type of file is not done, or a file was entered that doesn't exist on the - * file system. - * @param save Future calls for this file will try and obtain this reference if it's not null to prevent the file from being parsed multiple times - */ - public synchronized static ClientData getInfoFromFile(String file, boolean save) { - file = file.intern(); - ClientFactory factory = ClientFactory.getInstance(); - SoftReference reference = factory.dataMap.get(file); - ClientData data = null; - if (reference != null) - data = reference.get(); - - if (data == null) { - data = factory.readFile(file); - if (data == null) { - return null; - } - reference = new SoftReference(data); - - // Soft used over Weak because Weak cleared as soon as the reference was not longer needed, Soft will be cleared when memory is needed by the JVM. - if (save) { - factory.dataMap.put(file, reference); - } - } - - return data; - } - - /** - * Retrieves information from a client file used by SWG. Parsing of the file is done internally using {@link ClientData} which also - * stores the variables and is the returned type. - * @param file The SWG file you wish to get information from which resides in the ./clientdata/ folder. - * Example: creation/profession_defaults_combat_brawler.iff - * @return Specific visitor type of {@link ClientData} relating to the chosen file. For example, loading the file - * creation/profession_defaults_combat_brawler.iff would return an instance of {@link ProfTemplateData} extended from {@link ClientData}. - * A null instance of {@link ClientData} means that parsing for the type of file is not done, or a file was entered that doesn't exist on the - * file system. - */ - public synchronized static ClientData getInfoFromFile(String file) { - return getInfoFromFile(file, false); - } - - public synchronized static String formatToSharedFile(String original) { - if (original.contains("shared_")) - return original.intern(); - - int index = original.lastIndexOf('/'); - return (original.substring(0, index) + "/shared_" + original.substring(index+1)).intern(); - } - - // Any time a new DataObject is coded for parsing a file, it will need to be added in populateTypeMap() along with a new return - // of that instance so the file can be parsed. The type is the name of the folder/node which is then used to get the value associated - // with it in the typeMap (value being the name of the Class preferably). If populateTypeMap() does not contain that node, then null is returned - // and getFileType method will print out what the type is along with a "not implemented!" message. - @Override - protected ClientData createDataObject(String type) { - String c = typeMap.get(type); - if (c == null) { - Log.e("Don't know what class to use for " + type); - return null; - } - - switch (c) { - case "": return null; // Disabled clientdata - case "AppearanceTemplateData": return new AppearanceTemplateData(); - case "AppearanceTemplateList": return new AppearanceTemplateList(); - case "BasicSkeletonTemplate": return new BasicSkeletonTemplate(); - case "CrcStringTableData": return new CrcStringTableData(); - case "CustomizableShaderData": return new CustomizableShaderData(); - case "DatatableData": return new DatatableData(); - case "DetailedAppearanceTemplateData": return new DetailedAppearanceTemplateData(); - case "LodMeshGeneratorTemplateData": return new LodMeshGeneratorTemplateData(); - case "LodSkeletonTemplateData": return new LodSkeletonTemplateData(); - case "MeshAppearanceTemplate": return new MeshAppearanceTemplate(); - case "ObjectData": return new ObjectData(); - case "PortalLayoutData": return new PortalLayoutData(); - case "ProfTemplateData": return new ProfTemplateData(); - case "SlotDescriptorData": return new SlotDescriptorData(); - case "SlotDefinitionData": return new SlotDefinitionData(); - case "SlotArrangementData": return new SlotArrangementData(); - case "SkeletalAppearanceData": return new SkeletalAppearanceData(); - case "SkeletalMeshGeneratorTemplateData": return new SkeletalMeshGeneratorTemplateData(); - case "StaticShaderData": return new StaticShaderData(); - case "WorldSnapshotData": return new WorldSnapshotData(); - default: Log.e("Unimplemented typeMap value: " + c); return null; - } - } - - // The typeMap is used for determining what DataObject class - private void populateTypeMap() { - typeMap.put("CSTB", "CrcStringTableData"); - typeMap.put("DTII", "DatatableData"); - typeMap.put("PRTO", "PortalLayoutData"); - typeMap.put("PRFI", "ProfTemplateData"); - typeMap.put("ARGD", "SlotArrangementData"); - typeMap.put("0006", "SlotDefinitionData"); - typeMap.put("SLTD", "SlotDescriptorData"); - typeMap.put("WSNP", "WorldSnapshotData"); - // Appearance Related Data - boolean loadAppearanceData = false; - typeMap.put("APPR", !loadAppearanceData?"":"AppearanceTemplateData"); - typeMap.put("APT ", !loadAppearanceData?"":"AppearanceTemplateList"); - typeMap.put("CSHD", !loadAppearanceData?"":"CustomizableShaderData"); - typeMap.put("DTLA", !loadAppearanceData?"":"DetailedAppearanceTemplateData"); - typeMap.put("SKTM", !loadAppearanceData?"":"BasicSkeletonTemplate"); - typeMap.put("MESH", !loadAppearanceData?"":"MeshAppearanceTemplate"); - typeMap.put("MLOD", !loadAppearanceData?"":"LodMeshGeneratorTemplateData"); - typeMap.put("SLOD", !loadAppearanceData?"":"LodSkeletonTemplateData"); - typeMap.put("SMAT", !loadAppearanceData?"":"SkeletalAppearanceData"); - typeMap.put("SKMG", !loadAppearanceData?"":"SkeletalMeshGeneratorTemplateData"); - typeMap.put("SSHT", !loadAppearanceData?"":"StaticShaderData"); - // Objects - typeMap.put("SBMK", "ObjectData"); // object/battlefield_marker - typeMap.put("SBOT", "ObjectData"); // object/building - typeMap.put("CCLT", "ObjectData"); // object/cell - typeMap.put("SCNC", "ObjectData"); // object/construction_contract - typeMap.put("SCOU", "ObjectData"); // object/counting - typeMap.put("SCOT", "ObjectData"); // object/creature && object/mobile - typeMap.put("SDSC", "ObjectData"); // object/draft_schematic - typeMap.put("SFOT", "ObjectData"); // object/factory - typeMap.put("SGRP", "ObjectData"); // object/group - typeMap.put("SGLD", "ObjectData"); // object/guild - typeMap.put("SIOT", "ObjectData"); // object/installation - typeMap.put("SITN", "ObjectData"); // object/intangible - typeMap.put("SJED", "ObjectData"); // object/jedi_manager - typeMap.put("SMSC", "ObjectData"); // object/manufacture_schematic - typeMap.put("SMSO", "ObjectData"); // object/mission - typeMap.put("SHOT", "ObjectData"); // object/object - typeMap.put("STOT", "ObjectData"); // object/path_waypoint && object/tangible - typeMap.put("SPLY", "ObjectData"); // object/player - typeMap.put("SPQO", "ObjectData"); // object/player_quest - typeMap.put("RCCT", "ObjectData"); // object/resource_container - typeMap.put("SSHP", "ObjectData"); // object/ship - typeMap.put("STAT", "ObjectData"); // object/soundobject && object/static - typeMap.put("STOK", "ObjectData"); // object/token - typeMap.put("SUNI", "ObjectData"); // object/universe - typeMap.put("SWAY", "ObjectData"); // object/waypoint - typeMap.put("SWOT", "ObjectData"); // object/weapon - // - } - - @Override - protected String getFolder() { - return "./clientdata/"; - } - - private static ClientFactory getInstance() { - return INSTANCE; - } -} diff --git a/src/resources/client_info/DataFactory.java b/src/resources/client_info/DataFactory.java deleted file mode 100644 index 8d7e2e65b..000000000 --- a/src/resources/client_info/DataFactory.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 /// Project SWG /// www.projectswg.com - * - * ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on - * July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. - * Our goal is to create an emulator which will provide a server for players to - * continue playing a game similar to the one they used to play. We are basing - * it on the final publish of the game prior to end-game events. - * - * This file is part of Holocore. - * - * -------------------------------------------------------------------------------- - * - * Holocore 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. - * - * Holocore 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 Holocore. If not, see - ******************************************************************************/ - -package resources.client_info; - -import java.io.File; -import java.io.IOException; -import java.nio.channels.ClosedChannelException; - -import com.projectswg.common.debug.Log; - - -/** - * Created by Waverunner on 6/9/2015 - */ -public abstract class DataFactory { - - protected ClientData readFile(String filename) { - if (filename == null || filename.isEmpty()) { - Log.e("File cannot be null or empty!"); - return null; - } - File file = new File(getFolder() + filename); - if (!file.isFile()) { - Log.e("Not a file: " + file); - return null; - } - - SWGFile swgFile = new SWGFile(); - - try { - swgFile.read(file); - } catch (IOException e) { - if (e instanceof ClosedChannelException) - return null; - Log.e(e); - } - - ClientData clientData = createDataObject(swgFile.getType()); - if (clientData == null) - return null; - - clientData.readIff(swgFile); - return clientData; - } - - protected File writeFile(SWGFile swgFile, ClientData data) { - if (swgFile == null || data == null) { - Log.e("File or data objects cannot be null or empty!"); - return null; - } - - File save = new File(swgFile.getFileName()); - data.writeIff(swgFile); - try { - swgFile.save(save); - } catch (IOException e) { - Log.e(e); - } - - return save; - } - - protected abstract ClientData createDataObject(String type); - protected ClientData createDataObject(SWGFile swgFile) { - return createDataObject(swgFile.getType()); - } - - protected abstract String getFolder(); -} diff --git a/src/resources/client_info/IffNode.java b/src/resources/client_info/IffNode.java deleted file mode 100644 index f3d56c2c9..000000000 --- a/src/resources/client_info/IffNode.java +++ /dev/null @@ -1,324 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 /// Project SWG /// www.projectswg.com - *

- * ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on July 7th, 2011 after SOE announced the - * official shutdown of Star Wars Galaxies. Our goal is to create an emulator which will provide a server for players to - * continue playing a game similar to the one they used to play. We are basing it on the final publish of the game prior - * to end-game events. - *

- * This file is part of Holocore. - *

- * -------------------------------------------------------------------------------- - *

- * Holocore 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. - *

- * Holocore 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 Holocore. If not, see - * - ******************************************************************************/ - -package resources.client_info; - -import resources.Point3D; -import utilities.ByteUtilities; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -/** - * Created by Waverunner on 6/7/2015 - */ -public class IffNode { - - private String tag; - private boolean isForm; - private boolean read; - private IffNode parent; - private List children; - private byte[] chunkData; - private ByteBuffer bb; - private Iterator childrenItr; - - public IffNode() { - children = new LinkedList<>(); - } - - public IffNode(String tag, boolean isForm) { - this(); - this.tag = tag; - this.isForm = isForm; - } - - public void printTree() { - printTree(this, 0); - } - - private void printTree(IffNode node, int depth) { - for (int i = 0; i < depth; i++) - System.out.print("\t"); - System.out.println(node.getTag()+":form="+node.isForm()); - for (IffNode child : node.getChildren()) { - printTree(child, depth+1); - } - } - - public void addChild(IffNode child) { - children.add(child); - } - - public int remaining() { - initBuffer(); - return bb.remaining(); - } - - public byte readByte() { - initBuffer(); - return bb.get(); - } - - public void writeByte(byte val) { - bb.order(ByteOrder.LITTLE_ENDIAN).put(val); - } - - public short readShort() { - initBuffer(); - return bb.order(ByteOrder.LITTLE_ENDIAN).getShort(); - } - - public void writeShort(short val) { - bb.order(ByteOrder.LITTLE_ENDIAN).putShort(val); - } - - public int readInt() { - initBuffer(); - return bb.order(ByteOrder.LITTLE_ENDIAN).getInt(); - } - - public void writeInt(int val) { - bb.order(ByteOrder.LITTLE_ENDIAN).putInt(val); - } - - public float readFloat() { - initBuffer(); - return bb.order(ByteOrder.LITTLE_ENDIAN).getFloat(); - } - - public void writeFloat(float val) { - bb.putFloat(val); - } - - public long readLong() { - initBuffer(); - return bb.order(ByteOrder.LITTLE_ENDIAN).getLong(); - } - - public void writeLong(long val) { - bb.order(ByteOrder.LITTLE_ENDIAN).putLong(val); - } - - public int readUInt() { - initBuffer(); - return bb.order(ByteOrder.BIG_ENDIAN).getInt(); - } - - public short readUShort() { - initBuffer(); - return bb.order(ByteOrder.BIG_ENDIAN).getShort(); - } - - public long readULong() { - initBuffer(); - return bb.order(ByteOrder.BIG_ENDIAN).getLong(); - } - - public boolean readBoolean() { - return readByte() == 1; - } - - public void skip(int offset) { - initBuffer(); - bb.position(bb.position() + offset); - } - - public String readString() { - initBuffer(); - String string = ByteUtilities.nextString(bb); - if (bb.hasRemaining()) - bb.get(); - return string.intern(); - } - - public void writeString(String s) { - bb.put(s.getBytes(Charset.forName("US-ASCII"))); - writeByte((byte) 0); - } - - public Point3D readVector() { - initBuffer(); - return new Point3D(readFloat(), readFloat(), readFloat()); - } - - public void writeVector(Point3D vector) { - writeFloat((float) vector.getX()); - writeFloat((float) vector.getY()); - writeFloat((float) vector.getZ()); - } - - public void readChunk(ChunkReader reader) { - initBuffer(); - while(bb.hasRemaining()) { - reader.handleReadChunk(this); - } - } - - public byte[] getBytes() { - return isForm ? createForm() : createChunk(); - } - - public String getTag() { - return tag; - } - - public int getVersionFromTag() { - return Integer.parseInt(tag); - } - - public List getChildren() { - return children; - } - - public boolean isForm() { - return isForm; - } - - public boolean hasBeenRead() { - return read; - } - - public IffNode getNextUnreadChunk() { - while(childrenItr.hasNext()) { - IffNode child = childrenItr.next(); - if (!child.isForm && !child.hasBeenRead()) - return child; - } - return null; - } - - public IffNode getNextUnreadForm() { - while(childrenItr.hasNext()) { - IffNode child = childrenItr.next(); - if (child.isForm && !child.hasBeenRead()) - return child; - } - return null; - } - - public void setHasBeenRead(boolean read) { - this.read = read; - } - - public byte[] getChunkData() { - if (chunkData == null) - System.err.println("Null chunk data for " + tag + " Form=" + isForm); - return chunkData; - } - - public void setChunkData(ByteBuffer chunkData) { - this.chunkData = chunkData.array(); - } - - public IffNode getParent() { - return parent; - } - - public int populateFromBuffer(ByteBuffer bb) { - String nodeTag = getTag(bb); - if (!nodeTag.equals("FORM")) { - tag = nodeTag; - return 4 + readChunk(bb); - } else return 4 + readForm(bb); - } - - private void initBuffer() { - if (bb == null) bb = ByteBuffer.wrap(getChunkData()); - } - - public void initWriteBuffer(int size) { - bb = ByteBuffer.allocate(size); - } - - public void updateChunk() { - chunkData = bb.array(); - } - - private byte[] createForm() { - List childrenData = new ArrayList<>(); - int size = 0; - for (IffNode child : children) { - byte[] subData = child.getBytes(); - size += subData.length; - childrenData.add(subData); - } - ByteBuffer bb = ByteBuffer.allocate(size + 12).order(ByteOrder.LITTLE_ENDIAN); - bb.put("FORM".getBytes(Charset.forName("US-ASCII"))); - bb.order(ByteOrder.BIG_ENDIAN).putInt(size + 4); - bb.put(tag.getBytes(Charset.forName("US-ASCII"))); - for (byte[] bytes : childrenData) { - bb.put(bytes); - } - return bb.array(); - } - - private int readForm(ByteBuffer bb) { - isForm = true; - int size = bb.getInt(); // Size includes the "FORM" length (4) - tag = getTag(bb); - for (int read = 4; read < size; ) { - IffNode child = new IffNode(); - child.parent = this; - - read += child.populateFromBuffer(bb); - addChild(child); - } - childrenItr = children.listIterator(); - - return 4 + size; - } - - private byte[] createChunk() { - ByteBuffer byteBuffer = ByteBuffer.allocate(8 + chunkData.length).order(ByteOrder.LITTLE_ENDIAN); - byteBuffer.put(tag.getBytes(Charset.forName("US-ASCII"))); - byteBuffer.order(ByteOrder.BIG_ENDIAN).putInt(chunkData.length); - byteBuffer.put(chunkData); - return byteBuffer.array(); - } - - private int readChunk(ByteBuffer bb) { - isForm = false; - chunkData = new byte[bb.getInt()]; - bb.get(chunkData); - return 4 + chunkData.length; - } - - private String getTag(ByteBuffer bb) { - byte[] tagBytes = new byte[4]; - bb.get(tagBytes); - return new String(tagBytes, StandardCharsets.UTF_8); - } - - @Override - public String toString() { - return "IffNode[tag='" + tag + '\'' + ", read=" + read + ", parent=" + parent + ", isForm=" + isForm + "]"; - } -} \ No newline at end of file diff --git a/src/resources/client_info/SWGFile.java b/src/resources/client_info/SWGFile.java deleted file mode 100644 index 30b5b62ac..000000000 --- a/src/resources/client_info/SWGFile.java +++ /dev/null @@ -1,253 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 /// Project SWG /// www.projectswg.com - * - * ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on - * July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. - * Our goal is to create an emulator which will provide a server for players to - * continue playing a game similar to the one they used to play. We are basing - * it on the final publish of the game prior to end-game events. - * - * This file is part of Holocore. - * - * -------------------------------------------------------------------------------- - * - * Holocore 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. - * - * Holocore 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 Holocore. If not, see - ******************************************************************************/ - -package resources.client_info; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.MappedByteBuffer; -import java.nio.channels.FileChannel; -import java.nio.charset.StandardCharsets; - -import com.projectswg.common.debug.Log; - - -/** - * Created by Waverunner on 6/4/2015 - */ -public class SWGFile { - - private String type; - private IffNode master; - private IffNode currentForm; - private String fileName; - - public SWGFile() {} - - public SWGFile(String fileName, String type) { - this(type); - this.fileName = fileName; - } - - public SWGFile(String type) { - this.type = type; - this.master = new IffNode(type, true); - this.currentForm = master; - } - - public void printTree() { - printTree(master, 0); - } - - private void printTree(IffNode node, int depth) { - for (int i = 0; i < depth; i++) - System.out.print("\t"); - System.out.println(node.getTag()+":form="+node.isForm()); - for (IffNode child : node.getChildren()) - printTree(child, depth+1); - } - - public void save(File file) throws IOException { - try (FileOutputStream outputStream = new FileOutputStream(file, false)) { - outputStream.write(getData()); - } - } - - public void read(File file) throws IOException { - FileChannel channel = FileChannel.open(file.toPath()); - MappedByteBuffer bb = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); - int size = (int) channel.size(); - channel.close(); - - master = new IffNode("", true); - currentForm = master; - - if (!isValidIff(bb, size)) { - Log.e("Tried to open a file not in a valid Interchangeable File Format: " + file.getAbsolutePath()); - return; - } - - if (size != master.populateFromBuffer(bb)) { - Log.e("Size mismatch between population result and channel size: " + file.getAbsolutePath()); - return; - } - - type = master.getTag(); - fileName = file.getAbsolutePath(); - } - - private boolean isValidIff(ByteBuffer buffer, int size) { - buffer.mark(); - - byte[] tag = new byte[4]; - buffer.get(tag); - String root = new String(tag, StandardCharsets.UTF_8); - if (!root.equals("FORM")) - return false; - - int formSize = buffer.getInt(); - if (size != (formSize) + 8) - return false; - - buffer.reset(); - return true; - } - - public IffNode addForm(String tag) { - return addForm(tag, true); - } - - public IffNode addForm(String tag, boolean enterForm) { - IffNode form = new IffNode(tag, true); - currentForm.addChild(form); - - if (enterForm) - currentForm = form; - - return form; - } - - public IffNode addChunk(String tag) { - IffNode chunk = new IffNode(tag, false); - currentForm.addChild(chunk); - return chunk; - } - - public boolean hasNextForm() { - return currentForm.getNextUnreadForm() != null; - } - - /** - * Enters the next unread form based off of the current form - * @return Entered form - */ - public IffNode enterNextForm() { - IffNode next = currentForm.getNextUnreadForm(); - if (next == null) - return null; - - next.setHasBeenRead(true); - currentForm = next; - - return next; - } - - /** - * Enters the next unread form based off of the current forms children with the given tag - * @param tag Form tag to enter - * @return Entered form - */ - public IffNode enterForm(String tag) { - for (IffNode child : currentForm.getChildren()) { - if (!child.isForm() || child.hasBeenRead()) - continue; - - if (child.getTag().equals(tag) && child != currentForm) { - currentForm = child; - child.setHasBeenRead(true); - return child; - } - } - return null; - } - - /** - * Enters the next unread chunk with the given tag - * @param tag Tag of the chunk to enter - * @return Entered chunk - */ - public IffNode enterChunk(String tag) { - for (IffNode child : currentForm.getChildren()) { - if (child.isForm() || child.hasBeenRead()) - continue; - - if (child.getTag().equals(tag)) { - child.setHasBeenRead(true); - return child; - } - } - return null; - } - - /** - * Enters the next chunk based off of the current forms children - * @return Entered chunk - */ - public IffNode enterNextChunk() { - for (IffNode child : currentForm.getChildren()) { - if (child.isForm() || child.hasBeenRead()) - continue; - - child.setHasBeenRead(true); - return child; - } - return null; - } - - public IffNode exitForm() { - IffNode parent = currentForm.getParent(); - if (parent != null) { -// System.out.println("Exit form " + currentForm.getTag() + " to enter form " + parent.getTag()); - currentForm = parent; - } - - return currentForm; - } - - public boolean containsUnreadChunk(String tag) { - for (IffNode child : currentForm.getChildren()) { - if (child.isForm() || child.hasBeenRead()) - continue; - - if (child.getTag().equals(tag)) - return true; - } - return false; - } - - public byte[] getData() { - return master.getBytes(); - } - - public String getType() { - return type; - } - - public IffNode getMaster() { - return master; - } - - public IffNode getCurrentForm() { - return currentForm; - } - - public String getFileName() { - return fileName; - } -} \ No newline at end of file diff --git a/src/resources/client_info/ServerFactory.java b/src/resources/client_info/ServerFactory.java index 5c818806c..5c933bf67 100644 --- a/src/resources/client_info/ServerFactory.java +++ b/src/resources/client_info/ServerFactory.java @@ -38,9 +38,11 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import resources.client_info.visitors.DatatableData; -import resources.client_info.visitors.DatatableData.ColumnType; - +import com.projectswg.common.data.swgfile.ClientData; +import com.projectswg.common.data.swgfile.DataFactory; +import com.projectswg.common.data.swgfile.SWGFile; +import com.projectswg.common.data.swgfile.visitors.DatatableData; +import com.projectswg.common.data.swgfile.visitors.DatatableData.ColumnType; import com.projectswg.common.debug.Log; diff --git a/src/resources/client_info/visitors/CrcStringTableData.java b/src/resources/client_info/visitors/CrcStringTableData.java deleted file mode 100644 index ca36d01c2..000000000 --- a/src/resources/client_info/visitors/CrcStringTableData.java +++ /dev/null @@ -1,99 +0,0 @@ -/*********************************************************************************** - * Copyright (c) 2015 /// Project SWG /// www.projectswg.com * - * * - * ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * - * July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * - * Our goal is to create an emulator which will provide a server for players to * - * continue playing a game similar to the one they used to play. We are basing * - * it on the final publish of the game prior to end-game events. * - * * - * This file is part of Holocore. * - * * - * -------------------------------------------------------------------------------- * - * * - * Holocore 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. * - * * - * Holocore 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 Holocore. If not, see . * - * * - ***********************************************************************************/ -package resources.client_info.visitors; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import resources.client_info.ClientData; -import resources.client_info.IffNode; -import resources.client_info.SWGFile; - -public class CrcStringTableData extends ClientData { - - private final Map crcMap = new HashMap<>(); - private final Map reverseCrcMap = new HashMap<>(); - - @Override - public void readIff(SWGFile iff) { - iff.enterNextForm(); // Version - int [] crcList = null; - int count = 0; - - IffNode chunk; - while ((chunk = iff.enterNextChunk()) != null) { - switch (chunk.getTag()) { - case "DATA": - count = chunk.readInt(); - crcList = new int[count]; - break; - case "CRCT": - for (int i = 0; i < count; ++i) { - crcList[i] = chunk.readInt(); - } - break; - case "STRT": - chunk.skip(count * 4); // Start List -- not needed - break; - case "STNG": - for (int i = 0; i < count; ++i) { - String str = chunk.readString(); - crcMap.put(crcList[i], str); - reverseCrcMap.put(str, crcList[i]); - } - break; - default: - break; - } - } - } - - public boolean isValidCrc(int crc) { - return reverseCrcMap.containsValue(crc); - } - - public String getTemplateString(int crc) { - return crcMap.get(crc); - } - - public int getCrcForString(String str) { - Integer crc = reverseCrcMap.get(str); - return crc == null ? 0 : crc.intValue(); - } - - public Map getCrcMap() { - return Collections.unmodifiableMap(crcMap); - } - - public List getStrings() { - return new ArrayList<>(reverseCrcMap.keySet()); - } -} diff --git a/src/resources/client_info/visitors/DatatableData.java b/src/resources/client_info/visitors/DatatableData.java deleted file mode 100644 index 62854b970..000000000 --- a/src/resources/client_info/visitors/DatatableData.java +++ /dev/null @@ -1,353 +0,0 @@ -/*********************************************************************************** -* Copyright (c) 2015 /// Project SWG /// www.projectswg.com * -* * -* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * -* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * -* Our goal is to create an emulator which will provide a server for players to * -* continue playing a game similar to the one they used to play. We are basing * -* it on the final publish of the game prior to end-game events. * -* * -* This file is part of Holocore. * -* * -* -------------------------------------------------------------------------------- * -* * -* Holocore 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. * -* * -* Holocore 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 Holocore. If not, see . * -* * -***********************************************************************************/ -package resources.client_info.visitors; - -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -import resources.client_info.ClientData; -import resources.client_info.IffNode; -import resources.client_info.SWGFile; - -import com.projectswg.common.debug.Log; - -public class DatatableData extends ClientData { - - private final Map nameToIndex; - private String [] columnNames; - private ColumnType [] columnTypes; - private Object [][] table; - - public DatatableData() { - this.nameToIndex = new HashMap<>(); - this.columnNames = null; - this.columnTypes = null; - this.table = null; - } - - @Override - public void readIff(SWGFile iff) { - iff.enterNextForm(); // version form - - IffNode chunk; - while ((chunk = iff.enterNextChunk()) != null) { - switch (chunk.getTag()) { - case "COLS": { - String[] columnNames = new String[chunk.readInt()]; - for (int i = 0; i < columnNames.length; i++) { - columnNames[i] = chunk.readString(); - } - setColumnNames(columnNames); - break; - } - case "TYPE": - parseTypes(chunk); - break; - case "ROWS": - parseRows(chunk); - break; - default: - break; - } - } - } - - @Override - public void writeIff(SWGFile iff) { - iff.addForm("0001"); - writeColumns(iff.addChunk("COLS")); - writeTypes(iff.addChunk("TYPE")); - writeRows(iff.addChunk("ROWS")); - } - - private void writeColumns(IffNode chunk) { - int size = getTableStringSize(columnNames); - - chunk.initWriteBuffer(size + 4); - - chunk.writeInt(columnNames.length); - for (String columnName : columnNames) { - chunk.writeString(columnName); - } - - chunk.updateChunk(); - } - - private void writeTypes(IffNode chunk) { - int size = getColumnCount() * 2; // single char + \0 - - chunk.initWriteBuffer(size); - - for (ColumnType columnType : columnTypes) { - chunk.writeString(columnType.getString()); - } - - chunk.updateChunk(); - } - - private void writeRows(IffNode chunk) { - int rows = getRowCount(); - int cols = getColumnCount(); - - chunk.initWriteBuffer(getTableContentSize()); - chunk.writeInt(rows); - - for (int r = 0; r < rows; ++r) { - for (int c = 0; c < cols; ++c) { - switch (getColumnType(c)) { - case BOOLEAN: - case CRC: - case INTEGER: - case DATATABLE_ENUM: - case ENUM: - chunk.writeInt((Integer) getCell(r, c)); - break; - case FLOAT: - chunk.writeFloat((Float) getCell(r, c)); - break; - case STRING: - chunk.writeString((String) getCell(r, c)); - break; - case NONE: - break; - } - } - } - chunk.updateChunk(); - } - - private void parseTypes(IffNode chunk) { - int cols = getColumnCount(); - ColumnType [] columnTypes = new ColumnType[cols]; - - for (int c = 0; c < cols; c++) { - columnTypes[c] = ColumnType.getForChar(chunk.readString()); - } - - setColumnTypes(columnTypes); - } - - private void parseRows(IffNode chunk) { - int rows = chunk.readInt(); - int cols = getColumnCount(); - - Object [][] table = new Object[rows][getColumnCount()]; - for (int r = 0; r < rows; ++r) { - for (int t = 0; t < cols; ++t) { - table[r][t] = parseObject(chunk, getColumnType(t)); - } - } - setTable(table); - } - - private Object parseObject(IffNode chunk, ColumnType type) { - switch (type) { - case BOOLEAN: // Boolean - return chunk.readInt() == 1; - case FLOAT: // Float - return chunk.readFloat(); - case ENUM: // Enumerator - case CRC: // CRC - case INTEGER: // Integer - case DATATABLE_ENUM: // TODO: Datatable Enums - return chunk.readInt(); - case STRING: // String - return chunk.readString(); - case NONE: - return null; - } - return null; - } - - public int getRowCount() { - return table == null ? 0 : table.length; - } - - public int getColumnCount() { - return columnNames == null ? 0 : columnNames.length; - } - - public Object[] getRow(int row) { - return table[row]; - } - - public Object getCell(int row, int column) { - return table[row][column]; - } - - public Object getCell(int row, String columnName) { - return getCell(row, nameToIndex.get(columnName).intValue()); - } - - public String getString(int row, String columnName) { - return (String) getCell(row, nameToIndex.get(columnName).intValue()); - } - - public float getFloat(int row, String columnName) { - return (float) getCell(row, nameToIndex.get(columnName).intValue()); - } - - public int getInt(int row, String columnName) { - return (int) getCell(row, nameToIndex.get(columnName).intValue()); - } - - public String getColumnName(int column) { - if (column < 0 || column >= getColumnCount()) - return null; - return columnNames[column]; - } - - public ColumnType getColumnType(int column) { - if (column < 0 || column >= getColumnCount()) - return ColumnType.NONE; - return columnTypes[column]; - } - - public int getColumnFromName(String columnName) { - Integer column = nameToIndex.get(columnName); - return column == null ? -1 : column; - } - - public void handleRows(DatatableRowHandler handler) { - for (int r = 0; r < getRowCount(); r++) { - handler.handleRow(r); - } - } - - public void setColumnNames(String[] columnNames) { - this.columnNames = columnNames; - nameToIndex.clear(); - for (int i = 0; i < columnNames.length; i++) { - nameToIndex.put(columnNames[i], i); - } - } - - public void setColumnTypes(String [] columnTypes) { - ColumnType [] newTypes = new ColumnType[columnTypes.length]; - for (int i = 0; i < columnTypes.length; i++) { - newTypes[i] = ColumnType.getForChar(columnTypes[i]); - } - setColumnTypes(newTypes); - } - - public void setColumnTypes(ColumnType [] columnTypes) { - this.columnTypes = columnTypes; - } - - public void setTable(Object[][] table) { - this.table = table; - } - - private int getTableStringSize(String[] table) { - int size = 0; - for (String s : table) { - size += s.length() + 1; - } - return size; - } - - private int getTableContentSize() { - int size = 0; - int rows = getRowCount(); - for (int i = 0; i < getColumnCount(); i++) { - switch (getColumnType(i)) { - case BOOLEAN: - case FLOAT: - case CRC: - case INTEGER: - case DATATABLE_ENUM: - case ENUM: - size += 4 * rows; - break; - case STRING: - for (int r = 0; r < rows; r++) { - size += ((String) table[r][i]).length() + 1; - } - break; - case NONE: - Log.e("Cannot write row type %s", getColumnType(i)); - break; - } - } - return size + 4; - } - - public interface DatatableRowHandler { - void handleRow(int row); - } - - public enum ColumnType { - BOOLEAN ('b'), - FLOAT ('f'), - CRC ('h'), - INTEGER ('i'), - STRING ('s'), - ENUM ('e'), - DATATABLE_ENUM ('v'), - NONE (' '); - - private static final ColumnType [] VALUES = values(); - - private final char c; - - ColumnType(char c) { - this.c = c; - } - - public char getChar() { - return c; - } - - public String getString() { - return Character.toString(c); - } - - public static ColumnType getForChar(String str) { - str = str.toLowerCase(Locale.ENGLISH); - - if (str.indexOf('[') != -1) - str = str.substring(0, str.indexOf('[')); - - if (str.indexOf('(') != -1) // relevant only to enums - str = str.substring(0, str.indexOf('(')); - - if (str.length() != 1) - return NONE; - return getForChar(str.charAt(0)); - } - - public static ColumnType getForChar(char c) { - for (ColumnType type : VALUES) { - if (type.getChar() == c) - return type; - } - return NONE; - } - } -} diff --git a/src/resources/client_info/visitors/ObjectData.java b/src/resources/client_info/visitors/ObjectData.java deleted file mode 100644 index 7821a4d92..000000000 --- a/src/resources/client_info/visitors/ObjectData.java +++ /dev/null @@ -1,322 +0,0 @@ -/*********************************************************************************** -* Copyright (c) 2015 /// Project SWG /// www.projectswg.com * -* * -* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * -* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * -* Our goal is to create an emulator which will provide a server for players to * -* continue playing a game similar to the one they used to play. We are basing * -* it on the final publish of the game prior to end-game events. * -* * -* This file is part of Holocore. * -* * -* -------------------------------------------------------------------------------- * -* * -* Holocore 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. * -* * -* Holocore 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 Holocore. If not, see . * -* * -***********************************************************************************/ -package resources.client_info.visitors; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.List; -import java.util.Map; - -import resources.client_info.ClientData; -import resources.client_info.ClientFactory; -import resources.client_info.IffNode; -import resources.client_info.SWGFile; - -import com.projectswg.common.debug.Log; - -public class ObjectData extends ClientData { - - private final Map attributes = new HashMap<>(); - private final List parsedFiles = new ArrayList<>(); - - public enum ObjectDataAttribute { - ACCELERATION ("acceleration"), - ANIMATION_MAP_FILENAME ("animationMapFilename"), - APPEARANCE_FILENAME ("appearanceFilename"), - ARRANGEMENT_DESCRIPTOR_FILENAME ("arrangementDescriptorFilename"), - ATTACK_TYPE ("attackType"), - CAMERA_HEIGHT ("cameraHeight"), - CERTIFICATIONS_REQUIRED ("certificationsRequired"), - CLEAR_FLORA_RADIUS ("clearFloraRadius"), - CLIENT_DATA_FILE ("clientDataFile"), - CLIENT_VISIBILITY_FLAG ("clientVisabilityFlag"), - COCKPIT_FILENAME ("cockpitFilename"), - COLLISION_ACTION_BLOCK_FLAGS ("collisionActionBlockFlags"), - COLLISION_ACTION_FLAGS ("collisionActionFlags"), - COLLISION_ACTION_PASS_FLAGS ("collisionActionPassFlags"), - COLLISION_HEIGHT ("collisionHeight"), - COLLISION_LENGTH ("collisionLength"), - COLLISION_MATERIAL_BLOCK_FLAGS ("collisionMaterialBlockFlags"), - COLLISION_MATERIAL_FLAGS ("collisionMaterialFlags"), - COLLISION_MATERIAL_PASS_FLAGS ("collisionMaterialPassFlags"), - COLLISION_OFFSET_X ("collisionOffsetX"), - COLLISION_OFFSET_Z ("collisionOffsetZ"), - COLLISION_RADIUS ("collisionRadius"), - CONST_STRING_CUSTOMIZATION_VARIABLES ("constStringCustomizationVariables"), - CONTAINER_TYPE ("containerType"), - CONTAINER_VOLUME_LIMIT ("containerVolumeLimit"), - CUSTOMIZATION_VARIABLE_MAPPING ("customizationVariableMapping"), - DETAILED_DESCRIPTION ("detailedDescription"), - FORCE_NO_COLLISION ("forceNoCollision"), - GAME_OBJECT_TYPE ("gameObjectType"), - GENDER ("gender"), - HAS_WINGS ("hasWings"), - INTERIOR_LAYOUT_FILENAME ("interiorLayoutFileName"), - LOCATION_RESERVATION_RADIUS ("locationReservationRadius"), - LOOK_AT_TEXT ("lookAtText"), - MOVEMENT_DATATABLE ("movementDatatable"), - NICHE ("niche"), - NO_BUILD_RADIUS ("noBuildRadius"), - OBJECT_NAME ("objectName"), - ONLY_VISIBLE_IN_TOOLS ("onlyVisibleInTools"), - PALETTE_COLOR_CUSTOMIZATION_VARIABLES ("paletteColorCustomizationVariables"), - PLAYER_CONTROLLED ("playerControlled"), - PORTAL_LAYOUT_FILENAME ("portalLayoutFilename"), - POSTURE_ALIGN_TO_TERRAIN ("postureAlignToTerrain"), - RACE ("race"), - RANGED_INT_CUSTOMIZATION_VARIABLES ("rangedIntCustomizationVariables"), - SCALE ("scale"), - SCALE_THRESHOLD_BEFORE_EXTENT_TEST ("scaleThresholdBeforeExtentTest"), - SEND_TO_CLIENT ("sendToClient"), - SLOPE_MOD_ANGLE ("slopeModAngle"), - SLOPE_MOD_PERCENT ("slopeModPercent"), - SLOT_DESCRIPTOR_FILENAME ("slotDescriptorFilename"), - SNAP_TO_TERRAIN ("snapToTerrain"), - SOCKET_DESTINATIONS ("socketDestinations"), - SPECIES ("species"), - SPEED ("speed"), - STEP_HEIGHT ("stepHeight"), - STRUCTURE_FOOTPRINT_FILENAME ("structureFootprintFileName"), - SURFACE_TYPE ("surfaceType"), - SWIM_HEIGHT ("swimHeight"), - TARGETABLE ("targetable"), - TERRAIN_MODIFICATION_FILENAME ("terrainModificationFileName"), - TINT_PALETTE ("tintPalette"), - TURN_RADIUS ("turnRate"), - USE_STRUCTURE_FOOTPRINT_OUTLINE ("useStructureFootprintOutline"), - WARP_TOLERANCE ("warpTolerance"), - WATER_MOD_PERCENT ("waterModPercent"), - WEAPON_EFFECT ("weaponEffect"), - WEAPON_EFFECT_INDEX ("weaponEffectIndex"); - - private static final Map ATTRIBUTES = new Hashtable<>(values().length); - - static { - for (ObjectDataAttribute attr : values()) - ATTRIBUTES.put(attr.getName(), attr); - } - - private final String name; - - ObjectDataAttribute(String name) { - this.name = name; - } - - public String getName() { - return name; - } - - public static ObjectDataAttribute getForName(String name) { - return ATTRIBUTES.get(name); - } - } - - public ObjectData() {} - - @Override - public void readIff(SWGFile iff) { - readNextForm(iff); - } - - private void readNextForm(SWGFile iff) { - IffNode next; - while ((next = iff.enterNextForm()) != null) { - String tag = next.getTag(); - if (tag.equals("DERV")) - readExtendedAttributes(iff); - else if (tag.contains("0")) - readVersionForm(iff); - else if (!tag.isEmpty()) - readNextForm(iff); - iff.exitForm(); - } - } - - private void readVersionForm(SWGFile iff) { - IffNode attributeChunk; - while ((attributeChunk = iff.enterChunk("XXXX")) != null) { - parseAttributeChunk(attributeChunk); - } - } - - private void readExtendedAttributes(SWGFile iff) { - IffNode chunk = iff.enterNextChunk(); - String file = chunk.readString(); - - if (parsedFiles.contains(file)) // some repeated and we do not want to replace any attributes unless they're overriden by a more specific obj - return; - - ClientData attrData = ClientFactory.getInfoFromFile(file, true); - if (attrData == null || !(attrData instanceof ObjectData)) { - Log.w("Could not load attribute data from file " + file + "!"); - return; // break out of whole method as we should only continue if we have all the extended attributes - } - - // Put all the extended attributes in this map so it's accessible. Note that some of these are overridden. - attributes.putAll(((ObjectData)attrData).getAttributes()); - - parsedFiles.add(file); - } - - // Try and parse the attribute to map w/ appropriate Object type. - private void parseAttributeChunk(IffNode chunk) { - String str = chunk.readString(); - if (str.isEmpty()) - return; - ObjectDataAttribute attr = ObjectDataAttribute.getForName(str); - if (attr == null) { - System.err.println("Unknown attribute: " + str); - return; - } - parseObjectAttribute(chunk, attr); - parseBuildingAttribute(chunk, attr); - parseVehicleAttribute(chunk, attr); - parseWeaponAttribute(chunk, attr); - parseShipAttribute(chunk, attr); - } - - private void parseObjectAttribute(IffNode chunk, ObjectDataAttribute attr) { - switch (attr) { - case APPEARANCE_FILENAME: putString(chunk, attr); break; - case ARRANGEMENT_DESCRIPTOR_FILENAME: putString(chunk,attr); break; - case CLEAR_FLORA_RADIUS: putFloat(chunk, attr); break; - case CLIENT_DATA_FILE: putString(chunk, attr); break; - case CLIENT_VISIBILITY_FLAG: putBoolean(chunk, attr); break; - case CONTAINER_TYPE: putInt(chunk, attr); break; - case CONTAINER_VOLUME_LIMIT: putInt(chunk, attr);break; - case DETAILED_DESCRIPTION: putStfString(chunk, attr); break; - case FORCE_NO_COLLISION: putBoolean(chunk, attr); break; - case GAME_OBJECT_TYPE: putInt(chunk, attr); break; - case GENDER: putInt(chunk, attr); break; - case LOCATION_RESERVATION_RADIUS: putFloat(chunk, attr); break; - case LOOK_AT_TEXT: putString(chunk, attr); break; - case NO_BUILD_RADIUS: putFloat(chunk, attr); break; - case OBJECT_NAME: putStfString(chunk, attr); break; - case ONLY_VISIBLE_IN_TOOLS: putBoolean(chunk, attr); break; - case PORTAL_LAYOUT_FILENAME: putString(chunk, attr); break; - case SCALE: putFloat(chunk, attr); break; - case SCALE_THRESHOLD_BEFORE_EXTENT_TEST: putFloat(chunk, attr); break; - case SEND_TO_CLIENT: putBoolean(chunk, attr); break; - case SLOT_DESCRIPTOR_FILENAME: putString(chunk, attr); break; - case SNAP_TO_TERRAIN: putBoolean(chunk, attr); break; - case STRUCTURE_FOOTPRINT_FILENAME: putString(chunk, attr); break; - case SURFACE_TYPE: putInt(chunk, attr); break; - case TARGETABLE: putBoolean(chunk, attr); break; - case TINT_PALETTE: putString(chunk, attr); break; - case USE_STRUCTURE_FOOTPRINT_OUTLINE: putBoolean(chunk, attr); break; - default: break; - } - } - - private void parseBuildingAttribute(IffNode chunk, ObjectDataAttribute attr) { - switch (attr) { - case INTERIOR_LAYOUT_FILENAME: putString(chunk, attr); break; - case TERRAIN_MODIFICATION_FILENAME: putString(chunk, attr); break; - default: break; - } - } - - private void parseWeaponAttribute(IffNode chunk, ObjectDataAttribute attr) { - switch (attr) { - case WEAPON_EFFECT: putString(chunk, attr); break; - case WEAPON_EFFECT_INDEX: putInt(chunk, attr); break; - case ATTACK_TYPE: putInt(chunk, attr); break; - default: break; - } - } - - private void parseVehicleAttribute(IffNode chunk, ObjectDataAttribute attr) { - switch (attr) { - case SPEED: putFloat(chunk, attr); break; - case TURN_RADIUS: putFloat(chunk, attr); break; - case ACCELERATION: putFloat(chunk, attr); break; - default: break; - } - } - - private void parseShipAttribute(IffNode chunk, ObjectDataAttribute attr) { - switch (attr) { - case COCKPIT_FILENAME: putString(chunk, attr); break; - case HAS_WINGS: putBoolean(chunk, attr); break; - case PLAYER_CONTROLLED: putBoolean(chunk, attr); break; - default: break; - } - } - - private void putStfString(IffNode chunk, ObjectDataAttribute attr) { - if (chunk.readByte() == 0) - return; - - String stfFile = getString(chunk); - if (stfFile.isEmpty()) - return; - attributes.put(attr, stfFile + ":" + getString(chunk)); - } - - private String getString(IffNode chunk) { - chunk.readByte(); - return chunk.readString(); - } - - private void putString(IffNode chunk, ObjectDataAttribute attr) { - if (chunk.readByte() == 0) - return; - String s = chunk.readString(); - if (s.isEmpty()) - return; - - attributes.put(attr, s); - } - - private void putInt(IffNode chunk, ObjectDataAttribute attr) { - if (chunk.readByte() == 0) - return; // This should always be 1 if there is an int (note that 0x20 follows after this even if it's 0) - chunk.readByte(); // 0x20 byte for all it seems, unsure what it means - attributes.put(attr, chunk.readInt()); - } - - private void putFloat(IffNode chunk, ObjectDataAttribute attr) { - if (chunk.readByte() == 0) - return; // This should always be 1 if there is an int (note that 0x20 follows after this even if it's 0) - chunk.readByte(); // 0x20 byte for all it seems, unsure what it means - attributes.put(attr, chunk.readFloat()); - } - - private void putBoolean(IffNode chunk, ObjectDataAttribute attr) { - attributes.put(attr, (chunk.readByte() == 1)); - } - - public Object getAttribute(ObjectDataAttribute attribute) { - return attributes.get(attribute); - } - - public Map getAttributes() { - return attributes; - } -} diff --git a/src/resources/client_info/visitors/PortalLayoutData.java b/src/resources/client_info/visitors/PortalLayoutData.java deleted file mode 100644 index 13a16c380..000000000 --- a/src/resources/client_info/visitors/PortalLayoutData.java +++ /dev/null @@ -1,292 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 /// Project SWG /// www.projectswg.com - * - * ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on - * July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. - * Our goal is to create an emulator which will provide a server for players to - * continue playing a game similar to the one they used to play. We are basing - * it on the final publish of the game prior to end-game events. - * - * This file is part of Holocore. - * - * -------------------------------------------------------------------------------- - * - * Holocore 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. - * - * Holocore 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 Holocore. If not, see - ******************************************************************************/ - -package resources.client_info.visitors; - -import resources.Point3D; -import resources.client_info.ClientData; -import resources.client_info.ClientFactory; -import resources.client_info.IffNode; -import resources.client_info.SWGFile; -import resources.client_info.visitors.appearance.render.RenderData; -import resources.client_info.visitors.appearance.render.RenderSegment; -import resources.client_info.visitors.appearance.render.RenderableData; -import resources.client_info.visitors.appearance.render.RenderableDataChild; - -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -/** - * @author Waverunner - */ -public class PortalLayoutData extends ClientData implements RenderableData { - - private List cells = new LinkedList<>(); - private List radarPoints = new ArrayList<>(); - - @Override - public void readIff(SWGFile iff) { - IffNode versionForm = iff.enterNextForm(); - if (versionForm == null) { - System.err.println("Expected version for a POB IFF"); - return; - } - - int version = versionForm.getVersionFromTag(); - switch(version) { - case 3: - readVersion3(iff); - break; - case 4: - readVersion4(iff); - break; - default: System.err.println("Do not know how to handle POB version type " + version + " in file " + iff.getFileName()); - } - } - - @Override - public List getAllRenderData() { - List render = new ArrayList<>(); - render.add(getHighestRenderData()); - for (Cell cell : cells) { - if (cell.isSingleRenderData()) - render.add(cell.getRenderData()); - else - render.addAll(cell.getRenderDataList()); - } - return render; - } - - @Override - public RenderData getHighestRenderData() { - RenderData ret = new RenderData(); - for (Cell cell : cells) { - if (cell.isSingleRenderData()) - mergeAll(cell.getRenderData(), ret); - else - mergeAll(cell.getHighestRenderData(), ret); - } - return ret; - } - - @Override - public RenderData getProportionalRenderData(double percent) { - RenderData ret = new RenderData(); - for (Cell cell : cells) { - if (cell.isSingleRenderData()) - mergeAll(cell.getRenderData(), ret); - else - mergeAll(cell.getProportionalRenderData(percent), ret); - } - return ret; - } - - private void mergeAll(RenderData src, RenderData dst) { - if (src == null) - return; - for (RenderSegment segment : src.getSegments()) { - dst.addSegment(segment); - } - } - - private void readVersion3(SWGFile iff) { - IffNode data = iff.enterChunk("DATA"); - int portalCount = data.readInt(); - loadPortals3(iff, portalCount); - loadCells(iff); - } - - private void readVersion4(SWGFile iff) { - IffNode data = iff.enterChunk("DATA"); - int portalCount = data.readInt(); - loadPortals4(iff, portalCount); - loadCells(iff); - } - - public List getCells() { - return cells; - } - - public List getRadarPoints() { - return radarPoints; - } - - private void loadCells(SWGFile iff) { - iff.enterForm("CELS"); - while (iff.enterForm("CELL") != null) { - cells.add(new Cell(iff)); - iff.exitForm(); - } - iff.exitForm(); // Exit CELS form - } - - private void loadPortals3(SWGFile iff, int portalCount) { - IffNode node = iff.enterForm("PRTS"); - if (node == null) - System.err.println("Failed to enter PRTS!"); - for (int i = 0; i < portalCount; i++) { - IffNode chunk = iff.enterChunk("PRTL"); - if (chunk == null) - continue; - int vertices = chunk.readInt(); - List points = new ArrayList<>(vertices); - for (int j = 0; j < vertices; j++) { - points.add(chunk.readVector()); - } - buildRadar(points); - } - iff.exitForm(); - } - - private void loadPortals4(SWGFile iff, int portalCount) { - IffNode node = iff.enterForm("PRTS"); - if (node == null) - System.err.println("Failed to enter PRTS!"); - for (int i = 0; i < portalCount; i++) { - iff.enterForm("IDTL"); - iff.enterForm("0000"); - IffNode chunk = iff.enterChunk("VERT"); - List points = new ArrayList<>(chunk.remaining() / 12); - while (chunk.remaining() >= 12) { - points.add(chunk.readVector()); - } - chunk = iff.enterChunk("INDX"); - while (chunk.remaining() >= 4) { - radarPoints.add(new Point3D(points.get(chunk.readInt()))); - } - iff.exitForm(); - iff.exitForm(); - } - iff.exitForm(); - } - - private void buildRadar(List points) { -// Point3D first = points.get(0); -// for (int i = 0; i < points.size()-2; i++) { -// radarPoints.add(first); -// radarPoints.add(points.get(i+1)); -// radarPoints.add(points.get(i+2)); -// } - radarPoints.addAll(points); - } - - public static class Cell extends ClientData { - - private String name; - private String appearance; - private List renderDataList; - private RenderData renderData; - private boolean isSingleRenderData; - - public Cell(SWGFile iff) { - renderDataList = new ArrayList<>(); - renderData = new RenderData(); - isSingleRenderData = true; - readIff(iff); - } - - @Override - public void readIff(SWGFile iff) { - IffNode versionForm = iff.enterNextForm(); - if (versionForm == null) { - System.err.println("Expected version for CELL in IFF " + iff.getFileName()); - return; - } - - int version = versionForm.getVersionFromTag(); - switch(version) { - case 3: readVersion3(iff); break; - case 5: readVersion5(iff); break; - default: System.err.println("Don't know how to handle version " + version + " CELL " + iff.getFileName()); - } - - iff.exitForm(); - } - - public RenderData getRenderData() { - return renderData; - } - - public boolean isSingleRenderData() { - return isSingleRenderData; - } - - public List getRenderDataList() { - return renderDataList; - } - - public RenderData getHighestRenderData() { - return renderDataList.isEmpty() ? null : renderDataList.get(renderDataList.size()-1); - } - - public RenderData getProportionalRenderData(double percent) { - return renderDataList.isEmpty() ? null : renderDataList.get((int) Math.min(renderDataList.size()-1, percent*renderDataList.size()+0.5)); - } - - private void readVersion3(SWGFile iff) { - IffNode dataChunk = iff.enterChunk("DATA"); - dataChunk.readInt(); // cellPortals - dataChunk.readBoolean(); // canSeeParentCell - appearance = dataChunk.readString(); - ClientData data = ClientFactory.getInfoFromFile(appearance); - if (data instanceof RenderableDataChild) { - renderData = ((RenderableDataChild) data).getRenderData(); - isSingleRenderData = true; - } else if (data instanceof RenderableData) { - renderDataList.clear(); - renderDataList.addAll(((RenderableData) data).getAllRenderData()); - isSingleRenderData = false; - } - } - - private void readVersion5(SWGFile iff) { - IffNode dataChunk = iff.enterChunk("DATA"); - dataChunk.readInt(); // cellPortals - dataChunk.readBoolean(); // canSeeParentCell - name = dataChunk.readString(); - appearance = dataChunk.readString(); - ClientData data = ClientFactory.getInfoFromFile(appearance); - if (data instanceof RenderableDataChild) { - renderData = ((RenderableDataChild) data).getRenderData(); - isSingleRenderData = true; - } else if (data instanceof RenderableData) { - renderDataList.clear(); - renderDataList.addAll(((RenderableData) data).getAllRenderData()); - isSingleRenderData = false; - } - } - - public String getName() { - return name; - } - - public String getAppearance() { - return appearance; - } - } -} diff --git a/src/resources/client_info/visitors/ProfTemplateData.java b/src/resources/client_info/visitors/ProfTemplateData.java deleted file mode 100644 index b98cd53c4..000000000 --- a/src/resources/client_info/visitors/ProfTemplateData.java +++ /dev/null @@ -1,104 +0,0 @@ -/*********************************************************************************** -* Copyright (c) 2015 /// Project SWG /// www.projectswg.com * -* * -* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on * -* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. * -* Our goal is to create an emulator which will provide a server for players to * -* continue playing a game similar to the one they used to play. We are basing * -* it on the final publish of the game prior to end-game events. * -* * -* This file is part of Holocore. * -* * -* -------------------------------------------------------------------------------- * -* * -* Holocore 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. * -* * -* Holocore 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 Holocore. If not, see . * -* * -***********************************************************************************/ -package resources.client_info.visitors; - -import java.util.ArrayList; -import java.util.List; - -import resources.client_info.ClientData; -import resources.client_info.IffNode; -import resources.client_info.SWGFile; - -public class ProfTemplateData extends ClientData { - - private List