Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions Features/ObjectSpawner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,23 @@ public static SchematicObject SpawnSchematic(string schematicName, Vector3 posit

public static SchematicObject SpawnSchematic(string schematicName, Vector3 position, Vector3 eulerAngles, Vector3 scale) =>
SpawnSchematic(new() { SchematicName = schematicName, Position = position, Rotation = eulerAngles, Scale = scale });

//Data section

public static SchematicObject SpawnSchematic(string schematicName, Vector3 position, SchematicObjectDataList data) =>
SpawnSchematic(new() { SchematicName = schematicName, Position = position, Data = data });

public static SchematicObject SpawnSchematic(string schematicName, Vector3 position, Quaternion rotation, SchematicObjectDataList data) =>
SpawnSchematic(new() { SchematicName = schematicName, Position = position, Rotation = rotation.eulerAngles, Data = data });

public static SchematicObject SpawnSchematic(string schematicName, Vector3 position, Vector3 eulerAngles, SchematicObjectDataList data) =>
SpawnSchematic(new() { SchematicName = schematicName, Position = position, Rotation = eulerAngles, Data = data });

public static SchematicObject SpawnSchematic(string schematicName, Vector3 position, Quaternion rotation, Vector3 scale, SchematicObjectDataList data) =>
SpawnSchematic(new() { SchematicName = schematicName, Position = position, Rotation = rotation.eulerAngles, Scale = scale, Data = data });

public static SchematicObject SpawnSchematic(string schematicName, Vector3 position, Vector3 eulerAngles, Vector3 scale, SchematicObjectDataList data) =>
SpawnSchematic(new() { SchematicName = schematicName, Position = position, Rotation = eulerAngles, Scale = scale, Data = data });

public static bool TrySpawnSchematic(SerializableSchematic serializableSchematic, out SchematicObject schematic)
{
Expand Down
11 changes: 9 additions & 2 deletions Features/Serializable/Schematics/SerializableSchematic.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public class SerializableSchematic : SerializableObject
{
public string SchematicName { get; set; } = "None";

public SchematicObjectDataList Data { get; set; } = null;

public override GameObject? SpawnOrUpdateObject(Room? room = null, GameObject? instance = null)
{
PrimitiveObjectToy schematic = instance == null ? UnityEngine.Object.Instantiate(PrefabManager.PrimitiveObject) : instance.GetComponent<PrimitiveObjectToy>();
Expand All @@ -28,10 +30,15 @@ public class SerializableSchematic : SerializableObject
schematic.transform.SetPositionAndRotation(position, rotation);
schematic.transform.localScale = Scale;

SchematicObjectDataList? data = null;

if (instance == null)
{
_ = MapUtils.TryGetSchematicDataByName(SchematicName, out SchematicObjectDataList? data) ? data : null;

if(Data is null)
_ = MapUtils.TryGetSchematicDataByName(SchematicName, out data) ? data : null;
else
data = Data;

if (data == null)
{
GameObject.Destroy(schematic.gameObject);
Expand Down