mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-21 18:40:03 +00:00
make assetId incrementation automatic
This commit is contained in:
parent
2889bffb16
commit
fa8f5045e2
@ -106,52 +106,52 @@ public class QSBNetworkManager : NetworkManager, IAddComponentOnStart
|
||||
playerPrefab = QSBCore.NetworkAssetBundle.LoadAsset<GameObject>("Assets/Prefabs/NETWORK_Player_Body.prefab");
|
||||
playerPrefab.GetRequiredComponent<NetworkIdentity>().SetValue("_assetId", (uint)1);
|
||||
|
||||
ShipPrefab = MakeNewNetworkObject(2, "NetworkShip", typeof(ShipTransformSync));
|
||||
ShipPrefab = MakeNewNetworkObject("NetworkShip", typeof(ShipTransformSync));
|
||||
var shipVector3Sync = ShipPrefab.AddComponent<Vector3VariableSyncer>();
|
||||
var shipThrustSync = ShipPrefab.AddComponent<ShipThrusterVariableSyncer>();
|
||||
shipThrustSync.AccelerationSyncer = shipVector3Sync;
|
||||
spawnPrefabs.Add(ShipPrefab);
|
||||
|
||||
_probePrefab = MakeNewNetworkObject(3, "NetworkProbe", typeof(PlayerProbeSync));
|
||||
_probePrefab = MakeNewNetworkObject("NetworkProbe", typeof(PlayerProbeSync));
|
||||
spawnPrefabs.Add(_probePrefab);
|
||||
|
||||
OrbPrefab = MakeNewNetworkObject(4, "NetworkOrb", typeof(NomaiOrbTransformSync));
|
||||
OrbPrefab = MakeNewNetworkObject("NetworkOrb", typeof(NomaiOrbTransformSync));
|
||||
spawnPrefabs.Add(OrbPrefab);
|
||||
|
||||
AnglerPrefab = MakeNewNetworkObject(5, "NetworkAngler", typeof(AnglerTransformSync));
|
||||
AnglerPrefab = MakeNewNetworkObject("NetworkAngler", typeof(AnglerTransformSync));
|
||||
spawnPrefabs.Add(AnglerPrefab);
|
||||
|
||||
JellyfishPrefab = MakeNewNetworkObject(6, "NetworkJellyfish", typeof(JellyfishTransformSync));
|
||||
JellyfishPrefab = MakeNewNetworkObject("NetworkJellyfish", typeof(JellyfishTransformSync));
|
||||
spawnPrefabs.Add(JellyfishPrefab);
|
||||
|
||||
OccasionalPrefab = MakeNewNetworkObject(7, "NetworkOccasional", typeof(OccasionalTransformSync));
|
||||
OccasionalPrefab = MakeNewNetworkObject("NetworkOccasional", typeof(OccasionalTransformSync));
|
||||
spawnPrefabs.Add(OccasionalPrefab);
|
||||
|
||||
RaftPrefab = MakeNewNetworkObject(8, "NetworkRaft", typeof(RaftTransformSync));
|
||||
RaftPrefab = MakeNewNetworkObject("NetworkRaft", typeof(RaftTransformSync));
|
||||
spawnPrefabs.Add(RaftPrefab);
|
||||
|
||||
DoorPrefab = MakeNewNetworkObject(9, "NetworkEclipseDoor", typeof(EclipseDoorVariableSyncer));
|
||||
DoorPrefab = MakeNewNetworkObject("NetworkEclipseDoor", typeof(EclipseDoorVariableSyncer));
|
||||
spawnPrefabs.Add(DoorPrefab);
|
||||
|
||||
ElevatorPrefab = MakeNewNetworkObject(10, "NetworkEclipseElevator", typeof(EclipseElevatorVariableSyncer));
|
||||
ElevatorPrefab = MakeNewNetworkObject("NetworkEclipseElevator", typeof(EclipseElevatorVariableSyncer));
|
||||
spawnPrefabs.Add(ElevatorPrefab);
|
||||
|
||||
AirlockPrefab = MakeNewNetworkObject(11, "NetworkGhostAirlock", typeof(AirlockVariableSyncer));
|
||||
AirlockPrefab = MakeNewNetworkObject("NetworkGhostAirlock", typeof(AirlockVariableSyncer));
|
||||
spawnPrefabs.Add(AirlockPrefab);
|
||||
|
||||
ShipModulePrefab = MakeNewNetworkObject(12, "NetworkShipModule", typeof(ShipModuleTransformSync));
|
||||
ShipModulePrefab = MakeNewNetworkObject("NetworkShipModule", typeof(ShipModuleTransformSync));
|
||||
spawnPrefabs.Add(ShipModulePrefab);
|
||||
|
||||
ShipLegPrefab = MakeNewNetworkObject(13, "NetworkShipLeg", typeof(ShipLegTransformSync));
|
||||
ShipLegPrefab = MakeNewNetworkObject("NetworkShipLeg", typeof(ShipLegTransformSync));
|
||||
spawnPrefabs.Add(ShipLegPrefab);
|
||||
|
||||
ModelShipPrefab = MakeNewNetworkObject(14, "NetworkModelShip", typeof(ModelShipTransformSync));
|
||||
ModelShipPrefab = MakeNewNetworkObject("NetworkModelShip", typeof(ModelShipTransformSync));
|
||||
var modelShipVector3Syncer = ModelShipPrefab.AddComponent<Vector3VariableSyncer>();
|
||||
var modelShipThrusterVariableSyncer = ModelShipPrefab.AddComponent<ModelShipThrusterVariableSyncer>();
|
||||
modelShipThrusterVariableSyncer.AccelerationSyncer = modelShipVector3Syncer;
|
||||
spawnPrefabs.Add(ModelShipPrefab);
|
||||
|
||||
StationaryProbeLauncherPrefab = MakeNewNetworkObject(15, "NetworkStationaryProbeLauncher", typeof(StationaryProbeLauncherVariableSyncer));
|
||||
StationaryProbeLauncherPrefab = MakeNewNetworkObject("NetworkStationaryProbeLauncher", typeof(StationaryProbeLauncherVariableSyncer));
|
||||
spawnPrefabs.Add(StationaryProbeLauncherPrefab);
|
||||
|
||||
ConfigureNetworkManager();
|
||||
@ -207,11 +207,13 @@ public class QSBNetworkManager : NetworkManager, IAddComponentOnStart
|
||||
}
|
||||
});
|
||||
|
||||
private static int _assetId = 2;
|
||||
|
||||
/// create a new network prefab from the network object prefab template.
|
||||
/// this works by calling Unload(false) and then reloading the AssetBundle,
|
||||
/// which makes LoadAsset give you a new resource.
|
||||
/// see https://docs.unity3d.com/Manual/AssetBundles-Native.html.
|
||||
private static GameObject MakeNewNetworkObject(uint assetId, string name, Type networkBehaviourType)
|
||||
public static GameObject MakeNewNetworkObject(string name, Type networkBehaviourType)
|
||||
{
|
||||
var bundle = QSBCore.Helper.Assets.LoadBundle("AssetBundles/qsb_empty");
|
||||
|
||||
@ -225,8 +227,11 @@ public class QSBNetworkManager : NetworkManager, IAddComponentOnStart
|
||||
bundle.Unload(false);
|
||||
|
||||
template.name = name;
|
||||
template.AddComponent<NetworkIdentity>().SetValue("_assetId", assetId);
|
||||
template.AddComponent<NetworkIdentity>().SetValue("_assetId", _assetId);
|
||||
template.AddComponent(networkBehaviourType);
|
||||
|
||||
_assetId++;
|
||||
|
||||
return template;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user