Improve type safety of event types and version bump
This commit is contained in:
parent
2149458d96
commit
d00bdc80ed
11 changed files with 34 additions and 26 deletions
|
@ -29,12 +29,6 @@ namespace GamecraftModdingAPI.Events
|
||||||
{
|
{
|
||||||
stateSyncReg.buildModeInitializationEngines.Add(buildEngine);
|
stateSyncReg.buildModeInitializationEngines.Add(buildEngine);
|
||||||
stateSyncReg.simulationModeInitializationEngines.Add(simEngine);
|
stateSyncReg.simulationModeInitializationEngines.Add(simEngine);
|
||||||
}
|
|
||||||
|
|
||||||
public static MethodBase NopeTargetMethod()
|
|
||||||
{
|
|
||||||
return typeof(DeterministicStepCompositionRoot).GetMethods().First(m => m.Name == "ComposeEnginesGroups")
|
|
||||||
.MakeGenericMethod(typeof(object));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// <param name="onActivated">The operation to do when the event is created</param>
|
/// <param name="onActivated">The operation to do when the event is created</param>
|
||||||
/// <param name="onDestroyed">The operation to do when the event is destroyed (if applicable)</param>
|
/// <param name="onDestroyed">The operation to do when the event is destroyed (if applicable)</param>
|
||||||
/// <returns>The created object</returns>
|
/// <returns>The created object</returns>
|
||||||
public static SimpleEventHandlerEngine CreateAddSimpleHandler(string name, object type, Action onActivated, Action onDestroyed)
|
public static SimpleEventHandlerEngine CreateAddSimpleHandler(string name, int type, Action onActivated, Action onDestroyed)
|
||||||
{
|
{
|
||||||
var engine = new SimpleEventHandlerEngine(onActivated, onDestroyed, type, name);
|
var engine = new SimpleEventHandlerEngine(onActivated, onDestroyed, type, name);
|
||||||
EventManager.AddEventHandler(engine);
|
EventManager.AddEventHandler(engine);
|
||||||
|
@ -36,7 +36,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// <param name="onActivated">The operation to do when the event is created</param>
|
/// <param name="onActivated">The operation to do when the event is created</param>
|
||||||
/// <param name="onDestroyed">The operation to do when the event is destroyed (if applicable)</param>
|
/// <param name="onDestroyed">The operation to do when the event is destroyed (if applicable)</param>
|
||||||
/// <returns>The created object</returns>
|
/// <returns>The created object</returns>
|
||||||
public static SimpleEventHandlerEngine CreateAddSimpleHandler(string name, object type, Action<EntitiesDB> onActivated, Action<EntitiesDB> onDestroyed)
|
public static SimpleEventHandlerEngine CreateAddSimpleHandler(string name, int type, Action<EntitiesDB> onActivated, Action<EntitiesDB> onDestroyed)
|
||||||
{
|
{
|
||||||
var engine = new SimpleEventHandlerEngine(onActivated, onDestroyed, type, name);
|
var engine = new SimpleEventHandlerEngine(onActivated, onDestroyed, type, name);
|
||||||
EventManager.AddEventHandler(engine);
|
EventManager.AddEventHandler(engine);
|
||||||
|
@ -50,7 +50,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// <param name="type">The type of event to emit</param>
|
/// <param name="type">The type of event to emit</param>
|
||||||
/// <param name="isRemovable">Will removing this engine not break your code?</param>
|
/// <param name="isRemovable">Will removing this engine not break your code?</param>
|
||||||
/// <returns>The created object</returns>
|
/// <returns>The created object</returns>
|
||||||
public static SimpleEventEmitterEngine CreateAddSimpleEmitter(string name, object type, bool isRemovable = true)
|
public static SimpleEventEmitterEngine CreateAddSimpleEmitter(string name, int type, bool isRemovable = true)
|
||||||
{
|
{
|
||||||
var engine = new SimpleEventEmitterEngine(type, name, isRemovable);
|
var engine = new SimpleEventEmitterEngine(type, name, isRemovable);
|
||||||
EventManager.AddEventEmitter(engine);
|
EventManager.AddEventEmitter(engine);
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
|
|
||||||
public EntitiesDB entitiesDB { set; private get; }
|
public EntitiesDB entitiesDB { set; private get; }
|
||||||
|
|
||||||
public object type { get; } = EventType.BuildSwitchedTo;
|
public int type { get; } = (int)EventType.BuildSwitchedTo;
|
||||||
|
|
||||||
public bool isRemovable { get; } = false;
|
public bool isRemovable { get; } = false;
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
|
|
||||||
public EntitiesDB entitiesDB { set; private get; }
|
public EntitiesDB entitiesDB { set; private get; }
|
||||||
|
|
||||||
public object type { get; } = EventType.SimulationSwitchedTo;
|
public int type { get; } = (int)EventType.SimulationSwitchedTo;
|
||||||
|
|
||||||
public bool isRemovable { get; } = false;
|
public bool isRemovable { get; } = false;
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The type of event emitted
|
/// The type of event emitted
|
||||||
/// </summary>
|
/// </summary>
|
||||||
object type { get; }
|
int type { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether the emitter can be removed with Manager.RemoveEventEmitter(name)
|
/// Whether the emitter can be removed with Manager.RemoveEventEmitter(name)
|
||||||
|
|
|
@ -11,11 +11,13 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The event entity struct
|
/// The event entity struct
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public struct ModEventEntityStruct : IEntityStruct
|
public struct ModEventEntityStruct : IEntityStruct, INeedEGID
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The type of event that has been emitted
|
/// The type of event that has been emitted
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public object type;
|
public int type;
|
||||||
}
|
|
||||||
|
public EGID ID { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
public class SimpleEventEmitterEngine : IEventEmitterEngine
|
public class SimpleEventEmitterEngine : IEventEmitterEngine
|
||||||
{
|
{
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public object type { get; set; }
|
public int type { get; set; }
|
||||||
|
|
||||||
public bool isRemovable { get; }
|
public bool isRemovable { get; }
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// <param name="isRemovable">Will removing this engine not break your code?</param>
|
/// <param name="isRemovable">Will removing this engine not break your code?</param>
|
||||||
public SimpleEventEmitterEngine(EventType type, string name, bool isRemovable = true)
|
public SimpleEventEmitterEngine(EventType type, string name, bool isRemovable = true)
|
||||||
{
|
{
|
||||||
this.type = type;
|
this.type = (int)type;
|
||||||
this.Name = name;
|
this.Name = name;
|
||||||
this.isRemovable = isRemovable;
|
this.isRemovable = isRemovable;
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// <param name="type">The object to use for ModEventEntityStruct.type</param>
|
/// <param name="type">The object to use for ModEventEntityStruct.type</param>
|
||||||
/// <param name="name">The name of this engine</param>
|
/// <param name="name">The name of this engine</param>
|
||||||
/// <param name="isRemovable">Will removing this engine not break your code?</param>
|
/// <param name="isRemovable">Will removing this engine not break your code?</param>
|
||||||
public SimpleEventEmitterEngine(object type, string name, bool isRemovable = true)
|
public SimpleEventEmitterEngine(int type, string name, bool isRemovable = true)
|
||||||
{
|
{
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.Name = name;
|
this.Name = name;
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class SimpleEventHandlerEngine : IEventHandlerEngine
|
public class SimpleEventHandlerEngine : IEventHandlerEngine
|
||||||
{
|
{
|
||||||
public object type { get; set; }
|
public int type { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
private bool isActivated = false;
|
private bool isActivated = false;
|
||||||
|
@ -71,7 +71,7 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// <param name="type">The type of event to handle</param>
|
/// <param name="type">The type of event to handle</param>
|
||||||
/// <param name="name">The name of the engine</param>
|
/// <param name="name">The name of the engine</param>
|
||||||
/// <param name="simple">A useless parameter to use to avoid Python overload resolution errors</param>
|
/// <param name="simple">A useless parameter to use to avoid Python overload resolution errors</param>
|
||||||
public SimpleEventHandlerEngine(Action activated, Action removed, object type, string name, bool simple = true)
|
public SimpleEventHandlerEngine(Action activated, Action removed, int type, string name, bool simple = true)
|
||||||
: this((EntitiesDB _) => { activated.Invoke(); }, (EntitiesDB _) => { removed.Invoke(); }, type, name) { }
|
: this((EntitiesDB _) => { activated.Invoke(); }, (EntitiesDB _) => { removed.Invoke(); }, type, name) { }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -81,12 +81,18 @@ namespace GamecraftModdingAPI.Events
|
||||||
/// <param name="removed">The operation to do when the event is destroyed (if applicable)</param>
|
/// <param name="removed">The operation to do when the event is destroyed (if applicable)</param>
|
||||||
/// <param name="type">The type of event to handler</param>
|
/// <param name="type">The type of event to handler</param>
|
||||||
/// <param name="name">The name of the engine</param>
|
/// <param name="name">The name of the engine</param>
|
||||||
public SimpleEventHandlerEngine(Action<EntitiesDB> activated, Action<EntitiesDB> removed, object type, string name)
|
public SimpleEventHandlerEngine(Action<EntitiesDB> activated, Action<EntitiesDB> removed, int type, string name)
|
||||||
{
|
{
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.Name = name;
|
this.Name = name;
|
||||||
this.onActivated = activated;
|
this.onActivated = activated;
|
||||||
this.onDestroyed = removed;
|
this.onDestroyed = removed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SimpleEventHandlerEngine(Action activated, Action removed, EventType type, string name, bool simple = true)
|
||||||
|
: this((EntitiesDB _) => { activated.Invoke(); }, (EntitiesDB _) => { removed.Invoke(); }, (int)type, name) { }
|
||||||
|
|
||||||
|
public SimpleEventHandlerEngine(Action<EntitiesDB> activated, Action<EntitiesDB> removed, EventType type, string name, bool simple = true)
|
||||||
|
: this(activated, removed, (int)type, name) { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net472</TargetFramework>
|
<TargetFramework>net472</TargetFramework>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
<Version>0.1.4.0</Version>
|
<Version>0.2.0</Version>
|
||||||
<Authors>Exmods</Authors>
|
<Authors>Exmods</Authors>
|
||||||
<PackageLicenseExpression>GNU General Public Licence 3+</PackageLicenseExpression>
|
<PackageLicenseExpression>GNU General Public Licence 3+</PackageLicenseExpression>
|
||||||
<PackageProjectUrl>https://git.exmods.org/modtainers/GamecraftModdingAPI</PackageProjectUrl>
|
<PackageProjectUrl>https://git.exmods.org/modtainers/GamecraftModdingAPI</PackageProjectUrl>
|
||||||
|
@ -542,7 +542,4 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!--End Dependencies-->
|
<!--End Dependencies-->
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Inventory\" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -13,6 +13,11 @@ namespace GamecraftModdingAPI.Inventory
|
||||||
{
|
{
|
||||||
private static HotbarEngine hotbarEngine = new HotbarEngine();
|
private static HotbarEngine hotbarEngine = new HotbarEngine();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Switch the block in the player's hand
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="block">The block to switch to.</param>
|
||||||
|
/// <param name="playerID">The player. Omit this to use the local player.</param>
|
||||||
public static void EquipBlock(BlockIDs block, uint playerID = uint.MaxValue)
|
public static void EquipBlock(BlockIDs block, uint playerID = uint.MaxValue)
|
||||||
{
|
{
|
||||||
if (playerID == uint.MaxValue)
|
if (playerID == uint.MaxValue)
|
||||||
|
@ -25,6 +30,10 @@ namespace GamecraftModdingAPI.Inventory
|
||||||
// reason: the game expects a Dictionary entry for the tweaked stats
|
// reason: the game expects a Dictionary entry for the tweaked stats
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the block in the player's hand
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The equipped block.</returns>
|
||||||
public static BlockIDs GetEquippedBlock()
|
public static BlockIDs GetEquippedBlock()
|
||||||
{
|
{
|
||||||
return HotbarSlotSelectionHandlerEnginePatch.EquippedPartID;
|
return HotbarSlotSelectionHandlerEnginePatch.EquippedPartID;
|
||||||
|
|
|
@ -38,7 +38,7 @@ PROJECT_NAME = "GamecraftModdingAPI"
|
||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
# control system is used.
|
# control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = "v0.1.4.0"
|
PROJECT_NUMBER = "v0.2.0"
|
||||||
|
|
||||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||||
# for a project that appears at the top of each page and should give viewer a
|
# for a project that appears at the top of each page and should give viewer a
|
||||||
|
|
Loading…
Reference in a new issue