set AttachedObject and ObjectId in QSBWorldSync.cs, meaning many Init()s can be removed

This commit is contained in:
JohnCorby 2021-12-11 14:38:54 -08:00
parent fde9efa599
commit 2414efd65f
46 changed files with 32 additions and 228 deletions

View File

@ -14,11 +14,8 @@ namespace QSB.Anglerfish.WorldObjects
private Vector3 _lastTargetPosition; private Vector3 _lastTargetPosition;
public override void Init(AnglerfishController attachedObject, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = attachedObject;
if (QSBCore.IsHost) if (QSBCore.IsHost)
{ {
QNetworkServer.Spawn(Object.Instantiate(QSBNetworkManager.Instance.AnglerPrefab)); QNetworkServer.Spawn(Object.Instantiate(QSBNetworkManager.Instance.AnglerPrefab));

View File

@ -7,12 +7,6 @@ namespace QSB.Animation.NPC.WorldObjects
internal abstract class NpcAnimController<T> : WorldObject<T>, INpcAnimController internal abstract class NpcAnimController<T> : WorldObject<T>, INpcAnimController
where T : MonoBehaviour where T : MonoBehaviour
{ {
public override void Init(T controller, int id)
{
ObjectId = id;
AttachedObject = controller;
}
public abstract CharacterDialogueTree GetDialogueTree(); public abstract CharacterDialogueTree GetDialogueTree();
public virtual void StartConversation() public virtual void StartConversation()

View File

@ -8,12 +8,6 @@ namespace QSB.Animation.NPC.WorldObjects
{ {
private readonly List<PlayerInfo> _playersInHeadZone = new(); private readonly List<PlayerInfo> _playersInHeadZone = new();
public override void Init(SolanumAnimController controller, int id)
{
ObjectId = id;
AttachedObject = controller;
}
public List<PlayerInfo> GetPlayersInHeadZone() public List<PlayerInfo> GetPlayersInHeadZone()
=> _playersInHeadZone; => _playersInHeadZone;

View File

@ -5,12 +5,6 @@ namespace QSB.CampfireSync.WorldObjects
{ {
public class QSBCampfire : WorldObject<Campfire> public class QSBCampfire : WorldObject<Campfire>
{ {
public override void Init(Campfire campfire, int id)
{
ObjectId = id;
AttachedObject = campfire;
}
public void StartRoasting() public void StartRoasting()
=> AttachedObject => AttachedObject
.GetType() .GetType()

View File

@ -4,10 +4,5 @@ namespace QSB.EchoesOfTheEye.AirlockSync.WorldObjects
{ {
internal class QSBGhostAirlock : WorldObject<GhostAirlock> internal class QSBGhostAirlock : WorldObject<GhostAirlock>
{ {
public override void Init(GhostAirlock airlock, int id)
{
ObjectId = id;
AttachedObject = airlock;
}
} }
} }

View File

@ -4,10 +4,5 @@ namespace QSB.EchoesOfTheEye.LightSensorSync.WorldObjects
{ {
internal class QSBSingleLightSensor : WorldObject<SingleLightSensor> internal class QSBSingleLightSensor : WorldObject<SingleLightSensor>
{ {
public override void Init(SingleLightSensor sensor, int id)
{
ObjectId = id;
AttachedObject = sensor;
}
} }
} }

View File

@ -13,10 +13,8 @@ namespace QSB.ElevatorSync.WorldObjects
private OWAudioSource _owAudioSourceLP; private OWAudioSource _owAudioSourceLP;
private OWTriggerVolume _elevatorTrigger; private OWTriggerVolume _elevatorTrigger;
public override void Init(Elevator elevator, int id) public override void Init()
{ {
AttachedObject = elevator;
ObjectId = id;
QSBCore.UnityEvents.RunWhen(() => AttachedObject._interactVolume != null, InitValues); QSBCore.UnityEvents.RunWhen(() => AttachedObject._interactVolume != null, InitValues);
} }

View File

@ -6,10 +6,8 @@ namespace QSB.GeyserSync.WorldObjects
{ {
public class QSBGeyser : WorldObject<GeyserController> public class QSBGeyser : WorldObject<GeyserController>
{ {
public override void Init(GeyserController geyserController, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = geyserController;
AttachedObject.OnGeyserActivateEvent += () => HandleEvent(true); AttachedObject.OnGeyserActivateEvent += () => HandleEvent(true);
AttachedObject.OnGeyserDeactivateEvent += () => HandleEvent(false); AttachedObject.OnGeyserDeactivateEvent += () => HandleEvent(false);
} }

View File

@ -2,11 +2,5 @@
{ {
internal class QSBNomaiConversationStone : QSBOWItem<NomaiConversationStone> internal class QSBNomaiConversationStone : QSBOWItem<NomaiConversationStone>
{ {
public override void Init(NomaiConversationStone attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
} }
} }

View File

@ -17,9 +17,9 @@ namespace QSB.ItemSync.WorldObjects.Items
public QSBSector InitialSector { get; private set; } public QSBSector InitialSector { get; private set; }
public uint HoldingPlayer { get; private set; } public uint HoldingPlayer { get; private set; }
public override void Init(T attachedObject, int id) public override void Init()
{ {
if (attachedObject == null) if (AttachedObject == null)
{ {
DebugLog.ToConsole($"Error - AttachedObject is null! Type:{GetType().Name}", OWML.Common.MessageType.Error); DebugLog.ToConsole($"Error - AttachedObject is null! Type:{GetType().Name}", OWML.Common.MessageType.Error);
return; return;
@ -30,10 +30,10 @@ namespace QSB.ItemSync.WorldObjects.Items
{ {
FinishDelayedReady(); FinishDelayedReady();
InitialParent = attachedObject.transform.parent; InitialParent = AttachedObject.transform.parent;
InitialPosition = attachedObject.transform.localPosition; InitialPosition = AttachedObject.transform.localPosition;
InitialRotation = attachedObject.transform.localRotation; InitialRotation = AttachedObject.transform.localRotation;
var initialSector = attachedObject.GetSector(); var initialSector = AttachedObject.GetSector();
if (initialSector != null) if (initialSector != null)
{ {
InitialSector = QSBWorldSync.GetWorldFromUnity<QSBSector>(initialSector); InitialSector = QSBWorldSync.GetWorldFromUnity<QSBSector>(initialSector);
@ -41,7 +41,7 @@ namespace QSB.ItemSync.WorldObjects.Items
if (InitialParent == null) if (InitialParent == null)
{ {
DebugLog.ToConsole($"Warning - InitialParent of {attachedObject.name} is null!", OWML.Common.MessageType.Warning); DebugLog.ToConsole($"Warning - InitialParent of {AttachedObject.name} is null!", OWML.Common.MessageType.Warning);
} }
if (InitialParent?.GetComponent<OWItemSocket>() != null) if (InitialParent?.GetComponent<OWItemSocket>() != null)

View File

@ -2,13 +2,6 @@
{ {
internal class QSBScrollItem : QSBOWItem<ScrollItem> internal class QSBScrollItem : QSBOWItem<ScrollItem>
{ {
public override void Init(ScrollItem attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
public override void PlaySocketAnimation() public override void PlaySocketAnimation()
=> AttachedObject.PlaySocketAnimation(); => AttachedObject.PlaySocketAnimation();

View File

@ -2,13 +2,6 @@
{ {
internal class QSBSharedStone : QSBOWItem<SharedStone> internal class QSBSharedStone : QSBOWItem<SharedStone>
{ {
public override void Init(SharedStone attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
public override void PlaySocketAnimation() public override void PlaySocketAnimation()
=> AttachedObject.PlaySocketAnimation(); => AttachedObject.PlaySocketAnimation();

View File

@ -2,13 +2,6 @@
{ {
internal class QSBSimpleLanternItem : QSBOWItem<SimpleLanternItem> internal class QSBSimpleLanternItem : QSBOWItem<SimpleLanternItem>
{ {
public override void Init(SimpleLanternItem attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
public override void PlaySocketAnimation() public override void PlaySocketAnimation()
=> AttachedObject.PlaySocketAnimation(); => AttachedObject.PlaySocketAnimation();

View File

@ -2,13 +2,6 @@
{ {
internal class QSBSlideReelItem : QSBOWItem<SlideReelItem> internal class QSBSlideReelItem : QSBOWItem<SlideReelItem>
{ {
public override void Init(SlideReelItem attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
public override void PlaySocketAnimation() public override void PlaySocketAnimation()
=> AttachedObject.PlaySocketAnimation(); => AttachedObject.PlaySocketAnimation();

View File

@ -2,13 +2,6 @@
{ {
internal class QSBWarpCoreItem : QSBOWItem<WarpCoreItem> internal class QSBWarpCoreItem : QSBOWItem<WarpCoreItem>
{ {
public override void Init(WarpCoreItem attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
public bool IsVesselCoreType() public bool IsVesselCoreType()
=> AttachedObject.IsVesselCoreType(); => AttachedObject.IsVesselCoreType();
} }

View File

@ -2,11 +2,5 @@
{ {
internal class QSBNomaiConversationStoneSocket : QSBOWItemSocket<NomaiConversationStoneSocket> internal class QSBNomaiConversationStoneSocket : QSBOWItemSocket<NomaiConversationStoneSocket>
{ {
public override void Init(NomaiConversationStoneSocket attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
} }
} }

View File

@ -6,8 +6,6 @@ namespace QSB.ItemSync.WorldObjects.Sockets
internal class QSBOWItemDoubleSocket<T> : WorldObject<T>, IQSBOWItemSocket internal class QSBOWItemDoubleSocket<T> : WorldObject<T>, IQSBOWItemSocket
where T : OWItemSocket where T : OWItemSocket
{ {
public override void Init(T attachedObject, int id) { }
public virtual bool AcceptsItem(IQSBOWItem item) public virtual bool AcceptsItem(IQSBOWItem item)
{ {
var itemType = item.GetItemType(); var itemType = item.GetItemType();

View File

@ -6,8 +6,6 @@ namespace QSB.ItemSync.WorldObjects.Sockets
internal class QSBOWItemSocket<T> : WorldObject<T>, IQSBOWItemSocket internal class QSBOWItemSocket<T> : WorldObject<T>, IQSBOWItemSocket
where T : OWItemSocket where T : OWItemSocket
{ {
public override void Init(T attachedObject, int id) { }
public virtual bool AcceptsItem(IQSBOWItem item) public virtual bool AcceptsItem(IQSBOWItem item)
{ {
var itemType = item.GetItemType(); var itemType = item.GetItemType();

View File

@ -2,11 +2,5 @@
{ {
internal class QSBScrollSocket : QSBOWItemSocket<ScrollSocket> internal class QSBScrollSocket : QSBOWItemSocket<ScrollSocket>
{ {
public override void Init(ScrollSocket attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
} }
} }

View File

@ -2,11 +2,5 @@
{ {
internal class QSBSharedStoneSocket : QSBOWItemSocket<SharedStoneSocket> internal class QSBSharedStoneSocket : QSBOWItemSocket<SharedStoneSocket>
{ {
public override void Init(SharedStoneSocket attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
} }
} }

View File

@ -2,11 +2,5 @@
{ {
internal class QSBSlideProjectorSocket : QSBOWItemDoubleSocket<SlideProjectorSocket> internal class QSBSlideProjectorSocket : QSBOWItemDoubleSocket<SlideProjectorSocket>
{ {
public override void Init(SlideProjectorSocket attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
} }
} }

View File

@ -2,11 +2,5 @@
{ {
internal class QSBSlideReelSocket : QSBOWItemSocket<SlideReelSocket> internal class QSBSlideReelSocket : QSBOWItemSocket<SlideReelSocket>
{ {
public override void Init(SlideReelSocket attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
} }
} }

View File

@ -2,11 +2,5 @@
{ {
internal class QSBWarpCoreSocket : QSBOWItemSocket<WarpCoreSocket> internal class QSBWarpCoreSocket : QSBOWItemSocket<WarpCoreSocket>
{ {
public override void Init(WarpCoreSocket attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
base.Init(attachedObject, id);
}
} }
} }

View File

@ -11,10 +11,8 @@ namespace QSB.JellyfishSync.WorldObjects
public JellyfishTransformSync TransformSync; public JellyfishTransformSync TransformSync;
private AlignWithTargetBody _alignWithTargetBody; private AlignWithTargetBody _alignWithTargetBody;
public override void Init(JellyfishController attachedObject, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = attachedObject;
_alignWithTargetBody = AttachedObject.GetRequiredComponent<AlignWithTargetBody>(); _alignWithTargetBody = AttachedObject.GetRequiredComponent<AlignWithTargetBody>();
if (QSBCore.IsHost) if (QSBCore.IsHost)

View File

@ -5,10 +5,8 @@ namespace QSB.MeteorSync.WorldObjects
{ {
public class QSBFragment : WorldObject<FragmentIntegrity> public class QSBFragment : WorldObject<FragmentIntegrity>
{ {
public override void Init(FragmentIntegrity attachedObject, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = attachedObject;
DetachableFragment = AttachedObject.GetComponent<DetachableFragment>(); DetachableFragment = AttachedObject.GetComponent<DetachableFragment>();
if (QSBCore.IsHost) if (QSBCore.IsHost)

View File

@ -5,12 +5,6 @@ namespace QSB.MeteorSync.WorldObjects
{ {
public class QSBMeteor : WorldObject<MeteorController> public class QSBMeteor : WorldObject<MeteorController>
{ {
public override void Init(MeteorController attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
}
public static bool IsSpecialImpact(GameObject go) => public static bool IsSpecialImpact(GameObject go) =>
go == Locator.GetPlayerCollider().gameObject || go == Locator.GetProbe()._anchor._collider.gameObject; go == Locator.GetPlayerCollider().gameObject || go == Locator.GetProbe()._anchor._collider.gameObject;

View File

@ -4,12 +4,6 @@ namespace QSB.MeteorSync.WorldObjects
{ {
public class QSBMeteorLauncher : WorldObject<MeteorLauncher> public class QSBMeteorLauncher : WorldObject<MeteorLauncher>
{ {
public override void Init(MeteorLauncher attachedObject, int id)
{
ObjectId = id;
AttachedObject = attachedObject;
}
public int MeteorId; public int MeteorId;
public float LaunchSpeed; public float LaunchSpeed;

View File

@ -11,10 +11,8 @@ namespace QSB.OrbSync.WorldObjects
private bool _initialized; private bool _initialized;
public override void Init(NomaiInterfaceSlot slot, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = slot;
_initialized = true; _initialized = true;
} }

View File

@ -4,12 +4,10 @@ namespace QSB.QuantumSync.WorldObjects
{ {
internal class QSBEyeProxyQuantumMoon : QSBQuantumObject<EyeProxyQuantumMoon> internal class QSBEyeProxyQuantumMoon : QSBQuantumObject<EyeProxyQuantumMoon>
{ {
public override void Init(EyeProxyQuantumMoon moonObject, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = moonObject;
ControllingPlayer = QSBPlayerManager.LocalPlayerId; ControllingPlayer = QSBPlayerManager.LocalPlayerId;
base.Init(moonObject, id); base.Init();
} }
} }
} }

View File

@ -21,17 +21,14 @@ namespace QSB.QuantumSync.WorldObjects
} }
} }
public override void Init(MultiStateQuantumObject attachedObject, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = attachedObject;
if (QSBCore.ShowQuantumDebugBoxes) if (QSBCore.ShowQuantumDebugBoxes)
{ {
DebugBoxText = DebugBoxManager.CreateBox(AttachedObject.transform, 0, $"Multistate\r\nid:{id}\r\nstate:{CurrentState}").GetComponent<Text>(); DebugBoxText = DebugBoxManager.CreateBox(AttachedObject.transform, 0, $"Multistate\r\nid:{ObjectId}\r\nstate:{CurrentState}").GetComponent<Text>();
} }
base.Init(attachedObject, id); base.Init();
StartDelayedReady(); StartDelayedReady();
QSBCore.UnityEvents.RunWhen(() => WorldObjectManager.AllObjectsAdded, () => QSBCore.UnityEvents.RunWhen(() => WorldObjectManager.AllObjectsAdded, () =>

View File

@ -5,14 +5,12 @@ namespace QSB.QuantumSync.WorldObjects
{ {
internal class QSBQuantumMoon : QSBQuantumObject<QuantumMoon> internal class QSBQuantumMoon : QSBQuantumObject<QuantumMoon>
{ {
public override void Init(QuantumMoon moonObject, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = moonObject;
ControllingPlayer = QSBCore.IsHost ControllingPlayer = QSBCore.IsHost
? QSBPlayerManager.LocalPlayerId ? QSBPlayerManager.LocalPlayerId
: QSBPlayerManager.PlayerList.OrderBy(x => x.PlayerId).First().PlayerId; : QSBPlayerManager.PlayerList.OrderBy(x => x.PlayerId).First().PlayerId;
base.Init(moonObject, id); base.Init();
} }
} }
} }

View File

@ -24,7 +24,7 @@ namespace QSB.QuantumSync.WorldObjects
} }
} }
public override void Init(T attachedObject, int id) public override void Init()
{ {
var debugBundle = QSBCore.DebugAssetBundle; var debugBundle = QSBCore.DebugAssetBundle;
var sphere = debugBundle.LoadAsset<GameObject>("Assets/Prefabs/Sphere.prefab"); var sphere = debugBundle.LoadAsset<GameObject>("Assets/Prefabs/Sphere.prefab");

View File

@ -5,13 +5,6 @@ namespace QSB.QuantumSync.WorldObjects
{ {
internal class QSBQuantumShuffleObject : QSBQuantumObject<QuantumShuffleObject> internal class QSBQuantumShuffleObject : QSBQuantumObject<QuantumShuffleObject>
{ {
public override void Init(QuantumShuffleObject shuffleObject, int id)
{
ObjectId = id;
AttachedObject = shuffleObject;
base.Init(shuffleObject, id);
}
public void ShuffleObjects(int[] indexArray) public void ShuffleObjects(int[] indexArray)
{ {
var shuffledObjects = AttachedObject.GetValue<Transform[]>("_shuffledObjects"); var shuffledObjects = AttachedObject.GetValue<Transform[]>("_shuffledObjects");

View File

@ -5,10 +5,8 @@ namespace QSB.QuantumSync.WorldObjects
{ {
internal class QSBQuantumSocket : WorldObject<QuantumSocket> internal class QSBQuantumSocket : WorldObject<QuantumSocket>
{ {
public override void Init(QuantumSocket quantumSocket, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = quantumSocket;
AttachedObject.GetType().SetValue("_randomYRotation", false); AttachedObject.GetType().SetValue("_randomYRotation", false);
} }
} }

View File

@ -6,12 +6,6 @@ namespace QSB.QuantumSync.WorldObjects
{ {
public bool IsMeantToBeEnabled; public bool IsMeantToBeEnabled;
public override void Init(QuantumState state, int id)
{
ObjectId = id;
AttachedObject = state;
}
public void SetVisible(bool visible) public void SetVisible(bool visible)
{ {
IsMeantToBeEnabled = visible; IsMeantToBeEnabled = visible;

View File

@ -13,11 +13,9 @@ namespace QSB.QuantumSync.WorldObjects
{ {
public Text DebugBoxText; public Text DebugBoxText;
public override void Init(SocketedQuantumObject quantumObject, int id) public override void Init()
{ {
ObjectId = id; base.Init();
AttachedObject = quantumObject;
base.Init(quantumObject, id);
if (QSBCore.ShowQuantumDebugBoxes) if (QSBCore.ShowQuantumDebugBoxes)
{ {
DebugBoxText = DebugBoxManager.CreateBox(AttachedObject.transform, 0, $"Socketed\r\nid:{ObjectId}").GetComponent<Text>(); DebugBoxText = DebugBoxManager.CreateBox(AttachedObject.transform, 0, $"Socketed\r\nid:{ObjectId}").GetComponent<Text>();

View File

@ -27,10 +27,8 @@ namespace QSB.SectorSync.WorldObjects
public Vector3 Position => Transform.position; public Vector3 Position => Transform.position;
public bool IsFakeSector => AttachedObject.GetType() == typeof(FakeSector); public bool IsFakeSector => AttachedObject.GetType() == typeof(FakeSector);
public override void Init(Sector sector, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = sector;
if (IsFakeSector) if (IsFakeSector)
{ {
QSBSectorManager.Instance.FakeSectors.Add(this); QSBSectorManager.Instance.FakeSectors.Add(this);

View File

@ -6,12 +6,6 @@ namespace QSB.ShipSync.WorldObjects
{ {
internal class QSBShipComponent : WorldObject<ShipComponent> internal class QSBShipComponent : WorldObject<ShipComponent>
{ {
public override void Init(ShipComponent component, int id)
{
ObjectId = id;
AttachedObject = component;
}
public void SetDamaged() public void SetDamaged()
{ {
DebugLog.DebugWrite($"[S COMPONENT] {AttachedObject} Set damaged."); DebugLog.DebugWrite($"[S COMPONENT] {AttachedObject} Set damaged.");

View File

@ -6,12 +6,6 @@ namespace QSB.ShipSync.WorldObjects
{ {
internal class QSBShipHull : WorldObject<ShipHull> internal class QSBShipHull : WorldObject<ShipHull>
{ {
public override void Init(ShipHull hull, int id)
{
ObjectId = id;
AttachedObject = hull;
}
public void SetDamaged() public void SetDamaged()
{ {
DebugLog.DebugWrite($"[HULL] {AttachedObject} Set damaged."); DebugLog.DebugWrite($"[HULL] {AttachedObject} Set damaged.");

View File

@ -12,10 +12,8 @@ namespace QSB.Tools.ProbeLauncherTool.WorldObjects
private ProbeLauncherEffects _effects; private ProbeLauncherEffects _effects;
private SingularityWarpEffect _probeRetrievalEffect; private SingularityWarpEffect _probeRetrievalEffect;
public override void Init(ProbeLauncher launcher, int id) public override void Init()
{ {
ObjectId = id;
AttachedObject = launcher;
_probeRetrievalLength = AttachedObject.GetValue<float>("_probeRetrievalLength"); _probeRetrievalLength = AttachedObject.GetValue<float>("_probeRetrievalLength");
_preLaunchProbeProxy = AttachedObject.GetValue<GameObject>("_preLaunchProbeProxy"); _preLaunchProbeProxy = AttachedObject.GetValue<GameObject>("_preLaunchProbeProxy");
_effects = AttachedObject.GetValue<ProbeLauncherEffects>("_effects"); _effects = AttachedObject.GetValue<ProbeLauncherEffects>("_effects");

View File

@ -6,12 +6,6 @@ namespace QSB.Tools.TranslatorTool.TranslationSync.WorldObjects
{ {
internal class QSBComputer : WorldObject<NomaiComputer> internal class QSBComputer : WorldObject<NomaiComputer>
{ {
public override void Init(NomaiComputer computer, int id)
{
ObjectId = id;
AttachedObject = computer;
}
public void HandleSetAsTranslated(int id) public void HandleSetAsTranslated(int id)
{ {
if (AttachedObject.IsTranslated(id)) if (AttachedObject.IsTranslated(id))

View File

@ -7,12 +7,6 @@ namespace QSB.Tools.TranslatorTool.TranslationSync.WorldObjects
{ {
internal class QSBVesselComputer : WorldObject<NomaiVesselComputer> internal class QSBVesselComputer : WorldObject<NomaiVesselComputer>
{ {
public override void Init(NomaiVesselComputer computer, int id)
{
ObjectId = id;
AttachedObject = computer;
}
public void HandleSetAsTranslated(int id) public void HandleSetAsTranslated(int id)
{ {
if (AttachedObject.IsTranslated(id)) if (AttachedObject.IsTranslated(id))

View File

@ -6,12 +6,6 @@ namespace QSB.Tools.TranslatorTool.TranslationSync.WorldObjects
{ {
internal class QSBWallText : WorldObject<NomaiWallText> internal class QSBWallText : WorldObject<NomaiWallText>
{ {
public override void Init(NomaiWallText wallText, int id)
{
ObjectId = id;
AttachedObject = wallText;
}
public void HandleSetAsTranslated(int id) public void HandleSetAsTranslated(int id)
{ {
if (AttachedObject.IsTranslated(id)) if (AttachedObject.IsTranslated(id))

View File

@ -149,7 +149,9 @@ namespace QSB.WorldSync
for (var id = 0; id < list.Count; id++) for (var id = 0; id < list.Count; id++)
{ {
var obj = CreateWorldObject<TWorldObject>(); var obj = CreateWorldObject<TWorldObject>();
obj.Init(list[id], id); obj.AttachedObject = list[id];
obj.ObjectId = id;
obj.Init();
WorldObjectsToUnityObjects.Add(list[id], obj); WorldObjectsToUnityObjects.Add(list[id], obj);
} }
} }

View File

@ -6,12 +6,12 @@ namespace QSB.WorldSync
public abstract class WorldObject<T> : IWorldObject public abstract class WorldObject<T> : IWorldObject
where T : MonoBehaviour where T : MonoBehaviour
{ {
public int ObjectId { get; protected set; } public int ObjectId { get; set; }
public T AttachedObject { get; protected set; } public T AttachedObject { get; set; }
public string Name => AttachedObject == null ? "<NullObject!>" : AttachedObject.name; public string Name => AttachedObject == null ? "<NullObject!>" : AttachedObject.name;
public string LogName => $"{QSBPlayerManager.LocalPlayerId}.{ObjectId}:{GetType().Name}"; public string LogName => $"{QSBPlayerManager.LocalPlayerId}.{ObjectId}:{GetType().Name}";
public abstract void Init(T attachedObject, int id); public virtual void Init() { }
public virtual void OnRemoval() { } public virtual void OnRemoval() { }
public MonoBehaviour ReturnObject() => AttachedObject; public MonoBehaviour ReturnObject() => AttachedObject;

View File

@ -5,12 +5,6 @@ namespace QSB.ZeroGCaveSync.WorldObjects
{ {
internal class QSBSatelliteNode : WorldObject<SatelliteNode> internal class QSBSatelliteNode : WorldObject<SatelliteNode>
{ {
public override void Init(SatelliteNode component, int id)
{
ObjectId = id;
AttachedObject = component;
}
public void SetRepaired() public void SetRepaired()
{ {
DebugLog.DebugWrite($"[SATELLITE NODE] {AttachedObject} Set repaired."); DebugLog.DebugWrite($"[SATELLITE NODE] {AttachedObject} Set repaired.");