better way of creating items
This commit is contained in:
@@ -258,6 +258,29 @@ namespace Barotrauma
|
|||||||
EntitySpawner.Spawner.AddToRemoveQueue(item);
|
EntitySpawner.Spawner.AddToRemoveQueue(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ItemPrefab GetItemPrefab(string itemNameOrId)
|
||||||
|
{
|
||||||
|
ItemPrefab itemPrefab =
|
||||||
|
(MapEntityPrefab.Find(itemNameOrId, identifier: null, showErrorMessages: false) ??
|
||||||
|
MapEntityPrefab.Find(null, identifier: itemNameOrId, showErrorMessages: false)) as ItemPrefab;
|
||||||
|
|
||||||
|
return itemPrefab;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddItemPrefabToSpawnQueue(ItemPrefab itemPrefab, Vector2 position, DynValue spawned = null)
|
||||||
|
{
|
||||||
|
EntitySpawner.Spawner.AddToSpawnQueue(itemPrefab, position, onSpawned: (Item item) => {
|
||||||
|
if (spawned?.Type == DataType.Function) env.lua.Call(spawned, UserData.Create(item));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddItemPrefabToSpawnQueue(ItemPrefab itemPrefab, Inventory inventory, DynValue spawned = null)
|
||||||
|
{
|
||||||
|
EntitySpawner.Spawner.AddToSpawnQueue(itemPrefab, inventory, onSpawned: (Item item) => {
|
||||||
|
if (spawned?.Type == DataType.Function) env.lua.Call(spawned, UserData.Create(item));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public static Submarine GetRespawnSub()
|
public static Submarine GetRespawnSub()
|
||||||
{
|
{
|
||||||
if (GameMain.Server.RespawnManager == null)
|
if (GameMain.Server.RespawnManager == null)
|
||||||
@@ -316,6 +339,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
return new Signal(value, stepsTaken, sender, source, power, strength);
|
return new Signal(value, stepsTaken, sender, source, power, strength);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -152,6 +152,10 @@ namespace Barotrauma
|
|||||||
UserData.RegisterType<PhysicsBody>();
|
UserData.RegisterType<PhysicsBody>();
|
||||||
UserData.RegisterType<SubmarineBody>();
|
UserData.RegisterType<SubmarineBody>();
|
||||||
UserData.RegisterType<InvSlotType>();
|
UserData.RegisterType<InvSlotType>();
|
||||||
|
UserData.RegisterType<ItemPrefab>();
|
||||||
|
UserData.RegisterType<SerializableProperty>();
|
||||||
|
UserData.RegisterType<StatusEffect>();
|
||||||
|
|
||||||
|
|
||||||
lua = new Script(CoreModules.Preset_SoftSandbox | CoreModules.LoadMethods);
|
lua = new Script(CoreModules.Preset_SoftSandbox | CoreModules.LoadMethods);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user