From d30f860c099e916143aaa4ff279ccebdb169a402 Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Wed, 11 Sep 2024 19:20:38 +0200 Subject: [PATCH 01/16] Generate source-realm room events --- .../Frontends/SyntaxRewriters/SyntaxUtils.cs | 4 + Runtime/Events.meta | 8 + Runtime/Events/Generated.meta | 8 + Runtime/Events/Generated/RoomEvent3.cs | 373 ++++++++++++++++++ Runtime/Events/Generated/RoomEvent3.cs.meta | 11 + 5 files changed, 404 insertions(+) create mode 100644 Runtime/Events.meta create mode 100644 Runtime/Events/Generated.meta create mode 100644 Runtime/Events/Generated/RoomEvent3.cs create mode 100644 Runtime/Events/Generated/RoomEvent3.cs.meta diff --git a/Editor/Frontends/SyntaxRewriters/SyntaxUtils.cs b/Editor/Frontends/SyntaxRewriters/SyntaxUtils.cs index cf666e1..43ddc50 100644 --- a/Editor/Frontends/SyntaxRewriters/SyntaxUtils.cs +++ b/Editor/Frontends/SyntaxRewriters/SyntaxUtils.cs @@ -66,6 +66,10 @@ public static ArgumentListSyntax ArgumentList(params ExpressionSyntax[] argument return SyntaxFactory.ArgumentList(SyntaxFactory.SeparatedList(withCommas)); } public static TypeArgumentListSyntax TypeArgumentList(params TypeSyntax[] arguments) + { + return TypeArgumentList((IEnumerable)arguments); + } + public static TypeArgumentListSyntax TypeArgumentList(IEnumerable arguments) { var withCommas = CommaSeparated(arguments.Select(arg => (SyntaxNodeOrToken)arg)); diff --git a/Runtime/Events.meta b/Runtime/Events.meta new file mode 100644 index 0000000..84e1c89 --- /dev/null +++ b/Runtime/Events.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ec3c442858d8a546a51d5a6e40d9f23 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Events/Generated.meta b/Runtime/Events/Generated.meta new file mode 100644 index 0000000..7d601f0 --- /dev/null +++ b/Runtime/Events/Generated.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cffd55fa7d942dc40be118bf4536f21e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Events/Generated/RoomEvent3.cs b/Runtime/Events/Generated/RoomEvent3.cs new file mode 100644 index 0000000..d60e619 --- /dev/null +++ b/Runtime/Events/Generated/RoomEvent3.cs @@ -0,0 +1,373 @@ +using RRCGSource; +using RRCG; +using UnityEngine; + +namespace RRCGSource +{ + public class RoomEvent3 + { + /// + /// AI Died + /// + public static void AIDied(AlternativeExec<(AI aI, Combatant attacker)> onAIDied) + { + } + + /// + /// AI Spawned + /// + public static void AISpawned(AlternativeExec onAISpawned) + { + } + + /// + /// Consumable Purchased + /// + public static void ConsumablePurchased(AlternativeExec<(Consumable consumable, int quantity)> onConsumablePurchased) + { + } + + /// + /// Consumable Used + /// + public static void ConsumableUsed(AlternativeExec onConsumableUsed) + { + } + + /// + /// DEPRECATED Local Player Spawned + /// + public static void DEPRECATEDLocalPlayerSpawned(AlternativeExec onDEPRECATEDLocalPlayerSpawned) + { + } + + /// + /// DEPRECATED Player Left + /// + public static void DEPRECATEDPlayerLeft(AlternativeExec onDEPRECATEDPlayerLeft) + { + } + + /// + /// Interaction Volume Hold Cancel + /// + public static void InteractionVolumeHoldCancel(AlternativeExec onInteractionVolumeHoldCancel) + { + } + + /// + /// Interaction Volume Hold End + /// + public static void InteractionVolumeHoldEnd(AlternativeExec onInteractionVolumeHoldEnd) + { + } + + /// + /// Interaction Volume Hold Start + /// + public static void InteractionVolumeHoldStart(AlternativeExec onInteractionVolumeHoldStart) + { + } + + /// + /// Interaction Volume Hold Update + /// + public static void InteractionVolumeHoldUpdate(AlternativeExec onInteractionVolumeHoldUpdate) + { + } + + /// + /// Interaction Volume Hover End + /// + public static void InteractionVolumeHoverEnd(AlternativeExec onInteractionVolumeHoverEnd) + { + } + + /// + /// Interaction Volume Hover Start + /// + public static void InteractionVolumeHoverStart(AlternativeExec onInteractionVolumeHoverStart) + { + } + + /// + /// Interaction Volume On Use + /// + public static void InteractionVolumeOnUse(AlternativeExec<(InteractionVolume interactionVolume, Player player)> onInteractionVolumeOnUse) + { + } + + /// + /// Inventory Item Count Changed + /// + public static void InventoryItemCountChanged(AlternativeExec<(InventoryItem inventoryItem, int oldCount, int newCount)> onInventoryItemCountChanged) + { + } + + /// + /// Inventory Item Equipped + /// + public static void InventoryItemEquipped(AlternativeExec onInventoryItemEquipped) + { + } + + /// + /// Inventory Item Unequipped + /// + public static void InventoryItemUnequipped(AlternativeExec onInventoryItemUnequipped) + { + } + + /// + /// Inventory Item Used + /// + public static void InventoryItemUsed(AlternativeExec onInventoryItemUsed) + { + } + + /// + /// Level Reached + /// + public static void LevelReached(AlternativeExec onLevelReached) + { + } + + /// + /// Local Player Third Person Active Changed + /// + public static void LocalPlayerThirdPersonActiveChanged(AlternativeExec<(bool active, bool toggledByPlayer)> onLocalPlayerThirdPersonActiveChanged) + { + } + + /// + /// On Player Clamber Started + /// + public static void OnPlayerClamberStarted(AlternativeExec onPlayerClamberStarted) + { + } + + /// + /// On Player Crouch Started + /// + public static void OnPlayerCrouchStarted(AlternativeExec onPlayerCrouchStarted) + { + } + + /// + /// On Player Fly Started + /// + public static void OnPlayerFlyStarted(AlternativeExec onPlayerFlyStarted) + { + } + + /// + /// On Player Fly Stopped + /// + public static void OnPlayerFlyStopped(AlternativeExec onPlayerFlyStopped) + { + } + + /// + /// On Player Footstep + /// + public static void OnPlayerFootstep(AlternativeExec<(Player player, RecRoomObject surface, Vector3 position)> onPlayerFootstep) + { + } + + /// + /// On Player Grabbed Object + /// + public static void OnPlayerGrabbedObject(AlternativeExec<(Player player, RecRoomObject @object)> onPlayerGrabbedObject) + { + } + + /// + /// On Player Grounded + /// + public static void OnPlayerGrounded(AlternativeExec<(Player player, RecRoomObject surface, Vector3 position)> onPlayerGrounded) + { + } + + /// + /// On Player Jumped + /// + public static void OnPlayerJumped(AlternativeExec<(Player player, RecRoomObject surface, Vector3 position)> onPlayerJumped) + { + } + + /// + /// On Player Landed + /// + public static void OnPlayerLanded(AlternativeExec<(Player player, RecRoomObject surface, Vector3 position)> onPlayerLanded) + { + } + + /// + /// On Player Prone Started + /// + public static void OnPlayerProneStarted(AlternativeExec onPlayerProneStarted) + { + } + + /// + /// On Player Released Object + /// + public static void OnPlayerReleasedObject(AlternativeExec<(Player player, RecRoomObject @object)> onPlayerReleasedObject) + { + } + + /// + /// On Player Slide Started + /// + public static void OnPlayerSlideStarted(AlternativeExec onPlayerSlideStarted) + { + } + + /// + /// On Player Sprint Started + /// + public static void OnPlayerSprintStarted(AlternativeExec onPlayerSprintStarted) + { + } + + /// + /// On Player Sprint Stopped + /// + public static void OnPlayerSprintStopped(AlternativeExec onPlayerSprintStopped) + { + } + + /// + /// On Player Stand Started + /// + public static void OnPlayerStandStarted(AlternativeExec onPlayerStandStarted) + { + } + + /// + /// On Player Velocity Modified + /// + public static void OnPlayerVelocityModified(AlternativeExec<(Player player, bool ungroundedPlayer, Vector3 velocityDelta)> onPlayerVelocityModified) + { + } + + /// + /// On Player Wall Climb Started + /// + public static void OnPlayerWallClimbStarted(AlternativeExec onPlayerWallClimbStarted) + { + } + + /// + /// On Player Wall Run Started + /// + public static void OnPlayerWallRunStarted(AlternativeExec<(Player player, Vector3 wallNormal, RecRoomObject wallObject)> onPlayerWallRunStarted) + { + } + + /// + /// On Player Wall Run Stopped + /// + public static void OnPlayerWallRunStopped(AlternativeExec onPlayerWallRunStopped) + { + } + + /// + /// OnGameEnd + /// + public static void OnGameEnd(AlternativeExec onGameEnd) + { + } + + /// + /// OnGameStart + /// + public static void OnGameStart(AlternativeExec onGameStart) + { + } + + /// + /// Player Joined + /// + public static void PlayerJoined(AlternativeExec onPlayerJoined) + { + } + + /// + /// Player Leaving + /// + public static void PlayerLeaving(AlternativeExec onPlayerLeaving) + { + } + + /// + /// Player Left + /// + public static void PlayerLeft(AlternativeExec onPlayerLeft) + { + } + + /// + /// PlayerCollision + /// + public static void PlayerCollision(AlternativeExec<(Player playerA, Player playerB)> onPlayerCollision) + { + } + + /// + /// Room Authority Changed + /// + public static void RoomAuthorityChanged(AlternativeExec onRoomAuthorityChanged) + { + } + + /// + /// Room Key Purchased + /// + public static void RoomKeyPurchased(AlternativeExec onRoomKeyPurchased) + { + } + + /// + /// Room Loaded + /// + public static void RoomLoaded(AlternativeExec onRoomLoaded) + { + } + + /// + /// Room Offer Purchased + /// + public static void RoomOfferPurchased(AlternativeExec<(RoomOffer roomOffer, int quantity)> onRoomOfferPurchased) + { + } + + /// + /// Room Reset + /// + public static void RoomReset(AlternativeExec onRoomReset) + { + } + + /// + /// Test Event + /// + public static void TestEvent(AlternativeExec onTestEvent) + { + } + + /// + /// Update + /// + public static void Update(AlternativeExec onUpdate) + { + } + + /// + /// Update 30Hz + /// + public static void Update30Hz(AlternativeExec onUpdate30Hz) + { + } + } +} \ No newline at end of file diff --git a/Runtime/Events/Generated/RoomEvent3.cs.meta b/Runtime/Events/Generated/RoomEvent3.cs.meta new file mode 100644 index 0000000..ec6973d --- /dev/null +++ b/Runtime/Events/Generated/RoomEvent3.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8cd892e3d2059d4f8374662e37b817a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 0653685ce7c0a8ce5bf0678d32412b84637b0912 Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Thu, 26 Sep 2024 21:57:45 +0200 Subject: [PATCH 02/16] Add (missing?) none value to VariableKind --- Runtime/Chips/ClassChips/VariableBuild.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Runtime/Chips/ClassChips/VariableBuild.cs b/Runtime/Chips/ClassChips/VariableBuild.cs index aca59eb..7f37032 100644 --- a/Runtime/Chips/ClassChips/VariableBuild.cs +++ b/Runtime/Chips/ClassChips/VariableBuild.cs @@ -7,6 +7,7 @@ namespace RRCGBuild { public enum VariableKind { + None = -1, Local, Synced, Cloud From 63fff574fdb0a2c21d59d5e469f1fb9561bfb3dc Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Thu, 26 Sep 2024 21:58:00 +0200 Subject: [PATCH 03/16] Update chips --- Runtime/Chips/Generated/ChipBuilderGen.cs | 38 +++ Runtime/Chips/Generated/ChipType.cs | 4 + Runtime/Chips/Generated/ChipsGen.cs | 35 +++ Runtime/Events/Generated/RoomEvent3.cs | 266 --------------------- Runtime/Types/Generated/RRTypesBuildGen.cs | 1 + Runtime/Types/Generated/RRTypesGen.cs | 6 + 6 files changed, 84 insertions(+), 266 deletions(-) diff --git a/Runtime/Chips/Generated/ChipBuilderGen.cs b/Runtime/Chips/Generated/ChipBuilderGen.cs index 6421b98..bfda5b6 100644 --- a/Runtime/Chips/Generated/ChipBuilderGen.cs +++ b/Runtime/Chips/Generated/ChipBuilderGen.cs @@ -6008,6 +6008,17 @@ public static void LightSetColorIdDeprecated(LightPort target, IntPort color) return; } + public static void LightSetEnabled(LightPort target, BoolPort enabled) + { + Node node = new Node() + {Name = "Light Set Enabled", Type = "e30a20e6-8c98-4c9c-b0bc-bf8b0e11a74f", InputCount = 3}; + Context.current.AddNode(node); + node.ConnectInputPort(target, new Port{Node = node, Index = 1}); + node.ConnectInputPort(enabled, new Port{Node = node, Index = 2}); + ExecFlow.current.Advance(Context.current, new Port{Node = node}, new Port{Node = node}); + return; + } + public static void LightSetIntensity(LightPort target, FloatPort intensity) { Node node = new Node() @@ -6808,6 +6819,33 @@ public static BoolPort LocalPlayerGetObjectiveLogEnabled() return output_ports; } + public static BoolPort LocalPlayerIsUsingController() + { + Node node = new Node() + {Name = "Local Player Is Using Controller", Type = "00b3958e-4f84-42fa-acd8-cdb33dd44f25", InputCount = 0}; + Context.current.AddNode(node); + var output_ports = new BoolPort{Port = new Port{Node = node, Index = 0}}; + return output_ports; + } + + public static BoolPort LocalPlayerIsUsingKeyboardAndMouse() + { + Node node = new Node() + {Name = "Local Player Is Using Keyboard And Mouse", Type = "859d380b-573e-4db7-94dd-82729dcc2e39", InputCount = 0}; + Context.current.AddNode(node); + var output_ports = new BoolPort{Port = new Port{Node = node, Index = 0}}; + return output_ports; + } + + public static BoolPort LocalPlayerIsUsingTouch() + { + Node node = new Node() + {Name = "Local Player Is Using Touch", Type = "cbe72a5a-4616-4213-b2d7-660c58642bab", InputCount = 0}; + Context.current.AddNode(node); + var output_ports = new BoolPort{Port = new Port{Node = node, Index = 0}}; + return output_ports; + } + public static BoolPort LocalPlayerIsVR() { Node node = new Node() diff --git a/Runtime/Chips/Generated/ChipType.cs b/Runtime/Chips/Generated/ChipType.cs index b778738..5004fba 100644 --- a/Runtime/Chips/Generated/ChipType.cs +++ b/Runtime/Chips/Generated/ChipType.cs @@ -385,6 +385,7 @@ public class ChipType public const string LightSetAngleDeprecated = "873d8765-9dc7-41ea-87ef-dd6e32119af8"; public const string LightSetColor = "b2698906-68bd-4ea3-be98-35a23615b522"; public const string LightSetColorIdDeprecated = "2b6d9368-2ddc-41fb-ac14-b1a3561b19fc"; + public const string LightSetEnabled = "e30a20e6-8c98-4c9c-b0bc-bf8b0e11a74f"; public const string LightSetIntensity = "aa6dc013-3f5b-45f4-87a2-8aa4d16cc375"; public const string LightSetIntensityDeprecated = "902a47c8-3834-4858-bbae-5357281a507d"; public const string LightSetRange = "214bb1b7-f808-4a36-9c10-113045b4fe44"; @@ -445,6 +446,9 @@ public class ChipType public const string LocalPlayerGetIsThirdPersonActive = "d6d17e6f-855e-4f5a-9e33-843a788ce3a0"; public const string LocalPlayerGetObjectiveLogContent = "809ba66c-8877-4d74-ac4b-2d0730a1b576"; public const string LocalPlayerGetObjectiveLogEnabled = "ab20a5af-2d16-494c-b376-0fb5d2c59258"; + public const string LocalPlayerIsUsingController = "00b3958e-4f84-42fa-acd8-cdb33dd44f25"; + public const string LocalPlayerIsUsingKeyboardAndMouse = "859d380b-573e-4db7-94dd-82729dcc2e39"; + public const string LocalPlayerIsUsingTouch = "cbe72a5a-4616-4213-b2d7-660c58642bab"; public const string LocalPlayerIsVR = "f9101f3c-5b1d-4edc-b850-83bd72a4b1d4"; public const string LocalPlayerOverridePlayerVoiceRolloffR2 = "bb4ff641-2267-45e0-9e07-fc480b04f478"; public const string LocalPlayerRequestThirdPerson = "039fdbe0-31f2-4743-81ef-aa326b5e410f"; diff --git a/Runtime/Chips/Generated/ChipsGen.cs b/Runtime/Chips/Generated/ChipsGen.cs index 41bdae5..7c6a1d5 100644 --- a/Runtime/Chips/Generated/ChipsGen.cs +++ b/Runtime/Chips/Generated/ChipsGen.cs @@ -4171,6 +4171,14 @@ public static void LightSetColorIdDeprecated(Light target, int color) return; } + /// + /// Sets whether or not a Light is enabled and will emit light. + /// + public static void LightSetEnabled(Light target, bool enabled) + { + return; + } + /// /// Sets the brightness level for a point light or a spotlight. /// @@ -4745,6 +4753,33 @@ public static bool LocalPlayerGetObjectiveLogEnabled() return default; } + /// + /// Check whether the local player is using a controller or not. + /// + public static bool LocalPlayerIsUsingController() + { + return default; + } + + /// + /// Check whether the local player is using keyboard and mouse controls or not. + /// + public static bool LocalPlayerIsUsingKeyboardAndMouse() + { + return default; + } + + /// + /// Check whether the local player is using touch controls or not. + /// + public static bool LocalPlayerIsUsingTouch() + { + return default; + } + + /// + /// Check whether the local player is in VR or not. + /// public static bool LocalPlayerIsVR() { return default; diff --git a/Runtime/Events/Generated/RoomEvent3.cs b/Runtime/Events/Generated/RoomEvent3.cs index d60e619..86db646 100644 --- a/Runtime/Events/Generated/RoomEvent3.cs +++ b/Runtime/Events/Generated/RoomEvent3.cs @@ -6,20 +6,6 @@ namespace RRCGSource { public class RoomEvent3 { - /// - /// AI Died - /// - public static void AIDied(AlternativeExec<(AI aI, Combatant attacker)> onAIDied) - { - } - - /// - /// AI Spawned - /// - public static void AISpawned(AlternativeExec onAISpawned) - { - } - /// /// Consumable Purchased /// @@ -48,83 +34,6 @@ public static void DEPRECATEDPlayerLeft(AlternativeExec onDEPRECATEDPlay { } - /// - /// Interaction Volume Hold Cancel - /// - public static void InteractionVolumeHoldCancel(AlternativeExec onInteractionVolumeHoldCancel) - { - } - - /// - /// Interaction Volume Hold End - /// - public static void InteractionVolumeHoldEnd(AlternativeExec onInteractionVolumeHoldEnd) - { - } - - /// - /// Interaction Volume Hold Start - /// - public static void InteractionVolumeHoldStart(AlternativeExec onInteractionVolumeHoldStart) - { - } - - /// - /// Interaction Volume Hold Update - /// - public static void InteractionVolumeHoldUpdate(AlternativeExec onInteractionVolumeHoldUpdate) - { - } - - /// - /// Interaction Volume Hover End - /// - public static void InteractionVolumeHoverEnd(AlternativeExec onInteractionVolumeHoverEnd) - { - } - - /// - /// Interaction Volume Hover Start - /// - public static void InteractionVolumeHoverStart(AlternativeExec onInteractionVolumeHoverStart) - { - } - - /// - /// Interaction Volume On Use - /// - public static void InteractionVolumeOnUse(AlternativeExec<(InteractionVolume interactionVolume, Player player)> onInteractionVolumeOnUse) - { - } - - /// - /// Inventory Item Count Changed - /// - public static void InventoryItemCountChanged(AlternativeExec<(InventoryItem inventoryItem, int oldCount, int newCount)> onInventoryItemCountChanged) - { - } - - /// - /// Inventory Item Equipped - /// - public static void InventoryItemEquipped(AlternativeExec onInventoryItemEquipped) - { - } - - /// - /// Inventory Item Unequipped - /// - public static void InventoryItemUnequipped(AlternativeExec onInventoryItemUnequipped) - { - } - - /// - /// Inventory Item Used - /// - public static void InventoryItemUsed(AlternativeExec onInventoryItemUsed) - { - } - /// /// Level Reached /// @@ -132,160 +41,6 @@ public static void LevelReached(AlternativeExec onLevelReached) { } - /// - /// Local Player Third Person Active Changed - /// - public static void LocalPlayerThirdPersonActiveChanged(AlternativeExec<(bool active, bool toggledByPlayer)> onLocalPlayerThirdPersonActiveChanged) - { - } - - /// - /// On Player Clamber Started - /// - public static void OnPlayerClamberStarted(AlternativeExec onPlayerClamberStarted) - { - } - - /// - /// On Player Crouch Started - /// - public static void OnPlayerCrouchStarted(AlternativeExec onPlayerCrouchStarted) - { - } - - /// - /// On Player Fly Started - /// - public static void OnPlayerFlyStarted(AlternativeExec onPlayerFlyStarted) - { - } - - /// - /// On Player Fly Stopped - /// - public static void OnPlayerFlyStopped(AlternativeExec onPlayerFlyStopped) - { - } - - /// - /// On Player Footstep - /// - public static void OnPlayerFootstep(AlternativeExec<(Player player, RecRoomObject surface, Vector3 position)> onPlayerFootstep) - { - } - - /// - /// On Player Grabbed Object - /// - public static void OnPlayerGrabbedObject(AlternativeExec<(Player player, RecRoomObject @object)> onPlayerGrabbedObject) - { - } - - /// - /// On Player Grounded - /// - public static void OnPlayerGrounded(AlternativeExec<(Player player, RecRoomObject surface, Vector3 position)> onPlayerGrounded) - { - } - - /// - /// On Player Jumped - /// - public static void OnPlayerJumped(AlternativeExec<(Player player, RecRoomObject surface, Vector3 position)> onPlayerJumped) - { - } - - /// - /// On Player Landed - /// - public static void OnPlayerLanded(AlternativeExec<(Player player, RecRoomObject surface, Vector3 position)> onPlayerLanded) - { - } - - /// - /// On Player Prone Started - /// - public static void OnPlayerProneStarted(AlternativeExec onPlayerProneStarted) - { - } - - /// - /// On Player Released Object - /// - public static void OnPlayerReleasedObject(AlternativeExec<(Player player, RecRoomObject @object)> onPlayerReleasedObject) - { - } - - /// - /// On Player Slide Started - /// - public static void OnPlayerSlideStarted(AlternativeExec onPlayerSlideStarted) - { - } - - /// - /// On Player Sprint Started - /// - public static void OnPlayerSprintStarted(AlternativeExec onPlayerSprintStarted) - { - } - - /// - /// On Player Sprint Stopped - /// - public static void OnPlayerSprintStopped(AlternativeExec onPlayerSprintStopped) - { - } - - /// - /// On Player Stand Started - /// - public static void OnPlayerStandStarted(AlternativeExec onPlayerStandStarted) - { - } - - /// - /// On Player Velocity Modified - /// - public static void OnPlayerVelocityModified(AlternativeExec<(Player player, bool ungroundedPlayer, Vector3 velocityDelta)> onPlayerVelocityModified) - { - } - - /// - /// On Player Wall Climb Started - /// - public static void OnPlayerWallClimbStarted(AlternativeExec onPlayerWallClimbStarted) - { - } - - /// - /// On Player Wall Run Started - /// - public static void OnPlayerWallRunStarted(AlternativeExec<(Player player, Vector3 wallNormal, RecRoomObject wallObject)> onPlayerWallRunStarted) - { - } - - /// - /// On Player Wall Run Stopped - /// - public static void OnPlayerWallRunStopped(AlternativeExec onPlayerWallRunStopped) - { - } - - /// - /// OnGameEnd - /// - public static void OnGameEnd(AlternativeExec onGameEnd) - { - } - - /// - /// OnGameStart - /// - public static void OnGameStart(AlternativeExec onGameStart) - { - } - /// /// Player Joined /// @@ -307,13 +62,6 @@ public static void PlayerLeft(AlternativeExec onPlayerLeft) { } - /// - /// PlayerCollision - /// - public static void PlayerCollision(AlternativeExec<(Player playerA, Player playerB)> onPlayerCollision) - { - } - /// /// Room Authority Changed /// @@ -335,13 +83,6 @@ public static void RoomLoaded(AlternativeExec onRoomLoaded) { } - /// - /// Room Offer Purchased - /// - public static void RoomOfferPurchased(AlternativeExec<(RoomOffer roomOffer, int quantity)> onRoomOfferPurchased) - { - } - /// /// Room Reset /// @@ -356,13 +97,6 @@ public static void TestEvent(AlternativeExec onTestEvent) { } - /// - /// Update - /// - public static void Update(AlternativeExec onUpdate) - { - } - /// /// Update 30Hz /// diff --git a/Runtime/Types/Generated/RRTypesBuildGen.cs b/Runtime/Types/Generated/RRTypesBuildGen.cs index b032226..920c5d7 100644 --- a/Runtime/Types/Generated/RRTypesBuildGen.cs +++ b/Runtime/Types/Generated/RRTypesBuildGen.cs @@ -1252,6 +1252,7 @@ public IntPort ColorIdDeprecated public BoolPort Enabled { get => CircuitBuilder.Singleton("RRCG_Light_GetEnabled_" + PortKey(), () => ChipBuilder.LightGetEnabled((LightPort)this)); + set => ChipBuilder.LightSetEnabled((LightPort)this, value); } public FloatPort Intensity diff --git a/Runtime/Types/Generated/RRTypesGen.cs b/Runtime/Types/Generated/RRTypesGen.cs index da2bfe1..4253cc4 100644 --- a/Runtime/Types/Generated/RRTypesGen.cs +++ b/Runtime/Types/Generated/RRTypesGen.cs @@ -2022,6 +2022,12 @@ public bool Enabled /// Returns True if the target light is emitting light. /// get => default; + /// + /// Sets whether or not a Light is enabled and will emit light. + /// + set + { + } } public float Intensity From 875f4795ad053ba3c1044550bfcaaa3a2b32c3fc Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Fri, 27 Sep 2024 17:49:06 +0200 Subject: [PATCH 04/16] Replace all StringPort eventName with string eventName --- Runtime/Chips/ChipBuilder.cs | 44 +++++----- .../Chips/ClassChips/EventDefinitionBuild.cs | 88 +++++++++---------- 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/Runtime/Chips/ChipBuilder.cs b/Runtime/Chips/ChipBuilder.cs index 212751f..28ecd4c 100644 --- a/Runtime/Chips/ChipBuilder.cs +++ b/Runtime/Chips/ChipBuilder.cs @@ -15,12 +15,12 @@ public class ChipBuilder : RRCGGenerated.ChipBuilderGen // Event Nodes // #region EventNodes - public static void EventReceiver(StringPort eventName) + public static void EventReceiver(string eventName) { - EventReceiver(new EventReceiverData(eventName.AsData())); + EventReceiver(new EventReceiverData(eventName)); } - public static T0 EventReceiver(StringPort eventName) where T0 : AnyPort, new() + public static T0 EventReceiver(string eventName) where T0 : AnyPort, new() { EventReceiver(eventName); var node = Context.lastSpawnedNode; @@ -28,7 +28,7 @@ public static void EventReceiver(StringPort eventName) return new T0() { Port = node.Port(0, 1) }; } - public static (T0, T1) EventReceiver(StringPort eventName) + public static (T0, T1) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() { @@ -40,7 +40,7 @@ public static (T0, T1) EventReceiver(StringPort eventName) new T1() { Port = node.Port(0, 2) } ); } - public static (T0, T1, T2) EventReceiver(StringPort eventName) + public static (T0, T1, T2) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -54,7 +54,7 @@ public static (T0, T1, T2) EventReceiver(StringPort eventName) new T2() { Port = node.Port(0, 3) } ); } - public static (T0, T1, T2, T3) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -71,7 +71,7 @@ public static (T0, T1, T2, T3) EventReceiver(StringPort eventNam ); } - public static (T0, T1, T2, T3, T4) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -90,7 +90,7 @@ public static (T0, T1, T2, T3, T4) EventReceiver(StringPort ); } - public static (T0, T1, T2, T3, T4, T5) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -111,7 +111,7 @@ public static (T0, T1, T2, T3, T4, T5) EventReceiver(Str ); } - public static (T0, T1, T2, T3, T4, T5, T6) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -134,7 +134,7 @@ public static (T0, T1, T2, T3, T4, T5, T6) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -159,7 +159,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -186,7 +186,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -215,7 +215,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -246,7 +246,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -279,7 +279,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -314,7 +314,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) EventRecei ); } - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -351,7 +351,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Event ); } - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -390,7 +390,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) ); } - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) EventReceiver(StringPort eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) EventReceiver(string eventName) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -431,19 +431,19 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, ); } - internal static void EventSender(StringPort eventName, EventTarget eventTarget, params AnyPort[] inputs) + internal static void EventSender(string eventName, EventTarget eventTarget, params AnyPort[] inputs) { - EventSender(new EventSenderData(eventName.AsData(), eventTarget)); + EventSender(new EventSenderData(eventName, eventTarget)); var node = Context.lastSpawnedNode; for (var i = 0; i < inputs.Length; i++) node.ConnectInputPort(inputs[i], node.Port(0, 1 + i)); } - internal static void EventDefinition(StringPort eventName, params (StringPort, Type)[] eventDefinition) + internal static void EventDefinition(string eventName, params (StringPort, Type)[] eventDefinition) { EventDefinition(new EventDefinitionData( - eventName.AsData(), + eventName, eventDefinition.Select(t => (t.Item1.AsData(), t.Item2)).ToArray() )); } diff --git a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs index 5f9a782..8867d82 100644 --- a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs +++ b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs @@ -40,7 +40,7 @@ protected void InitExistingEvent(string eventName) // Access to the generic interface. It is up to the user to make sure the types are correct. internal class DynamicEventDefinition : BaseEvent { - public DynamicEventDefinition(StringPort eventName, params (StringPort, Type)[] eventDefinition) => InitNewEvent(eventName.AsData(), eventDefinition); + public DynamicEventDefinition(string eventName, params (StringPort, Type)[] eventDefinition) => InitNewEvent(eventName, eventDefinition); public AnyPort[] Receiver() { @@ -68,7 +68,7 @@ public AnyPort[] Receiver() public class EventDefinition : BaseEvent { public EventDefinition() => InitNewEvent(null); - public EventDefinition(StringPort eventName) => InitNewEvent(eventName.AsData()); + public EventDefinition(string eventName) => InitNewEvent(eventName); // The bool param is only used to make the signature different from the other constructors internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); @@ -96,8 +96,8 @@ public EventDefinition(StringPort param0Name = null) => InitNewEvent( null, (param0Name ?? "value0", typeof(T0)) ); - public EventDefinition(StringPort eventName, StringPort param0Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)) ); internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); @@ -126,8 +126,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)) ); @@ -159,8 +159,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)) @@ -195,8 +195,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param2Name ?? "value2", typeof(T2)), (param3Name ?? "value3", typeof(T3)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -234,8 +234,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param3Name ?? "value3", typeof(T3)), (param4Name ?? "value4", typeof(T4)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -276,8 +276,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param4Name ?? "value4", typeof(T4)), (param5Name ?? "value5", typeof(T5)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -321,8 +321,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param5Name ?? "value5", typeof(T5)), (param6Name ?? "value6", typeof(T6)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -369,8 +369,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param6Name ?? "value6", typeof(T6)), (param7Name ?? "value7", typeof(T7)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -420,8 +420,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param7Name ?? "value7", typeof(T7)), (param8Name ?? "value8", typeof(T8)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -474,8 +474,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param8Name ?? "value8", typeof(T8)), (param9Name ?? "value9", typeof(T9)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -531,8 +531,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param9Name ?? "value9", typeof(T9)), (param10Name ?? "value10", typeof(T10)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -591,8 +591,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param10Name ?? "value10", typeof(T10)), (param11Name ?? "value11", typeof(T11)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -654,8 +654,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param11Name ?? "value11", typeof(T11)), (param12Name ?? "value12", typeof(T12)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name, StringPort param12Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name, StringPort param12Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -720,8 +720,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param12Name ?? "value12", typeof(T12)), (param13Name ?? "value13", typeof(T13)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name, StringPort param12Name, StringPort param13Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name, StringPort param12Name, StringPort param13Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -789,8 +789,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param13Name ?? "value13", typeof(T13)), (param14Name ?? "value14", typeof(T14)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name, StringPort param12Name, StringPort param13Name, StringPort param14Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name, StringPort param12Name, StringPort param13Name, StringPort param14Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -861,8 +861,8 @@ public EventDefinition(StringPort param0Name = null, StringPort param1Name = nul (param14Name ?? "value14", typeof(T14)), (param15Name ?? "value15", typeof(T15)) ); - public EventDefinition(StringPort eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name, StringPort param12Name, StringPort param13Name, StringPort param14Name, StringPort param15Name) => InitNewEvent( - eventName.AsData(), + public EventDefinition(string eventName, StringPort param0Name, StringPort param1Name, StringPort param2Name, StringPort param3Name, StringPort param4Name, StringPort param5Name, StringPort param6Name, StringPort param7Name, StringPort param8Name, StringPort param9Name, StringPort param10Name, StringPort param11Name, StringPort param12Name, StringPort param13Name, StringPort param14Name, StringPort param15Name) => InitNewEvent( + eventName, (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)), @@ -904,8 +904,8 @@ public EventDefinition where T0 : AnyPort, new() { - private StringPort eventName; + private string eventName; private StringPort value0; - public EventHelper(StringPort eventName, StringPort value0 = null) + public EventHelper(string eventName, StringPort value0 = null) { this.eventName = eventName; this.value0 = value0 ?? "value0"; @@ -960,11 +960,11 @@ public class EventHelper where T0 : AnyPort, new() where T1 : AnyPort, new() { - private StringPort eventName; + private string eventName; private StringPort value0; private StringPort value1; public EventHelper( - StringPort eventName, + string eventName, StringPort value0 = null, StringPort value1 = null ) @@ -1000,12 +1000,12 @@ public class EventHelper where T1 : AnyPort, new() where T2 : AnyPort, new() { - private StringPort eventName; + private string eventName; private StringPort value0; private StringPort value1; private StringPort value2; public EventHelper( - StringPort eventName, + string eventName, StringPort value0 = null, StringPort value1 = null, StringPort value2 = null @@ -1045,13 +1045,13 @@ public class EventHelper where T2 : AnyPort, new() where T3 : AnyPort, new() { - private StringPort eventName; + private string eventName; private StringPort value0; private StringPort value1; private StringPort value2; private StringPort value3; public EventHelper( - StringPort eventName, + string eventName, StringPort value0 = null, StringPort value1 = null, StringPort value2 = null, From da6085f371a8b4665e837d74d6d9fec2648de42b Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Fri, 27 Sep 2024 21:40:33 +0200 Subject: [PATCH 05/16] Add id to events --- Runtime/Chips/ChipBuilder.cs | 70 +++---- .../Chips/ClassChips/EventDefinitionBuild.cs | 193 ++++++++++-------- Runtime/Chips/ClassChips/VariableBuild.cs | 2 +- Runtime/CircuitDescriptor/CircuitBuilder.cs | 25 ++- Runtime/Types/Events/RoomEventBuild.cs | 9 +- 5 files changed, 159 insertions(+), 140 deletions(-) diff --git a/Runtime/Chips/ChipBuilder.cs b/Runtime/Chips/ChipBuilder.cs index 28ecd4c..fda92dc 100644 --- a/Runtime/Chips/ChipBuilder.cs +++ b/Runtime/Chips/ChipBuilder.cs @@ -15,24 +15,24 @@ public class ChipBuilder : RRCGGenerated.ChipBuilderGen // Event Nodes // #region EventNodes - public static void EventReceiver(string eventName) + public static void EventReceiver(string eventName, Guid eventId) { EventReceiver(new EventReceiverData(eventName)); } - public static T0 EventReceiver(string eventName) where T0 : AnyPort, new() + public static T0 EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return new T0() { Port = node.Port(0, 1) }; } - public static (T0, T1) EventReceiver(string eventName) + public static (T0, T1) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return ( @@ -40,12 +40,12 @@ public static (T0, T1) EventReceiver(string eventName) new T1() { Port = node.Port(0, 2) } ); } - public static (T0, T1, T2) EventReceiver(string eventName) + public static (T0, T1, T2) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return ( @@ -54,13 +54,13 @@ public static (T0, T1, T2) EventReceiver(string eventName) new T2() { Port = node.Port(0, 3) } ); } - public static (T0, T1, T2, T3) EventReceiver(string eventName) + public static (T0, T1, T2, T3) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() where T3 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return ( @@ -71,14 +71,14 @@ public static (T0, T1, T2, T3) EventReceiver(string eventName) ); } - public static (T0, T1, T2, T3, T4) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() where T3 : AnyPort, new() where T4 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return ( @@ -90,7 +90,7 @@ public static (T0, T1, T2, T3, T4) EventReceiver(string even ); } - public static (T0, T1, T2, T3, T4, T5) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -98,7 +98,7 @@ public static (T0, T1, T2, T3, T4, T5) EventReceiver(str where T4 : AnyPort, new() where T5 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return ( @@ -111,7 +111,7 @@ public static (T0, T1, T2, T3, T4, T5) EventReceiver(str ); } - public static (T0, T1, T2, T3, T4, T5, T6) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -120,7 +120,7 @@ public static (T0, T1, T2, T3, T4, T5, T6) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -144,7 +144,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -170,7 +170,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -198,7 +198,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -228,7 +228,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -260,7 +260,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -294,7 +294,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) EventRecei where T11 : AnyPort, new() where T12 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return ( @@ -314,7 +314,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) EventRecei ); } - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -330,7 +330,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Event where T12 : AnyPort, new() where T13 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return ( @@ -351,7 +351,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Event ); } - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -368,7 +368,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) where T13 : AnyPort, new() where T14 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return ( @@ -390,7 +390,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) ); } - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) EventReceiver(string eventName) + public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() @@ -408,7 +408,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, where T14 : AnyPort, new() where T15 : AnyPort, new() { - EventReceiver(eventName); + EventReceiver(eventName, eventId); var node = Context.lastSpawnedNode; return ( @@ -431,7 +431,7 @@ public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, ); } - internal static void EventSender(string eventName, EventTarget eventTarget, params AnyPort[] inputs) + internal static void EventSender(string eventName, Guid eventId, EventTarget eventTarget, params AnyPort[] inputs) { EventSender(new EventSenderData(eventName, eventTarget)); var node = Context.lastSpawnedNode; @@ -440,7 +440,7 @@ internal static void EventSender(string eventName, EventTarget eventTarget, para node.ConnectInputPort(inputs[i], node.Port(0, 1 + i)); } - internal static void EventDefinition(string eventName, params (StringPort, Type)[] eventDefinition) + internal static void EventDefinition(string eventName, Guid eventId, params (StringPort, Type)[] eventDefinition) { EventDefinition(new EventDefinitionData( eventName, diff --git a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs index 8867d82..66933e5 100644 --- a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs +++ b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs @@ -8,6 +8,7 @@ namespace RRCGBuild public abstract class BaseEvent { protected string EventName; + protected Guid EventId; protected (StringPort, Type)[] EventDefinition; protected BaseEvent() { } @@ -19,22 +20,24 @@ protected void InitNewEvent(string eventName, params (StringPort, Type)[] eventD var eventNameBase = eventName ?? sourceName; EventName = Context.current.GetUniqueId($"RRCG_{eventNameBase}"); + EventId = Guid.NewGuid(); EventDefinition = eventDefinition; - ChipBuilder.EventDefinition(EventName, eventDefinition); + ChipBuilder.EventDefinition(EventName, EventId, eventDefinition); } - protected void InitExistingEvent(string eventName) + protected void InitExistingEvent(string eventName, Guid eventId) { EventName = eventName; + EventId = eventId; } - public void SendLocal(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventTarget.LOCAL, values); - public void SendOthers(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventTarget.OTHERS, values); - public void SendAll(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventTarget.ALL, values); - public void SendAuthority(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventTarget.AUTHORITY, values); - public void SendRoomAuthority(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventTarget.ROOM_AUTHORITY, values); - public void SendPlayer(PlayerPort player, params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventTarget.PLAYER, new[] { player }.Concat(values).ToArray()); + public void SendLocal(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.LOCAL, values); + public void SendOthers(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.OTHERS, values); + public void SendAll(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.ALL, values); + public void SendAuthority(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.AUTHORITY, values); + public void SendRoomAuthority(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.ROOM_AUTHORITY, values); + public void SendPlayer(PlayerPort player, params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.PLAYER, new[] { player }.Concat(values).ToArray()); } // Access to the generic interface. It is up to the user to make sure the types are correct. @@ -44,7 +47,7 @@ internal class DynamicEventDefinition : BaseEvent public AnyPort[] Receiver() { - ChipBuilder.EventReceiver(EventName); + ChipBuilder.EventReceiver(EventName, EventId); var node = Context.lastSpawnedNode; @@ -71,7 +74,7 @@ public class EventDefinition : BaseEvent public EventDefinition(string eventName) => InitNewEvent(eventName); // The bool param is only used to make the signature different from the other constructors - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal() => base.SendLocal(); public void SendOthers() => base.SendOthers(); @@ -80,7 +83,7 @@ public class EventDefinition : BaseEvent public void SendRoomAuthority() => base.SendRoomAuthority(); public void SendPlayer(PlayerPort player) => base.SendPlayer(player); - public void Receiver() => ChipBuilder.EventReceiver(EventName); + public void Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec inlineGraph) { CircuitBuilder.InlineGraph(() => { Receiver(); inlineGraph(); }); @@ -100,7 +103,7 @@ public EventDefinition(string eventName, StringPort param0Name) => InitNewEvent( eventName, (param0Name ?? "value0", typeof(T0)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0) => base.SendLocal(value0); public void SendOthers(T0 value0) => base.SendOthers(value0); @@ -109,7 +112,7 @@ public EventDefinition(string eventName, StringPort param0Name) => InitNewEvent( public void SendRoomAuthority(T0 value0) => base.SendRoomAuthority(value0); public void SendPlayer(PlayerPort player, T0 value0) => base.SendPlayer(player, value0); - public T0 Receiver() => ChipBuilder.EventReceiver(EventName); + public T0 Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -131,7 +134,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1) => base.SendLocal(value0, value1); public void SendOthers(T0 value0, T1 value1) => base.SendOthers(value0, value1); @@ -140,7 +143,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1) => base.SendRoomAuthority(value0, value1); public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => base.SendPlayer(player, value0, value1); - public (T0, T1) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -165,7 +168,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2) => base.SendLocal(value0, value1, value2); public void SendOthers(T0 value0, T1 value1, T2 value2) => base.SendOthers(value0, value1, value2); @@ -174,7 +177,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => base.SendRoomAuthority(value0, value1, value2); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => base.SendPlayer(player, value0, value1, value2); - public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -202,7 +205,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param2Name ?? "value2", typeof(T2)), (param3Name ?? "value3", typeof(T3)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3) => base.SendLocal(value0, value1, value2, value3); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3) => base.SendOthers(value0, value1, value2, value3); @@ -211,7 +214,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => base.SendRoomAuthority(value0, value1, value2, value3); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => base.SendPlayer(player, value0, value1, value2, value3); - public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -242,7 +245,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param3Name ?? "value3", typeof(T3)), (param4Name ?? "value4", typeof(T4)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendLocal(value0, value1, value2, value3, value4); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendOthers(value0, value1, value2, value3, value4); @@ -251,7 +254,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendRoomAuthority(value0, value1, value2, value3, value4); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendPlayer(player, value0, value1, value2, value3, value4); - public (T0, T1, T2, T3, T4) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -285,7 +288,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param4Name ?? "value4", typeof(T4)), (param5Name ?? "value5", typeof(T5)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendLocal(value0, value1, value2, value3, value4, value5); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendOthers(value0, value1, value2, value3, value4, value5); @@ -294,7 +297,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5); - public (T0, T1, T2, T3, T4, T5) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -331,7 +334,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param5Name ?? "value5", typeof(T5)), (param6Name ?? "value6", typeof(T6)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6); @@ -340,7 +343,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6); - public (T0, T1, T2, T3, T4, T5, T6) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -380,7 +383,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param6Name ?? "value6", typeof(T6)), (param7Name ?? "value7", typeof(T7)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7); @@ -389,7 +392,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7); - public (T0, T1, T2, T3, T4, T5, T6, T7) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6, T7) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -432,7 +435,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param7Name ?? "value7", typeof(T7)), (param8Name ?? "value8", typeof(T8)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8); @@ -441,7 +444,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -487,7 +490,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param8Name ?? "value8", typeof(T8)), (param9Name ?? "value9", typeof(T9)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); @@ -496,7 +499,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -545,7 +548,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param9Name ?? "value9", typeof(T9)), (param10Name ?? "value10", typeof(T10)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); @@ -554,7 +557,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -606,7 +609,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param10Name ?? "value10", typeof(T10)), (param11Name ?? "value11", typeof(T11)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); @@ -615,7 +618,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -670,7 +673,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param11Name ?? "value11", typeof(T11)), (param12Name ?? "value12", typeof(T12)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); @@ -679,7 +682,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -737,7 +740,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param12Name ?? "value12", typeof(T12)), (param13Name ?? "value13", typeof(T13)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); @@ -746,7 +749,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -807,7 +810,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param13Name ?? "value13", typeof(T13)), (param14Name ?? "value14", typeof(T14)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); @@ -816,7 +819,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -880,7 +883,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param14Name ?? "value14", typeof(T14)), (param15Name ?? "value15", typeof(T15)) ); - internal EventDefinition(bool _, string existingEvent) => InitExistingEvent(existingEvent); + internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); @@ -889,7 +892,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Receiver() => ChipBuilder.EventReceiver(EventName); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -904,55 +907,59 @@ public EventDefinition SendLocal(); - public void SendLocal() => ChipBuilder.EventSender(eventName, EventTarget.LOCAL); - public void SendOthers() => ChipBuilder.EventSender(eventName, EventTarget.OTHERS); - public void SendAll() => ChipBuilder.EventSender(eventName, EventTarget.ALL); - public void SendAuthority() => ChipBuilder.EventSender(eventName, EventTarget.AUTHORITY); - public void SendRoomAuthority() => ChipBuilder.EventSender(eventName, EventTarget.ROOM_AUTHORITY); - public void SendPlayer(PlayerPort player) => ChipBuilder.EventSender(eventName, EventTarget.PLAYER, player); + public void SendLocal() => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL); + public void SendOthers() => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS); + public void SendAll() => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL); + public void SendAuthority() => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY); + public void SendRoomAuthority() => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY); + public void SendPlayer(PlayerPort player) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player); - public void Receiver() => ChipBuilder.EventReceiver(eventName); + public void Receiver() => ChipBuilder.EventReceiver(eventName, eventId); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] public class EventHelper where T0 : AnyPort, new() { - private string eventName; + private readonly string eventName; + private readonly Guid eventId; private StringPort value0; - public EventHelper(string eventName, StringPort value0 = null) + public EventHelper(string eventName, Guid eventId, StringPort value0 = null) { this.eventName = eventName; + this.eventId = eventId; this.value0 = value0 ?? "value0"; } public EventHelper Definition() { - ChipBuilder.EventDefinition(eventName, (value0, typeof(T0))); + ChipBuilder.EventDefinition(eventName, eventId, (value0, typeof(T0))); return this; } public void Sender(T0 value0) => SendLocal(value0); - public void SendLocal(T0 value0) => ChipBuilder.EventSender(eventName, EventTarget.LOCAL, value0); - public void SendOthers(T0 value0) => ChipBuilder.EventSender(eventName, EventTarget.OTHERS, value0); - public void SendAll(T0 value0) => ChipBuilder.EventSender(eventName, EventTarget.ALL, value0); - public void SendAuthority(T0 value0) => ChipBuilder.EventSender(eventName, EventTarget.AUTHORITY, value0); - public void SendRoomAuthority(T0 value0) => ChipBuilder.EventSender(eventName, EventTarget.ROOM_AUTHORITY, value0); - public void SendPlayer(PlayerPort player, T0 value0) => ChipBuilder.EventSender(eventName, EventTarget.PLAYER, player, value0); + public void SendLocal(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL, value0); + public void SendOthers(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS, value0); + public void SendAll(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL, value0); + public void SendAuthority(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY, value0); + public void SendRoomAuthority(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0); + public void SendPlayer(PlayerPort player, T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0); - public T0 Receiver() => ChipBuilder.EventReceiver(eventName); + public T0 Receiver() => ChipBuilder.EventReceiver(eventName, eventId); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] @@ -960,16 +967,19 @@ public class EventHelper where T0 : AnyPort, new() where T1 : AnyPort, new() { - private string eventName; + private readonly string eventName; + private readonly Guid eventId; private StringPort value0; private StringPort value1; public EventHelper( string eventName, + Guid eventId, StringPort value0 = null, StringPort value1 = null ) { this.eventName = eventName; + this.eventId = eventId; this.value0 = value0 ?? "value0"; this.value1 = value1 ?? "value1"; } @@ -977,6 +987,7 @@ public EventHelper Definition() { ChipBuilder.EventDefinition( eventName, + eventId, (value0, typeof(T0)), (value1, typeof(T1)) ); @@ -984,14 +995,14 @@ public EventHelper Definition() } public void Sender(T0 value0, T1 value1) => SendLocal(value0, value1); - public void SendLocal(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, EventTarget.LOCAL, value0, value1); - public void SendOthers(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, EventTarget.OTHERS, value0, value1); - public void SendAll(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, EventTarget.ALL, value0, value1); - public void SendAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, EventTarget.AUTHORITY, value0, value1); - public void SendRoomAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, EventTarget.ROOM_AUTHORITY, value0, value1); - public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, EventTarget.PLAYER, player, value0, value1); + public void SendLocal(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL, value0, value1); + public void SendOthers(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS, value0, value1); + public void SendAll(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL, value0, value1); + public void SendAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY, value0, value1); + public void SendRoomAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0, value1); + public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0, value1); - public (T0, T1) Receiver() => ChipBuilder.EventReceiver(eventName); + public (T0, T1) Receiver() => ChipBuilder.EventReceiver(eventName, eventId); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] @@ -1000,18 +1011,21 @@ public class EventHelper where T1 : AnyPort, new() where T2 : AnyPort, new() { - private string eventName; + private readonly string eventName; + private readonly Guid eventId; private StringPort value0; private StringPort value1; private StringPort value2; public EventHelper( string eventName, + Guid eventId, StringPort value0 = null, StringPort value1 = null, StringPort value2 = null ) { this.eventName = eventName; + this.eventId = eventId; this.value0 = value0 ?? "value0"; this.value1 = value1 ?? "value1"; this.value2 = value2 ?? "value2"; @@ -1020,6 +1034,7 @@ public EventHelper Definition() { ChipBuilder.EventDefinition( eventName, + eventId, (value0, typeof(T0)), (value1, typeof(T1)), (value2, typeof(T2)) @@ -1028,14 +1043,14 @@ public EventHelper Definition() } public void Sender(T0 value0, T1 value1, T2 value2) => SendLocal(value0, value1, value2); - public void SendLocal(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, EventTarget.LOCAL, value0, value1, value2); - public void SendOthers(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, EventTarget.OTHERS, value0, value1, value2); - public void SendAll(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, EventTarget.ALL, value0, value1, value2); - public void SendAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, EventTarget.AUTHORITY, value0, value1, value2); - public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, EventTarget.ROOM_AUTHORITY, value0, value1, value2); - public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, EventTarget.PLAYER, player, value0, value1, value2); + public void SendLocal(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL, value0, value1, value2); + public void SendOthers(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS, value0, value1, value2); + public void SendAll(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL, value0, value1, value2); + public void SendAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY, value0, value1, value2); + public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0, value1, value2); + public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0, value1, value2); - public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver(eventName); + public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver(eventName, eventId); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] @@ -1045,13 +1060,15 @@ public class EventHelper where T2 : AnyPort, new() where T3 : AnyPort, new() { - private string eventName; + private readonly string eventName; + private readonly Guid eventId; private StringPort value0; private StringPort value1; private StringPort value2; private StringPort value3; public EventHelper( string eventName, + Guid eventId, StringPort value0 = null, StringPort value1 = null, StringPort value2 = null, @@ -1059,6 +1076,7 @@ public EventHelper( ) { this.eventName = eventName; + this.eventId = eventId; this.value0 = value0 ?? "value0"; this.value1 = value1 ?? "value1"; this.value2 = value2 ?? "value2"; @@ -1068,6 +1086,7 @@ public EventHelper Definition() { ChipBuilder.EventDefinition( eventName, + eventId, (value0, typeof(T0)), (value1, typeof(T1)), (value2, typeof(T2)), @@ -1077,14 +1096,14 @@ public EventHelper Definition() } public void Sender(T0 value0, T1 value1, T2 value2, T3 value3) => SendLocal(value0, value1, value2, value3); - public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, EventTarget.LOCAL, value0, value1, value2, value3); - public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, EventTarget.OTHERS, value0, value1, value2, value3); - public void SendAll(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, EventTarget.ALL, value0, value1, value2, value3); - public void SendAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, EventTarget.AUTHORITY, value0, value1, value2, value3); - public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, EventTarget.ROOM_AUTHORITY, value0, value1, value2, value3); - public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, EventTarget.PLAYER, player, value0, value1, value2, value3); + public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL, value0, value1, value2, value3); + public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS, value0, value1, value2, value3); + public void SendAll(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL, value0, value1, value2, value3); + public void SendAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY, value0, value1, value2, value3); + public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0, value1, value2, value3); + public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0, value1, value2, value3); - public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver(eventName); + public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver(eventName, eventId); } } diff --git a/Runtime/Chips/ClassChips/VariableBuild.cs b/Runtime/Chips/ClassChips/VariableBuild.cs index 7f37032..e938581 100644 --- a/Runtime/Chips/ClassChips/VariableBuild.cs +++ b/Runtime/Chips/ClassChips/VariableBuild.cs @@ -110,7 +110,7 @@ public T Value } AnyPort IVariable.ChangedEvent() => ChangedEvent(); - public T ChangedEvent() => ChipBuilder.EventReceiver(name + " Changed"); + public T ChangedEvent() => ChipBuilder.EventReceiver(name + " Changed", Guid.Empty); IVariable IVariable.ChangedEvent(AlternativeExec OnChanged) => (IVariable)ChangedEvent(v => OnChanged(v)); public IVariable ChangedEvent(AlternativeExec OnChanged) diff --git a/Runtime/CircuitDescriptor/CircuitBuilder.cs b/Runtime/CircuitDescriptor/CircuitBuilder.cs index 024f6b5..9220e88 100644 --- a/Runtime/CircuitDescriptor/CircuitBuilder.cs +++ b/Runtime/CircuitDescriptor/CircuitBuilder.cs @@ -6,7 +6,6 @@ using System.Reflection; using System.Runtime.CompilerServices; using UnityEngine; -using DeclaredVariable = RRCGBuild.AccessibilityScope.DeclaredVariable; using PromotedVariable = RRCGBuild.ConditionalContext.PromotedVariable; namespace RRCGBuild @@ -299,51 +298,51 @@ public static void ExistingExecOutput(StringPort portName) { } - public static void StudioEventReceiver(string eventName) + public static void StudioEventReceiver(string eventName, Guid eventId) { - CircuitBuilder.Singleton("StudioEventReceiver_" + eventName, () => EventDefinition(eventName)); - EventReceiver(eventName); + CircuitBuilder.Singleton("StudioEventReceiver_" + eventName, () => EventDefinition(eventName, eventId)); + EventReceiver(eventName, eventId); } /// /// Returns an Instance of the Event class for an already exising Event in the room /// - public static EventDefinition ExistingEvent(string eventName) + public static EventDefinition ExistingEvent(string eventName, Guid eventId) { - return new EventDefinition(true, eventName); + return new EventDefinition(true, eventName, eventId); } /// /// Returns an Instance of the Event class for an already exising Event in the room. /// With one Event parameter. /// - public static EventDefinition ExistingEvent(string eventName) + public static EventDefinition ExistingEvent(string eventName, Guid eventId) where T0 : AnyPort, new() { - return new EventDefinition(true, eventName); + return new EventDefinition(true, eventName, eventId); } /// /// Returns an Instance of the Event class for an already exising Event in the room. /// With two Event parameter. /// - public static EventDefinition ExistingEvent(string eventName) + public static EventDefinition ExistingEvent(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() { - return new EventDefinition(true, eventName); + return new EventDefinition(true, eventName, eventId); } /// /// Returns an Instance of the Event class for an already exising Event in the room. /// With three Event parameter. /// - public static EventDefinition ExistingEvent(string eventName) + public static EventDefinition ExistingEvent(string eventName, Guid eventId) where T0 : AnyPort, new() where T1 : AnyPort, new() where T2 : AnyPort, new() { - return new EventDefinition(true, eventName); + return new EventDefinition(true, eventName, eventId); } /// @@ -1252,7 +1251,7 @@ public static void __OptimizedFor(ConditionalContext conditional, IntPort min, I if (!port.EquivalentTo(node.Port(0, 1))) goto fail; // All checks pass, create the event receiver - return EventReceiver(node.VariableData.Name + " Changed"); + return EventReceiver(node.VariableData.Name + " Changed", Guid.Empty); fail: // I didn't want to duplicate the message throw new ArgumentException("The memberVariable argument must refer to a variable output port!"); diff --git a/Runtime/Types/Events/RoomEventBuild.cs b/Runtime/Types/Events/RoomEventBuild.cs index 0d25514..8d1d753 100644 --- a/Runtime/Types/Events/RoomEventBuild.cs +++ b/Runtime/Types/Events/RoomEventBuild.cs @@ -1,19 +1,20 @@ using RRCG; +using System; namespace RRCGBuild { public static class RoomEvent { - public static FloatPort Hz30() => ChipBuilder.EventReceiver(RoomEvents.Hz30); + public static FloatPort Hz30() => ChipBuilder.EventReceiver(RoomEvents.Hz30, Guid.Empty); public static void Hz30(AlternativeExec onHz30) => CircuitBuilder.InlineGraph(() => onHz30(Hz30())); - public static FloatPort Update() => ChipBuilder.EventReceiver(RoomEvents.Update); + public static FloatPort Update() => ChipBuilder.EventReceiver(RoomEvents.Update, Guid.Empty); public static void Update(AlternativeExec onUpdate) => CircuitBuilder.InlineGraph(() => onUpdate(Update())); - public static StringPort TestEvent() => ChipBuilder.EventReceiver(RoomEvents.TestEvent); + public static StringPort TestEvent() => ChipBuilder.EventReceiver(RoomEvents.TestEvent, Guid.Empty); public static void TestEvent(AlternativeExec onTestEvent) => CircuitBuilder.InlineGraph(() => { onTestEvent(TestEvent()); }); - public static ConsumablePort ConsumableUsed() => ChipBuilder.EventReceiver(RoomEvents.ConsumableUsed); + public static ConsumablePort ConsumableUsed() => ChipBuilder.EventReceiver(RoomEvents.ConsumableUsed, Guid.Empty); public static void ConsumableUsed(AlternativeExec onConsumableUsed) => CircuitBuilder.InlineGraph(() => onConsumableUsed(ConsumableUsed())); } } \ No newline at end of file From 422ad2504dfba17cd0d7c2b90066a424e6c88d47 Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Wed, 2 Oct 2024 18:54:16 +0200 Subject: [PATCH 06/16] Add ids to events --- Runtime/Chips/ChipBuilder.cs | 1 + Runtime/Types/Configuration.cs | 1 + Test/ClassChips/EventDefinitionTest.rrcg.gen.cs | 7 ++++--- Test/Compiler/Returns.rrcg.gen.cs | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Runtime/Chips/ChipBuilder.cs b/Runtime/Chips/ChipBuilder.cs index fda92dc..20c203c 100644 --- a/Runtime/Chips/ChipBuilder.cs +++ b/Runtime/Chips/ChipBuilder.cs @@ -444,6 +444,7 @@ internal static void EventDefinition(string eventName, Guid eventId, params (Str { EventDefinition(new EventDefinitionData( eventName, + eventId, eventDefinition.Select(t => (t.Item1.AsData(), t.Item2)).ToArray() )); } diff --git a/Runtime/Types/Configuration.cs b/Runtime/Types/Configuration.cs index 1ee4b18..94ea538 100644 --- a/Runtime/Types/Configuration.cs +++ b/Runtime/Types/Configuration.cs @@ -98,6 +98,7 @@ public record RoomConsumableData(Guid Id); public record EventDefinitionData( string EventName, + Guid EventId, (string, Type)[] EventDefinition ); diff --git a/Test/ClassChips/EventDefinitionTest.rrcg.gen.cs b/Test/ClassChips/EventDefinitionTest.rrcg.gen.cs index 06bfdac..0e4cb8b 100644 --- a/Test/ClassChips/EventDefinitionTest.rrcg.gen.cs +++ b/Test/ClassChips/EventDefinitionTest.rrcg.gen.cs @@ -1,4 +1,5 @@ using RRCGBuild; +using System; using System.Collections.Generic; namespace RRCGBuild @@ -61,16 +62,16 @@ void Existing() __BeginReturnScope("Existing", null, null); __BeginAccessibilityScope(AccessibilityScope.Kind.MethodRoot); RRCGBuild.EventDefinition params0 = default !; - params0 = __VariableDeclaratorExpression("params0", () => ExistingEvent("Existing0"), () => params0!, (_RRCG_SETTER_VALUE) => params0 = _RRCG_SETTER_VALUE); + params0 = __VariableDeclaratorExpression("params0", () => ExistingEvent("Existing0", Guid.Empty), () => params0!, (_RRCG_SETTER_VALUE) => params0 = _RRCG_SETTER_VALUE); params0.Receiver(); params0.SendLocal(); RRCGBuild.EventDefinition params1 = default !; - params1 = __VariableDeclaratorExpression>("params1", () => ExistingEvent("Existing1"), () => params1!, (_RRCG_SETTER_VALUE) => params1 = _RRCG_SETTER_VALUE); + params1 = __VariableDeclaratorExpression>("params1", () => ExistingEvent("Existing1", Guid.Empty), () => params1!, (_RRCG_SETTER_VALUE) => params1 = _RRCG_SETTER_VALUE); RRCGBuild.IntPort params1Value = default !; params1Value = __VariableDeclaratorExpression("params1Value", () => params1.Receiver(), () => params1Value!, (_RRCG_SETTER_VALUE) => params1Value = _RRCG_SETTER_VALUE); params1.SendLocal(params1Value); RRCGBuild.EventDefinition params2 = default !; - params2 = __VariableDeclaratorExpression>("params2", () => ExistingEvent("Existing2"), () => params2!, (_RRCG_SETTER_VALUE) => params2 = _RRCG_SETTER_VALUE); + params2 = __VariableDeclaratorExpression>("params2", () => ExistingEvent("Existing2", Guid.Empty), () => params2!, (_RRCG_SETTER_VALUE) => params2 = _RRCG_SETTER_VALUE); (RRCGBuild.IntPort Item1, RRCGBuild.StringPort Item2) params2Value = default !; params2Value = __VariableDeclaratorExpression<(RRCGBuild.IntPort Item1, RRCGBuild.StringPort Item2)>("params2Value", () => params2.Receiver(), () => params2Value!, (_RRCG_SETTER_VALUE) => params2Value = _RRCG_SETTER_VALUE); params2.SendLocal(params2Value.Item1, params2Value.Item2); diff --git a/Test/Compiler/Returns.rrcg.gen.cs b/Test/Compiler/Returns.rrcg.gen.cs index 63a6b65..ec923ce 100644 --- a/Test/Compiler/Returns.rrcg.gen.cs +++ b/Test/Compiler/Returns.rrcg.gen.cs @@ -461,11 +461,11 @@ RRCGBuild.StringPort EFTestSwitchReturn(RRCGBuild.IntPort match) , match); } - private void Test(RRCGBuild.StringPort name, System.Action test) + private void Test(string name, System.Action test) { __BeginReturnScope("Test", null, null); __BeginAccessibilityScope(AccessibilityScope.Kind.MethodRoot); - __VariableDeclaratorExpression("name", null, () => name!, (_RRCG_SETTER_VALUE) => name = _RRCG_SETTER_VALUE); + __VariableDeclaratorExpression("name", null, () => name!, (_RRCG_SETTER_VALUE) => name = _RRCG_SETTER_VALUE); __VariableDeclaratorExpression("test", null, () => test!, (_RRCG_SETTER_VALUE) => test = _RRCG_SETTER_VALUE); new RRCGBuild.EventDefinition(name).Receiver(); LogString(__StringInterpolation("Starting test ", name)); From 2d72b9e3d990366cdfe100e36ac44deef2e760ba Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Wed, 2 Oct 2024 20:13:50 +0200 Subject: [PATCH 07/16] Add build realm events --- Runtime/Events/Generated/RoomEvent3.cs | 3 +- Runtime/Events/Generated/RoomEvent3Build.cs | 151 ++++++++++++++++++ .../Events/Generated/RoomEvent3Build.cs.meta | 11 ++ 3 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 Runtime/Events/Generated/RoomEvent3Build.cs create mode 100644 Runtime/Events/Generated/RoomEvent3Build.cs.meta diff --git a/Runtime/Events/Generated/RoomEvent3.cs b/Runtime/Events/Generated/RoomEvent3.cs index 86db646..3e4dde8 100644 --- a/Runtime/Events/Generated/RoomEvent3.cs +++ b/Runtime/Events/Generated/RoomEvent3.cs @@ -1,6 +1,5 @@ using RRCGSource; -using RRCG; -using UnityEngine; +using System; namespace RRCGSource { diff --git a/Runtime/Events/Generated/RoomEvent3Build.cs b/Runtime/Events/Generated/RoomEvent3Build.cs new file mode 100644 index 0000000..e95c70c --- /dev/null +++ b/Runtime/Events/Generated/RoomEvent3Build.cs @@ -0,0 +1,151 @@ +using RRCGSource; +using System; + +namespace RRCGBuild +{ + public class RoomEvent3 + { + public static void ConsumablePurchased(AlternativeExec<(ConsumablePort consumable, IntPort quantity)> onConsumablePurchased) + { + CircuitBuilder.InlineGraph(() => + { + onConsumablePurchased(ChipBuilder.EventReceiver("Consumable Purchased", Guid.ParseExact("b5678272-adbe-4e59-a833-bd156fd8f7fa", "D"))); + } + + ); + } + + public static void ConsumableUsed(AlternativeExec onConsumableUsed) + { + CircuitBuilder.InlineGraph(() => + { + onConsumableUsed(ChipBuilder.EventReceiver("Consumable Used", Guid.ParseExact("304464c2-e4ec-408c-9b6e-26788d9b0526", "D"))); + } + + ); + } + + public static void DEPRECATEDLocalPlayerSpawned(AlternativeExec onDEPRECATEDLocalPlayerSpawned) + { + CircuitBuilder.InlineGraph(() => + { + ChipBuilder.EventReceiver("DEPRECATED Local Player Spawned", Guid.ParseExact("3c0c12fe-d760-48a3-b44e-b96850f82a4a", "D")); + onDEPRECATEDLocalPlayerSpawned(); + } + + ); + } + + public static void DEPRECATEDPlayerLeft(AlternativeExec onDEPRECATEDPlayerLeft) + { + CircuitBuilder.InlineGraph(() => + { + onDEPRECATEDPlayerLeft(ChipBuilder.EventReceiver("DEPRECATED Player Left", Guid.ParseExact("f52effba-2c1b-4f0b-a661-7079b45710ff", "D"))); + } + + ); + } + + public static void LevelReached(AlternativeExec onLevelReached) + { + CircuitBuilder.InlineGraph(() => + { + onLevelReached(ChipBuilder.EventReceiver("Level Reached", Guid.ParseExact("456a88e0-ed1d-4928-8af3-cb566ce19488", "D"))); + } + + ); + } + + public static void PlayerJoined(AlternativeExec onPlayerJoined) + { + CircuitBuilder.InlineGraph(() => + { + onPlayerJoined(ChipBuilder.EventReceiver("Player Joined", Guid.ParseExact("a68a4b00-adf5-4aef-801a-fa6264771a9f", "D"))); + } + + ); + } + + public static void PlayerLeaving(AlternativeExec onPlayerLeaving) + { + CircuitBuilder.InlineGraph(() => + { + onPlayerLeaving(ChipBuilder.EventReceiver("Player Leaving", Guid.ParseExact("e8a19063-e8a2-40b0-a955-b0a23712aefa", "D"))); + } + + ); + } + + public static void PlayerLeft(AlternativeExec onPlayerLeft) + { + CircuitBuilder.InlineGraph(() => + { + onPlayerLeft(ChipBuilder.EventReceiver("Player Left", Guid.ParseExact("dd292b5d-5218-4d4a-abf4-aa9dbe283e50", "D"))); + } + + ); + } + + public static void RoomAuthorityChanged(AlternativeExec onRoomAuthorityChanged) + { + CircuitBuilder.InlineGraph(() => + { + onRoomAuthorityChanged(ChipBuilder.EventReceiver("Room Authority Changed", Guid.ParseExact("dc968273-75aa-455e-9aa4-58f4e9548e62", "D"))); + } + + ); + } + + public static void RoomKeyPurchased(AlternativeExec onRoomKeyPurchased) + { + CircuitBuilder.InlineGraph(() => + { + onRoomKeyPurchased(ChipBuilder.EventReceiver("Room Key Purchased", Guid.ParseExact("a6c9db82-c995-41f4-9e9e-2fa6241a21bf", "D"))); + } + + ); + } + + public static void RoomLoaded(AlternativeExec onRoomLoaded) + { + CircuitBuilder.InlineGraph(() => + { + ChipBuilder.EventReceiver("Room Loaded", Guid.ParseExact("5efce997-30d2-431f-b156-c4ebda8fb1ad", "D")); + onRoomLoaded(); + } + + ); + } + + public static void RoomReset(AlternativeExec onRoomReset) + { + CircuitBuilder.InlineGraph(() => + { + ChipBuilder.EventReceiver("Room Reset", Guid.ParseExact("ba20b726-fbc4-400b-b6fd-f88804063378", "D")); + onRoomReset(); + } + + ); + } + + public static void TestEvent(AlternativeExec onTestEvent) + { + CircuitBuilder.InlineGraph(() => + { + onTestEvent(ChipBuilder.EventReceiver("Test Event", Guid.ParseExact("888ab607-ac44-422e-b3d7-94a219450484", "D"))); + } + + ); + } + + public static void Update30Hz(AlternativeExec onUpdate30Hz) + { + CircuitBuilder.InlineGraph(() => + { + onUpdate30Hz(ChipBuilder.EventReceiver("Update 30Hz", Guid.ParseExact("1ac8f2f7-ca6e-4530-b19a-1b9a8de3954d", "D"))); + } + + ); + } + } +} \ No newline at end of file diff --git a/Runtime/Events/Generated/RoomEvent3Build.cs.meta b/Runtime/Events/Generated/RoomEvent3Build.cs.meta new file mode 100644 index 0000000..d05eabe --- /dev/null +++ b/Runtime/Events/Generated/RoomEvent3Build.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c5728c23cade1b141aa1db2e54d150d0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 831e46ded90084753e5bc4543a047c4dfef3a397 Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Wed, 2 Oct 2024 22:19:33 +0200 Subject: [PATCH 08/16] Update Chips --- Runtime/Chips/Generated/ChipBuilderGen.cs | 25 ++++++++++++++++++++++ Runtime/Chips/Generated/ChipType.cs | 2 ++ Runtime/Chips/Generated/ChipsGen.cs | 16 ++++++++++++++ Runtime/Types/Generated/RRTypesBuildGen.cs | 5 +++++ Runtime/Types/Generated/RRTypesGen.cs | 8 +++++++ 5 files changed, 56 insertions(+) diff --git a/Runtime/Chips/Generated/ChipBuilderGen.cs b/Runtime/Chips/Generated/ChipBuilderGen.cs index bfda5b6..f8afa3f 100644 --- a/Runtime/Chips/Generated/ChipBuilderGen.cs +++ b/Runtime/Chips/Generated/ChipBuilderGen.cs @@ -6886,6 +6886,20 @@ public static void LocalPlayerSetGravityDisabledR2(BoolPort disabled) return; } + public static void LocalPlayerSetLocomotionVFXEnabledR2(AnyPort sprintWind, AnyPort wallRunWind, AnyPort slideStartWind, AnyPort slideWind, AnyPort slideSparks) + { + Node node = new Node() + {Name = "Local Player Set Locomotion VFX Enabled", Type = "f2604270-0397-40ca-a5a4-b799727eccfd", InputCount = 6}; + Context.current.AddNode(node); + node.ConnectInputPort(sprintWind, new Port{Node = node, Index = 1}); + node.ConnectInputPort(wallRunWind, new Port{Node = node, Index = 2}); + node.ConnectInputPort(slideStartWind, new Port{Node = node, Index = 3}); + node.ConnectInputPort(slideWind, new Port{Node = node, Index = 4}); + node.ConnectInputPort(slideSparks, new Port{Node = node, Index = 5}); + ExecFlow.current.Advance(Context.current, new Port{Node = node}, new Port{Node = node}); + return; + } + public static void LocalPlayerSetObjectiveLogContent(StringPort headerText, ColorPort headerTextColor, StringPort bodyText, ColorPort bodyTextColor) { Node node = new Node() @@ -9850,6 +9864,17 @@ public static BoolPort RecalculateRoomAuthority() return output_ports; } + public static ListPort RecRoomObjectGetAllChildrenWithTagR2(RecRoomObjectPort @object, StringPort tag) + { + Node node = new Node() + {Name = "Rec Room Object Get All Children with Tag", Type = "c8ead7ca-2727-4358-b52b-012d56aa707f", InputCount = 2}; + Context.current.AddNode(node); + node.ConnectInputPort(@object, new Port{Node = node, Index = 0}); + node.ConnectInputPort(tag, new Port{Node = node, Index = 1}); + var output_ports = new ListPort{Port = new Port{Node = node, Index = 0}}; + return output_ports; + } + public static ListPort RecRoomObjectGetAllWithTag(StringPort tag) { Node node = new Node() diff --git a/Runtime/Chips/Generated/ChipType.cs b/Runtime/Chips/Generated/ChipType.cs index 5004fba..24aa0d1 100644 --- a/Runtime/Chips/Generated/ChipType.cs +++ b/Runtime/Chips/Generated/ChipType.cs @@ -453,6 +453,7 @@ public class ChipType public const string LocalPlayerOverridePlayerVoiceRolloffR2 = "bb4ff641-2267-45e0-9e07-fc480b04f478"; public const string LocalPlayerRequestThirdPerson = "039fdbe0-31f2-4743-81ef-aa326b5e410f"; public const string LocalPlayerSetGravityDisabledR2 = "6f88b273-5be6-4183-a772-902c45f4a5c7"; + public const string LocalPlayerSetLocomotionVFXEnabledR2 = "f2604270-0397-40ca-a5a4-b799727eccfd"; public const string LocalPlayerSetObjectiveLogContent = "a060bad3-3111-4b9d-add3-5e6af3a4a151"; public const string LocalPlayerSetObjectiveLogEnabled = "5013021c-3243-4cc2-bd39-06abddb38c9c"; public const string LocalPlayerSetPlayerNametagVisibility = "a73655df-b37b-4c02-a19a-4eb05ce75a14"; @@ -721,6 +722,7 @@ public class ChipType public const string RangedWeaponSetTorsoDamage = "531dc709-286e-429c-9d51-537a63d74f76"; public const string Raycast = "af203a1f-f3c9-479b-86f0-72224b094179"; public const string RecalculateRoomAuthority = "d5df73b6-4b92-4867-ab3a-5d308876598b"; + public const string RecRoomObjectGetAllChildrenWithTagR2 = "c8ead7ca-2727-4358-b52b-012d56aa707f"; public const string RecRoomObjectGetAllWithTag = "02d69553-ae96-4c2d-8477-59ada6a66783"; public const string RecRoomObjectGetAllWithTagNew = "6404b6b4-3bc4-4bbb-8d2c-058a6834e9e9"; public const string RecRoomObjectGetAuthority = "9e51fcdc-87b4-4eee-a7b1-8d6f86a5fa6b"; diff --git a/Runtime/Chips/Generated/ChipsGen.cs b/Runtime/Chips/Generated/ChipsGen.cs index 7c6a1d5..beb1319 100644 --- a/Runtime/Chips/Generated/ChipsGen.cs +++ b/Runtime/Chips/Generated/ChipsGen.cs @@ -4811,6 +4811,14 @@ public static void LocalPlayerSetGravityDisabledR2(bool disabled) return; } + /// + /// Sets whether specific locomotion visual feedback effects should play when in the corresponding state. + /// + public static void LocalPlayerSetLocomotionVFXEnabledR2(object sprintWind, object wallRunWind, object slideStartWind, object slideWind, object slideSparks) + { + return; + } + /// /// Set the content to be displayed on the Objective Log HUD UI /// @@ -6937,6 +6945,14 @@ public static bool RecalculateRoomAuthority() return default; } + /// + /// Searches the room for all objects with the input tag and outputs a list of their direct children and all descendants in the hierarchy. + /// + public static List RecRoomObjectGetAllChildrenWithTagR2(RecRoomObject @object, string tag) + { + return default; + } + /// /// Searches the room for all objects with the input tag and outputs them as a list. /// diff --git a/Runtime/Types/Generated/RRTypesBuildGen.cs b/Runtime/Types/Generated/RRTypesBuildGen.cs index 920c5d7..8fef598 100644 --- a/Runtime/Types/Generated/RRTypesBuildGen.cs +++ b/Runtime/Types/Generated/RRTypesBuildGen.cs @@ -3113,6 +3113,11 @@ public void IfHasTag(StringPort tag, AlternativeExec doesNotHaveTag) ChipBuilder.IfHasTag((RecRoomObjectPort)this, tag, doesNotHaveTag); } + public ListPort GetAllChildrenWithTagR2(StringPort tag) + { + return ChipBuilder.RecRoomObjectGetAllChildrenWithTagR2((RecRoomObjectPort)this, tag); + } + public void Reset() { ChipBuilder.RecRoomObjectReset((RecRoomObjectPort)this); diff --git a/Runtime/Types/Generated/RRTypesGen.cs b/Runtime/Types/Generated/RRTypesGen.cs index 4253cc4..6575380 100644 --- a/Runtime/Types/Generated/RRTypesGen.cs +++ b/Runtime/Types/Generated/RRTypesGen.cs @@ -5191,6 +5191,14 @@ public void IfHasTag(string tag, AlternativeExec doesNotHaveTag) return; } + /// + /// Searches the room for all objects with the input tag and outputs a list of their direct children and all descendants in the hierarchy. + /// + public List GetAllChildrenWithTagR2(string tag) + { + return default; + } + /// /// Resets an object. /// From a48ce91e85b0194e4ac10fa93d334ff2d112148f Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Tue, 8 Oct 2024 19:15:07 +0200 Subject: [PATCH 09/16] Replace battery of EventReceivers with just two --- Runtime/Chips/ChipBuilder.cs | 440 ++---------------- .../Chips/ClassChips/EventDefinitionBuild.cs | 36 +- Runtime/Events/Generated/RoomEvent3Build.cs | 2 +- 3 files changed, 51 insertions(+), 427 deletions(-) diff --git a/Runtime/Chips/ChipBuilder.cs b/Runtime/Chips/ChipBuilder.cs index 20c203c..8d99b27 100644 --- a/Runtime/Chips/ChipBuilder.cs +++ b/Runtime/Chips/ChipBuilder.cs @@ -1,10 +1,9 @@ using RRCG; using RRCGGenerated; -using RRCGSource; -using System; -using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Runtime.CompilerServices; +using System; using UnityEngine; namespace RRCGBuild @@ -20,415 +19,40 @@ public static void EventReceiver(string eventName, Guid eventId) EventReceiver(new EventReceiverData(eventName)); } - public static T0 EventReceiver(string eventName, Guid eventId) where T0 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return new T0() { Port = node.Port(0, 1) }; - } - - public static (T0, T1) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) } - ); - } - public static (T0, T1, T2) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) } - ); - } - public static (T0, T1, T2, T3) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) } - ); - } - - public static (T0, T1, T2, T3, T4) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) } - ); - } - - public static (T0, T1, T2, T3, T4, T5) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() + public static T EventReceiver(string eventName, Guid eventId) where T : new() { EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; + Node node = Context.lastSpawnedNode; - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6, T7) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - where T7 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) }, - new T7() { Port = node.Port(0, 8) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - where T7 : AnyPort, new() - where T8 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) }, - new T7() { Port = node.Port(0, 8) }, - new T8() { Port = node.Port(0, 9) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - where T7 : AnyPort, new() - where T8 : AnyPort, new() - where T9 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) }, - new T7() { Port = node.Port(0, 8) }, - new T8() { Port = node.Port(0, 9) }, - new T9() { Port = node.Port(0, 10) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - where T7 : AnyPort, new() - where T8 : AnyPort, new() - where T9 : AnyPort, new() - where T10 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) }, - new T7() { Port = node.Port(0, 8) }, - new T8() { Port = node.Port(0, 9) }, - new T9() { Port = node.Port(0, 10) }, - new T10() { Port = node.Port(0, 11) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - where T7 : AnyPort, new() - where T8 : AnyPort, new() - where T9 : AnyPort, new() - where T10 : AnyPort, new() - where T11 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) }, - new T7() { Port = node.Port(0, 8) }, - new T8() { Port = node.Port(0, 9) }, - new T9() { Port = node.Port(0, 10) }, - new T10() { Port = node.Port(0, 11) }, - new T11() { Port = node.Port(0, 12) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - where T7 : AnyPort, new() - where T8 : AnyPort, new() - where T9 : AnyPort, new() - where T10 : AnyPort, new() - where T11 : AnyPort, new() - where T12 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) }, - new T7() { Port = node.Port(0, 8) }, - new T8() { Port = node.Port(0, 9) }, - new T9() { Port = node.Port(0, 10) }, - new T10() { Port = node.Port(0, 11) }, - new T11() { Port = node.Port(0, 12) }, - new T12() { Port = node.Port(0, 13) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - where T7 : AnyPort, new() - where T8 : AnyPort, new() - where T9 : AnyPort, new() - where T10 : AnyPort, new() - where T11 : AnyPort, new() - where T12 : AnyPort, new() - where T13 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) }, - new T7() { Port = node.Port(0, 8) }, - new T8() { Port = node.Port(0, 9) }, - new T9() { Port = node.Port(0, 10) }, - new T10() { Port = node.Port(0, 11) }, - new T11() { Port = node.Port(0, 12) }, - new T12() { Port = node.Port(0, 13) }, - new T13() { Port = node.Port(0, 14) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - where T7 : AnyPort, new() - where T8 : AnyPort, new() - where T9 : AnyPort, new() - where T10 : AnyPort, new() - where T11 : AnyPort, new() - where T12 : AnyPort, new() - where T13 : AnyPort, new() - where T14 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; - - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) }, - new T7() { Port = node.Port(0, 8) }, - new T8() { Port = node.Port(0, 9) }, - new T9() { Port = node.Port(0, 10) }, - new T10() { Port = node.Port(0, 11) }, - new T11() { Port = node.Port(0, 12) }, - new T12() { Port = node.Port(0, 13) }, - new T13() { Port = node.Port(0, 14) }, - new T14() { Port = node.Port(0, 15) } - ); - } - - public static (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) EventReceiver(string eventName, Guid eventId) - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - where T4 : AnyPort, new() - where T5 : AnyPort, new() - where T6 : AnyPort, new() - where T7 : AnyPort, new() - where T8 : AnyPort, new() - where T9 : AnyPort, new() - where T10 : AnyPort, new() - where T11 : AnyPort, new() - where T12 : AnyPort, new() - where T13 : AnyPort, new() - where T14 : AnyPort, new() - where T15 : AnyPort, new() - { - EventReceiver(eventName, eventId); - var node = Context.lastSpawnedNode; + if (typeof(AnyPort).IsAssignableFrom(typeof(T))) + { + T instance = new T(); + if (instance is AnyPort anyPort) + anyPort.Port = node.Port(0, 1); + else + throw new ArgumentException($"Cast failed."); + return instance; + } + else if (typeof(ITuple).IsAssignableFrom(typeof(T))) + { + Type tupleType = typeof(T); + int tupleLength = tupleType.GenericTypeArguments.Length; + object[] tupleArgs = new object[tupleLength]; + for (int i = 0; i < tupleLength; i++) + { + Type portType = tupleType.GenericTypeArguments[i]; + if (Activator.CreateInstance(portType) is not AnyPort portInstance) + throw new ArgumentException($"Tuple argument {i} ({portType}) must be an AnyPort."); + portInstance.Port = node.Port(0, i + 1); + tupleArgs[i] = portInstance; + } - return ( - new T0() { Port = node.Port(0, 1) }, - new T1() { Port = node.Port(0, 2) }, - new T2() { Port = node.Port(0, 3) }, - new T3() { Port = node.Port(0, 4) }, - new T4() { Port = node.Port(0, 5) }, - new T5() { Port = node.Port(0, 6) }, - new T6() { Port = node.Port(0, 7) }, - new T7() { Port = node.Port(0, 8) }, - new T8() { Port = node.Port(0, 9) }, - new T9() { Port = node.Port(0, 10) }, - new T10() { Port = node.Port(0, 11) }, - new T11() { Port = node.Port(0, 12) }, - new T12() { Port = node.Port(0, 13) }, - new T13() { Port = node.Port(0, 14) }, - new T14() { Port = node.Port(0, 15) }, - new T15() { Port = node.Port(0, 16) } - ); + return (T)Activator.CreateInstance(tupleType, tupleArgs); + } + else + { + throw new ArgumentException($"T ({typeof(T)}) must be an AnyPort or tuple."); + } } internal static void EventSender(string eventName, Guid eventId, EventTarget eventTarget, params AnyPort[] inputs) diff --git a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs index 66933e5..4077956 100644 --- a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs +++ b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs @@ -143,7 +143,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1) => base.SendRoomAuthority(value0, value1); public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => base.SendPlayer(player, value0, value1); - public (T0, T1) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1) Receiver() => ChipBuilder.EventReceiver<(T0, T1)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -177,7 +177,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => base.SendRoomAuthority(value0, value1, value2); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => base.SendPlayer(player, value0, value1, value2); - public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -214,7 +214,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => base.SendRoomAuthority(value0, value1, value2, value3); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => base.SendPlayer(player, value0, value1, value2, value3); - public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -254,7 +254,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendRoomAuthority(value0, value1, value2, value3, value4); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendPlayer(player, value0, value1, value2, value3, value4); - public (T0, T1, T2, T3, T4) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -297,7 +297,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5); - public (T0, T1, T2, T3, T4, T5) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -343,7 +343,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6); - public (T0, T1, T2, T3, T4, T5, T6) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -392,7 +392,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7); - public (T0, T1, T2, T3, T4, T5, T6, T7) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -444,7 +444,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -499,7 +499,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -557,7 +557,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -618,7 +618,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -682,7 +682,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -749,7 +749,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -819,7 +819,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -892,7 +892,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>(EventName, EventId); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -1002,7 +1002,7 @@ public EventHelper Definition() public void SendRoomAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0, value1); public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0, value1); - public (T0, T1) Receiver() => ChipBuilder.EventReceiver(eventName, eventId); + public (T0, T1) Receiver() => ChipBuilder.EventReceiver<(T0, T1)>(eventName, eventId); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] @@ -1050,7 +1050,7 @@ public EventHelper Definition() public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0, value1, value2); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0, value1, value2); - public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver(eventName, eventId); + public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2)>(eventName, eventId); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] @@ -1103,7 +1103,7 @@ public EventHelper Definition() public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0, value1, value2, value3); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0, value1, value2, value3); - public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver(eventName, eventId); + public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3)>(eventName, eventId); } } diff --git a/Runtime/Events/Generated/RoomEvent3Build.cs b/Runtime/Events/Generated/RoomEvent3Build.cs index e95c70c..fc9a53c 100644 --- a/Runtime/Events/Generated/RoomEvent3Build.cs +++ b/Runtime/Events/Generated/RoomEvent3Build.cs @@ -9,7 +9,7 @@ public static void ConsumablePurchased(AlternativeExec<(ConsumablePort consumabl { CircuitBuilder.InlineGraph(() => { - onConsumablePurchased(ChipBuilder.EventReceiver("Consumable Purchased", Guid.ParseExact("b5678272-adbe-4e59-a833-bd156fd8f7fa", "D"))); + onConsumablePurchased(ChipBuilder.EventReceiver<(ConsumablePort consumable, IntPort quantity)>("Consumable Purchased", Guid.ParseExact("b5678272-adbe-4e59-a833-bd156fd8f7fa", "D"))); } ); From f71e2e4ac238e9a0bcec3d8f0aa8f41f856a0488 Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Tue, 8 Oct 2024 21:47:20 +0200 Subject: [PATCH 10/16] Allow for different kinds of event overloads: name, id, or both if you don't know what you have --- Runtime/Chips/ChipBuilder.cs | 45 ++++++- .../Chips/ClassChips/EventDefinitionBuild.cs | 126 +++++++++--------- Runtime/Chips/ClassChips/VariableBuild.cs | 2 +- Runtime/CircuitDescriptor/CircuitBuilder.cs | 6 +- Runtime/Events/Generated/RoomEvent3.cs | 1 + Runtime/Events/Generated/RoomEvent3Build.cs | 29 ++-- Runtime/Types/Configuration.cs | 4 +- Runtime/Types/Events/RoomEventBuild.cs | 8 +- 8 files changed, 126 insertions(+), 95 deletions(-) diff --git a/Runtime/Chips/ChipBuilder.cs b/Runtime/Chips/ChipBuilder.cs index 8d99b27..8a7a3e6 100644 --- a/Runtime/Chips/ChipBuilder.cs +++ b/Runtime/Chips/ChipBuilder.cs @@ -14,14 +14,37 @@ public class ChipBuilder : RRCGGenerated.ChipBuilderGen // Event Nodes // #region EventNodes - public static void EventReceiver(string eventName, Guid eventId) + + public static void EventReceiver(string eventName) + { + EventReceiver(new EventReceiverData(eventName, Guid.Empty)); + } + + public static void EventReceiver(Guid eventId) + { + EventReceiver(new EventReceiverData(null, eventId)); + } + + public static T EventReceiver(string eventName) where T : new() + { + EventReceiver(eventName); + return ReadEventReceiverData(); + } + + public static T EventReceiver(Guid eventId) where T : new() { - EventReceiver(new EventReceiverData(eventName)); + EventReceiver(eventId); + return ReadEventReceiverData(); } - public static T EventReceiver(string eventName, Guid eventId) where T : new() + public static T EventReceiver(EventReceiverData receiverData) where T : new() + { + EventReceiver(receiverData); + return ReadEventReceiverData(); + } + + private static T ReadEventReceiverData() where T : new() { - EventReceiver(eventName, eventId); Node node = Context.lastSpawnedNode; if (typeof(AnyPort).IsAssignableFrom(typeof(T))) @@ -55,15 +78,25 @@ public static void EventReceiver(string eventName, Guid eventId) } } - internal static void EventSender(string eventName, Guid eventId, EventTarget eventTarget, params AnyPort[] inputs) + internal static void EventSender(EventSenderData eventData, params AnyPort[] inputs) { - EventSender(new EventSenderData(eventName, eventTarget)); + EventSender(eventData); var node = Context.lastSpawnedNode; for (var i = 0; i < inputs.Length; i++) node.ConnectInputPort(inputs[i], node.Port(0, 1 + i)); } + internal static void EventSender(string eventName, EventTarget eventTarget, params AnyPort[] inputs) + { + EventSender(new EventSenderData(eventName, Guid.Empty, eventTarget), inputs); + } + + internal static void EventSender(Guid eventId, EventTarget eventTarget, params AnyPort[] inputs) + { + EventSender(new EventSenderData(null, eventId, eventTarget), inputs); + } + internal static void EventDefinition(string eventName, Guid eventId, params (StringPort, Type)[] eventDefinition) { EventDefinition(new EventDefinitionData( diff --git a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs index 4077956..17e8911 100644 --- a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs +++ b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; +using UnityEngine.UIElements; namespace RRCGBuild { @@ -32,12 +33,12 @@ protected void InitExistingEvent(string eventName, Guid eventId) EventId = eventId; } - public void SendLocal(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.LOCAL, values); - public void SendOthers(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.OTHERS, values); - public void SendAll(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.ALL, values); - public void SendAuthority(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.AUTHORITY, values); - public void SendRoomAuthority(params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.ROOM_AUTHORITY, values); - public void SendPlayer(PlayerPort player, params AnyPort[] values) => ChipBuilder.EventSender(EventName, EventId, EventTarget.PLAYER, new[] { player }.Concat(values).ToArray()); + public void SendLocal(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.LOCAL), values); + public void SendOthers(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.OTHERS), values); + public void SendAll(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.ALL), values); + public void SendAuthority(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.AUTHORITY), values); + public void SendRoomAuthority(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.ROOM_AUTHORITY), values); + public void SendPlayer(PlayerPort player, params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.PLAYER), new[] { player }.Concat(values).ToArray()); } // Access to the generic interface. It is up to the user to make sure the types are correct. @@ -47,23 +48,16 @@ internal class DynamicEventDefinition : BaseEvent public AnyPort[] Receiver() { - ChipBuilder.EventReceiver(EventName, EventId); - + ChipBuilder.EventReceiver(new EventReceiverData(EventName, EventId)); var node = Context.lastSpawnedNode; - var ports = new List(); - for (var i = 0; i < EventDefinition.Length; i++) { var portType = EventDefinition[i].Item2; - var port = (AnyPort)Activator.CreateInstance(portType); - port.Port = node.Port(0, 1 + i); - ports.Add(port); } - return ports.ToArray(); } } @@ -83,7 +77,7 @@ public class EventDefinition : BaseEvent public void SendRoomAuthority() => base.SendRoomAuthority(); public void SendPlayer(PlayerPort player) => base.SendPlayer(player); - public void Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public void Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec inlineGraph) { CircuitBuilder.InlineGraph(() => { Receiver(); inlineGraph(); }); @@ -112,7 +106,7 @@ public EventDefinition(string eventName, StringPort param0Name) => InitNewEvent( public void SendRoomAuthority(T0 value0) => base.SendRoomAuthority(value0); public void SendPlayer(PlayerPort player, T0 value0) => base.SendPlayer(player, value0); - public T0 Receiver() => ChipBuilder.EventReceiver(EventName, EventId); + public T0 Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -143,7 +137,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1) => base.SendRoomAuthority(value0, value1); public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => base.SendPlayer(player, value0, value1); - public (T0, T1) Receiver() => ChipBuilder.EventReceiver<(T0, T1)>(EventName, EventId); + public (T0, T1) Receiver() => ChipBuilder.EventReceiver<(T0, T1)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -177,7 +171,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => base.SendRoomAuthority(value0, value1, value2); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => base.SendPlayer(player, value0, value1, value2); - public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2)>(EventName, EventId); + public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -214,7 +208,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => base.SendRoomAuthority(value0, value1, value2, value3); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => base.SendPlayer(player, value0, value1, value2, value3); - public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3)>(EventName, EventId); + public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -254,7 +248,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendRoomAuthority(value0, value1, value2, value3, value4); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendPlayer(player, value0, value1, value2, value3, value4); - public (T0, T1, T2, T3, T4) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4)>(EventName, EventId); + public (T0, T1, T2, T3, T4) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -297,7 +291,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5); - public (T0, T1, T2, T3, T4, T5) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -343,7 +337,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6); - public (T0, T1, T2, T3, T4, T5, T6) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -392,7 +386,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7); - public (T0, T1, T2, T3, T4, T5, T6, T7) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -444,7 +438,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -499,7 +493,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -557,7 +551,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -618,7 +612,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -682,7 +676,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -749,7 +743,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -819,7 +813,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -892,7 +886,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>(EventName, EventId); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>(new EventReceiverData(EventName, EventId)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -922,14 +916,14 @@ public EventHelper Definition() public void Sender() => SendLocal(); - public void SendLocal() => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL); - public void SendOthers() => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS); - public void SendAll() => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL); - public void SendAuthority() => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY); - public void SendRoomAuthority() => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY); - public void SendPlayer(PlayerPort player) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player); + public void SendLocal() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL)); + public void SendOthers() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS)); + public void SendAll() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL)); + public void SendAuthority() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY)); + public void SendRoomAuthority() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY)); + public void SendPlayer(PlayerPort player) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player); - public void Receiver() => ChipBuilder.EventReceiver(eventName, eventId); + public void Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(eventName, eventId)); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] @@ -952,14 +946,14 @@ public EventHelper Definition() } public void Sender(T0 value0) => SendLocal(value0); - public void SendLocal(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL, value0); - public void SendOthers(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS, value0); - public void SendAll(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL, value0); - public void SendAuthority(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY, value0); - public void SendRoomAuthority(T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0); - public void SendPlayer(PlayerPort player, T0 value0) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0); + public void SendLocal(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL), value0); + public void SendOthers(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS), value0); + public void SendAll(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL), value0); + public void SendAuthority(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY), value0); + public void SendRoomAuthority(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY), value0); + public void SendPlayer(PlayerPort player, T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player, value0); - public T0 Receiver() => ChipBuilder.EventReceiver(eventName, eventId); + public T0 Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(eventName, eventId)); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] @@ -995,14 +989,14 @@ public EventHelper Definition() } public void Sender(T0 value0, T1 value1) => SendLocal(value0, value1); - public void SendLocal(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL, value0, value1); - public void SendOthers(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS, value0, value1); - public void SendAll(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL, value0, value1); - public void SendAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY, value0, value1); - public void SendRoomAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0, value1); - public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0, value1); + public void SendLocal(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL), value0, value1); + public void SendOthers(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS), value0, value1); + public void SendAll(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL), value0, value1); + public void SendAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY), value0, value1); + public void SendRoomAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY), value0, value1); + public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player, value0, value1); - public (T0, T1) Receiver() => ChipBuilder.EventReceiver<(T0, T1)>(eventName, eventId); + public (T0, T1) Receiver() => ChipBuilder.EventReceiver<(T0, T1)>(new EventReceiverData(eventName, eventId)); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] @@ -1043,14 +1037,14 @@ public EventHelper Definition() } public void Sender(T0 value0, T1 value1, T2 value2) => SendLocal(value0, value1, value2); - public void SendLocal(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL, value0, value1, value2); - public void SendOthers(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS, value0, value1, value2); - public void SendAll(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL, value0, value1, value2); - public void SendAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY, value0, value1, value2); - public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0, value1, value2); - public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0, value1, value2); + public void SendLocal(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL), value0, value1, value2); + public void SendOthers(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS), value0, value1, value2); + public void SendAll(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL), value0, value1, value2); + public void SendAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY), value0, value1, value2); + public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY), value0, value1, value2); + public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player, value0, value1, value2); - public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2)>(eventName, eventId); + public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2)>(new EventReceiverData(eventName, eventId)); } [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] @@ -1096,14 +1090,14 @@ public EventHelper Definition() } public void Sender(T0 value0, T1 value1, T2 value2, T3 value3) => SendLocal(value0, value1, value2, value3); - public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.LOCAL, value0, value1, value2, value3); - public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.OTHERS, value0, value1, value2, value3); - public void SendAll(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ALL, value0, value1, value2, value3); - public void SendAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.AUTHORITY, value0, value1, value2, value3); - public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.ROOM_AUTHORITY, value0, value1, value2, value3); - public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(eventName, eventId, EventTarget.PLAYER, player, value0, value1, value2, value3); + public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL), value0, value1, value2, value3); + public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS), value0, value1, value2, value3); + public void SendAll(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL), value0, value1, value2, value3); + public void SendAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY), value0, value1, value2, value3); + public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY), value0, value1, value2, value3); + public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player, value0, value1, value2, value3); - public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3)>(eventName, eventId); + public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3)>(new EventReceiverData(eventName, eventId)); } } diff --git a/Runtime/Chips/ClassChips/VariableBuild.cs b/Runtime/Chips/ClassChips/VariableBuild.cs index e938581..7f37032 100644 --- a/Runtime/Chips/ClassChips/VariableBuild.cs +++ b/Runtime/Chips/ClassChips/VariableBuild.cs @@ -110,7 +110,7 @@ public T Value } AnyPort IVariable.ChangedEvent() => ChangedEvent(); - public T ChangedEvent() => ChipBuilder.EventReceiver(name + " Changed", Guid.Empty); + public T ChangedEvent() => ChipBuilder.EventReceiver(name + " Changed"); IVariable IVariable.ChangedEvent(AlternativeExec OnChanged) => (IVariable)ChangedEvent(v => OnChanged(v)); public IVariable ChangedEvent(AlternativeExec OnChanged) diff --git a/Runtime/CircuitDescriptor/CircuitBuilder.cs b/Runtime/CircuitDescriptor/CircuitBuilder.cs index 9220e88..30457bd 100644 --- a/Runtime/CircuitDescriptor/CircuitBuilder.cs +++ b/Runtime/CircuitDescriptor/CircuitBuilder.cs @@ -298,10 +298,10 @@ public static void ExistingExecOutput(StringPort portName) { } - public static void StudioEventReceiver(string eventName, Guid eventId) + public static void StudioEventReceiver(string eventName, Guid eventId = default) { CircuitBuilder.Singleton("StudioEventReceiver_" + eventName, () => EventDefinition(eventName, eventId)); - EventReceiver(eventName, eventId); + EventReceiver(eventId); } /// @@ -1251,7 +1251,7 @@ public static void __OptimizedFor(ConditionalContext conditional, IntPort min, I if (!port.EquivalentTo(node.Port(0, 1))) goto fail; // All checks pass, create the event receiver - return EventReceiver(node.VariableData.Name + " Changed", Guid.Empty); + return EventReceiver(node.VariableData.Name + " Changed"); fail: // I didn't want to duplicate the message throw new ArgumentException("The memberVariable argument must refer to a variable output port!"); diff --git a/Runtime/Events/Generated/RoomEvent3.cs b/Runtime/Events/Generated/RoomEvent3.cs index 3e4dde8..17f9b77 100644 --- a/Runtime/Events/Generated/RoomEvent3.cs +++ b/Runtime/Events/Generated/RoomEvent3.cs @@ -1,4 +1,5 @@ using RRCGSource; +using UnityEngine; using System; namespace RRCGSource diff --git a/Runtime/Events/Generated/RoomEvent3Build.cs b/Runtime/Events/Generated/RoomEvent3Build.cs index fc9a53c..bf651d5 100644 --- a/Runtime/Events/Generated/RoomEvent3Build.cs +++ b/Runtime/Events/Generated/RoomEvent3Build.cs @@ -1,4 +1,5 @@ using RRCGSource; +using UnityEngine; using System; namespace RRCGBuild @@ -9,7 +10,7 @@ public static void ConsumablePurchased(AlternativeExec<(ConsumablePort consumabl { CircuitBuilder.InlineGraph(() => { - onConsumablePurchased(ChipBuilder.EventReceiver<(ConsumablePort consumable, IntPort quantity)>("Consumable Purchased", Guid.ParseExact("b5678272-adbe-4e59-a833-bd156fd8f7fa", "D"))); + onConsumablePurchased(ChipBuilder.EventReceiver<(ConsumablePort consumable, IntPort quantity)>(Guid.ParseExact("b5678272-adbe-4e59-a833-bd156fd8f7fa", "D"))); } ); @@ -19,7 +20,7 @@ public static void ConsumableUsed(AlternativeExec onConsumableUs { CircuitBuilder.InlineGraph(() => { - onConsumableUsed(ChipBuilder.EventReceiver("Consumable Used", Guid.ParseExact("304464c2-e4ec-408c-9b6e-26788d9b0526", "D"))); + onConsumableUsed(ChipBuilder.EventReceiver(Guid.ParseExact("304464c2-e4ec-408c-9b6e-26788d9b0526", "D"))); } ); @@ -29,7 +30,7 @@ public static void DEPRECATEDLocalPlayerSpawned(AlternativeExec onDEPRECATEDLoca { CircuitBuilder.InlineGraph(() => { - ChipBuilder.EventReceiver("DEPRECATED Local Player Spawned", Guid.ParseExact("3c0c12fe-d760-48a3-b44e-b96850f82a4a", "D")); + ChipBuilder.EventReceiver(Guid.ParseExact("3c0c12fe-d760-48a3-b44e-b96850f82a4a", "D")); onDEPRECATEDLocalPlayerSpawned(); } @@ -40,7 +41,7 @@ public static void DEPRECATEDPlayerLeft(AlternativeExec onDEPRECATED { CircuitBuilder.InlineGraph(() => { - onDEPRECATEDPlayerLeft(ChipBuilder.EventReceiver("DEPRECATED Player Left", Guid.ParseExact("f52effba-2c1b-4f0b-a661-7079b45710ff", "D"))); + onDEPRECATEDPlayerLeft(ChipBuilder.EventReceiver(Guid.ParseExact("f52effba-2c1b-4f0b-a661-7079b45710ff", "D"))); } ); @@ -50,7 +51,7 @@ public static void LevelReached(AlternativeExec onLevelReached) { CircuitBuilder.InlineGraph(() => { - onLevelReached(ChipBuilder.EventReceiver("Level Reached", Guid.ParseExact("456a88e0-ed1d-4928-8af3-cb566ce19488", "D"))); + onLevelReached(ChipBuilder.EventReceiver(Guid.ParseExact("456a88e0-ed1d-4928-8af3-cb566ce19488", "D"))); } ); @@ -60,7 +61,7 @@ public static void PlayerJoined(AlternativeExec onPlayerJoined) { CircuitBuilder.InlineGraph(() => { - onPlayerJoined(ChipBuilder.EventReceiver("Player Joined", Guid.ParseExact("a68a4b00-adf5-4aef-801a-fa6264771a9f", "D"))); + onPlayerJoined(ChipBuilder.EventReceiver(Guid.ParseExact("a68a4b00-adf5-4aef-801a-fa6264771a9f", "D"))); } ); @@ -70,7 +71,7 @@ public static void PlayerLeaving(AlternativeExec onPlayerLeaving) { CircuitBuilder.InlineGraph(() => { - onPlayerLeaving(ChipBuilder.EventReceiver("Player Leaving", Guid.ParseExact("e8a19063-e8a2-40b0-a955-b0a23712aefa", "D"))); + onPlayerLeaving(ChipBuilder.EventReceiver(Guid.ParseExact("e8a19063-e8a2-40b0-a955-b0a23712aefa", "D"))); } ); @@ -80,7 +81,7 @@ public static void PlayerLeft(AlternativeExec onPlayerLeft) { CircuitBuilder.InlineGraph(() => { - onPlayerLeft(ChipBuilder.EventReceiver("Player Left", Guid.ParseExact("dd292b5d-5218-4d4a-abf4-aa9dbe283e50", "D"))); + onPlayerLeft(ChipBuilder.EventReceiver(Guid.ParseExact("dd292b5d-5218-4d4a-abf4-aa9dbe283e50", "D"))); } ); @@ -90,7 +91,7 @@ public static void RoomAuthorityChanged(AlternativeExec onRoomAuthor { CircuitBuilder.InlineGraph(() => { - onRoomAuthorityChanged(ChipBuilder.EventReceiver("Room Authority Changed", Guid.ParseExact("dc968273-75aa-455e-9aa4-58f4e9548e62", "D"))); + onRoomAuthorityChanged(ChipBuilder.EventReceiver(Guid.ParseExact("dc968273-75aa-455e-9aa4-58f4e9548e62", "D"))); } ); @@ -100,7 +101,7 @@ public static void RoomKeyPurchased(AlternativeExec onRoomKeyPurcha { CircuitBuilder.InlineGraph(() => { - onRoomKeyPurchased(ChipBuilder.EventReceiver("Room Key Purchased", Guid.ParseExact("a6c9db82-c995-41f4-9e9e-2fa6241a21bf", "D"))); + onRoomKeyPurchased(ChipBuilder.EventReceiver(Guid.ParseExact("a6c9db82-c995-41f4-9e9e-2fa6241a21bf", "D"))); } ); @@ -110,7 +111,7 @@ public static void RoomLoaded(AlternativeExec onRoomLoaded) { CircuitBuilder.InlineGraph(() => { - ChipBuilder.EventReceiver("Room Loaded", Guid.ParseExact("5efce997-30d2-431f-b156-c4ebda8fb1ad", "D")); + ChipBuilder.EventReceiver(Guid.ParseExact("5efce997-30d2-431f-b156-c4ebda8fb1ad", "D")); onRoomLoaded(); } @@ -121,7 +122,7 @@ public static void RoomReset(AlternativeExec onRoomReset) { CircuitBuilder.InlineGraph(() => { - ChipBuilder.EventReceiver("Room Reset", Guid.ParseExact("ba20b726-fbc4-400b-b6fd-f88804063378", "D")); + ChipBuilder.EventReceiver(Guid.ParseExact("ba20b726-fbc4-400b-b6fd-f88804063378", "D")); onRoomReset(); } @@ -132,7 +133,7 @@ public static void TestEvent(AlternativeExec onTestEvent) { CircuitBuilder.InlineGraph(() => { - onTestEvent(ChipBuilder.EventReceiver("Test Event", Guid.ParseExact("888ab607-ac44-422e-b3d7-94a219450484", "D"))); + onTestEvent(ChipBuilder.EventReceiver(Guid.ParseExact("888ab607-ac44-422e-b3d7-94a219450484", "D"))); } ); @@ -142,7 +143,7 @@ public static void Update30Hz(AlternativeExec onUpdate30Hz) { CircuitBuilder.InlineGraph(() => { - onUpdate30Hz(ChipBuilder.EventReceiver("Update 30Hz", Guid.ParseExact("1ac8f2f7-ca6e-4530-b19a-1b9a8de3954d", "D"))); + onUpdate30Hz(ChipBuilder.EventReceiver(Guid.ParseExact("1ac8f2f7-ca6e-4530-b19a-1b9a8de3954d", "D"))); } ); diff --git a/Runtime/Types/Configuration.cs b/Runtime/Types/Configuration.cs index 94ea538..51b7a49 100644 --- a/Runtime/Types/Configuration.cs +++ b/Runtime/Types/Configuration.cs @@ -103,11 +103,13 @@ public record EventDefinitionData( ); public record EventReceiverData( - string EventName + string EventName, + Guid EventId ); public record EventSenderData( string EventName, + Guid EventId, EventTarget EventTarget ); diff --git a/Runtime/Types/Events/RoomEventBuild.cs b/Runtime/Types/Events/RoomEventBuild.cs index 8d1d753..27c7b78 100644 --- a/Runtime/Types/Events/RoomEventBuild.cs +++ b/Runtime/Types/Events/RoomEventBuild.cs @@ -5,16 +5,16 @@ namespace RRCGBuild { public static class RoomEvent { - public static FloatPort Hz30() => ChipBuilder.EventReceiver(RoomEvents.Hz30, Guid.Empty); + public static FloatPort Hz30() => ChipBuilder.EventReceiver(RoomEvents.Hz30); public static void Hz30(AlternativeExec onHz30) => CircuitBuilder.InlineGraph(() => onHz30(Hz30())); - public static FloatPort Update() => ChipBuilder.EventReceiver(RoomEvents.Update, Guid.Empty); + public static FloatPort Update() => ChipBuilder.EventReceiver(RoomEvents.Update); public static void Update(AlternativeExec onUpdate) => CircuitBuilder.InlineGraph(() => onUpdate(Update())); - public static StringPort TestEvent() => ChipBuilder.EventReceiver(RoomEvents.TestEvent, Guid.Empty); + public static StringPort TestEvent() => ChipBuilder.EventReceiver(RoomEvents.TestEvent); public static void TestEvent(AlternativeExec onTestEvent) => CircuitBuilder.InlineGraph(() => { onTestEvent(TestEvent()); }); - public static ConsumablePort ConsumableUsed() => ChipBuilder.EventReceiver(RoomEvents.ConsumableUsed, Guid.Empty); + public static ConsumablePort ConsumableUsed() => ChipBuilder.EventReceiver(RoomEvents.ConsumableUsed); public static void ConsumableUsed(AlternativeExec onConsumableUsed) => CircuitBuilder.InlineGraph(() => onConsumableUsed(ConsumableUsed())); } } \ No newline at end of file From 91e13287f7135f098ed399c27ebc27940b6e1d26 Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Fri, 11 Oct 2024 18:19:56 +0200 Subject: [PATCH 11/16] Add some inheritance --- Runtime/Types/Configuration.cs | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/Runtime/Types/Configuration.cs b/Runtime/Types/Configuration.cs index 51b7a49..94b32b0 100644 --- a/Runtime/Types/Configuration.cs +++ b/Runtime/Types/Configuration.cs @@ -96,22 +96,27 @@ public record RoomKeyData(Guid Id); public record RoomCurrencyData(Guid Id); public record RoomConsumableData(Guid Id); + public record EventData( + string EventName, + Guid EventId + ); + public record EventDefinitionData( string EventName, Guid EventId, (string, Type)[] EventDefinition - ); + ) : EventData(EventName, EventId); public record EventReceiverData( string EventName, Guid EventId - ); + ) : EventData(EventName, EventId); public record EventSenderData( string EventName, Guid EventId, EventTarget EventTarget - ); + ) : EventData(EventName, EventId); public record RaycastData( bool IgnorePlayers = false, @@ -125,10 +130,17 @@ public record VariableData( object HomeValue ); + // Couldn't come up with a descriptive name for this one. + // This one is for Data Table Get Row/Column count. + // It refers to a specific Data Table, but not to a column. + public record DataTableData( + string DataTableName + ); + public record DataTableColumnData( string DataTableName, string ColumnName - ); + ) : DataTableData(DataTableName); public record FogData( int Color, @@ -141,13 +153,6 @@ public record DataTableDefinitionData( (Type Type, string Name, object[] Cells)[] Columns ); - // Couldn't come up with a descriptive name for this one. - // This one is for Data Table Get Row/Column count. - // It refers to a specific Data Table, but not to a column. - public record DataTableData( - string DataTableName - ); - public record SequenceData( int NumBranches ); From 41116348e65a92b75100da2d334f69d307544888 Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Fri, 11 Oct 2024 22:05:48 +0200 Subject: [PATCH 12/16] Bugfix --- Runtime/Chips/ChipBuilder.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Runtime/Chips/ChipBuilder.cs b/Runtime/Chips/ChipBuilder.cs index 8a7a3e6..29c3821 100644 --- a/Runtime/Chips/ChipBuilder.cs +++ b/Runtime/Chips/ChipBuilder.cs @@ -80,7 +80,7 @@ public static void EventReceiver(Guid eventId) internal static void EventSender(EventSenderData eventData, params AnyPort[] inputs) { - EventSender(eventData); + ChipBuilderGen.EventSender(eventData); var node = Context.lastSpawnedNode; for (var i = 0; i < inputs.Length; i++) From 50a1da37c6779fec1ee9f0fb6f2cfffb1f38b05b Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Sat, 12 Oct 2024 00:00:01 +0200 Subject: [PATCH 13/16] Make sure event data always contains something --- Runtime/CircuitDescriptor/CircuitBuilder.cs | 5 ++++- Runtime/Types/Configuration.cs | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Runtime/CircuitDescriptor/CircuitBuilder.cs b/Runtime/CircuitDescriptor/CircuitBuilder.cs index 30457bd..4f5085c 100644 --- a/Runtime/CircuitDescriptor/CircuitBuilder.cs +++ b/Runtime/CircuitDescriptor/CircuitBuilder.cs @@ -301,7 +301,10 @@ public static void ExistingExecOutput(StringPort portName) public static void StudioEventReceiver(string eventName, Guid eventId = default) { CircuitBuilder.Singleton("StudioEventReceiver_" + eventName, () => EventDefinition(eventName, eventId)); - EventReceiver(eventId); + if (eventId == Guid.Empty) + EventReceiver(eventName); + else + EventReceiver(eventId); } /// diff --git a/Runtime/Types/Configuration.cs b/Runtime/Types/Configuration.cs index 94b32b0..8835602 100644 --- a/Runtime/Types/Configuration.cs +++ b/Runtime/Types/Configuration.cs @@ -96,10 +96,18 @@ public record RoomKeyData(Guid Id); public record RoomCurrencyData(Guid Id); public record RoomConsumableData(Guid Id); - public record EventData( - string EventName, - Guid EventId - ); + public record EventData + { + public string EventName { get; init; } + public Guid EventId { get; init; } + public EventData(string eventName, Guid eventId) + { + if (string.IsNullOrWhiteSpace(eventName) && (eventId == Guid.Empty)) + throw new ArgumentException("Event name and ID cannot be empty at the same time."); + EventName = eventName; + EventId = eventId; + } + } public record EventDefinitionData( string EventName, From e3d2b057bf7977c65ab4b45c4b4b0fd221a8a08d Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Sat, 12 Oct 2024 18:03:22 +0200 Subject: [PATCH 14/16] Bugfix --- Runtime/Chips/ClassChips/EventDefinitionBuild.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs index 17e8911..a0f1b77 100644 --- a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs +++ b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs @@ -21,7 +21,7 @@ protected void InitNewEvent(string eventName, params (StringPort, Type)[] eventD var eventNameBase = eventName ?? sourceName; EventName = Context.current.GetUniqueId($"RRCG_{eventNameBase}"); - EventId = Guid.NewGuid(); + EventId = Guid.Empty; EventDefinition = eventDefinition; ChipBuilder.EventDefinition(EventName, EventId, eventDefinition); From f8e1b3ab71ae5e9ce71b5995f9c1ba74b179bb30 Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Sat, 12 Oct 2024 18:03:48 +0200 Subject: [PATCH 15/16] Allow updating EventIds later --- Runtime/Types/Configuration.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Runtime/Types/Configuration.cs b/Runtime/Types/Configuration.cs index 8835602..90f307b 100644 --- a/Runtime/Types/Configuration.cs +++ b/Runtime/Types/Configuration.cs @@ -99,7 +99,8 @@ public record RoomConsumableData(Guid Id); public record EventData { public string EventName { get; init; } - public Guid EventId { get; init; } + public Guid EventId { get; set; } + public EventData(string eventName, Guid eventId) { if (string.IsNullOrWhiteSpace(eventName) && (eventId == Guid.Empty)) From 3751d8d2cd2368818572b3bf279cb39de55d5824 Mon Sep 17 00:00:00 2001 From: TripleWhy Date: Sun, 13 Oct 2024 12:13:52 +0200 Subject: [PATCH 16/16] Reference events more directly where possible --- Runtime/Chips/ChipBuilder.cs | 21 +- .../Chips/ClassChips/EventDefinitionBuild.cs | 324 ++++-------------- Runtime/CircuitDescriptor/CircuitBuilder.cs | 8 +- Runtime/Types/Configuration.cs | 36 +- 4 files changed, 91 insertions(+), 298 deletions(-) diff --git a/Runtime/Chips/ChipBuilder.cs b/Runtime/Chips/ChipBuilder.cs index 29c3821..487db0a 100644 --- a/Runtime/Chips/ChipBuilder.cs +++ b/Runtime/Chips/ChipBuilder.cs @@ -17,12 +17,12 @@ public class ChipBuilder : RRCGGenerated.ChipBuilderGen public static void EventReceiver(string eventName) { - EventReceiver(new EventReceiverData(eventName, Guid.Empty)); + EventReceiver(new EventReceiverData(new EventDefinitionData(eventName, Guid.Empty, null))); } public static void EventReceiver(Guid eventId) { - EventReceiver(new EventReceiverData(null, eventId)); + EventReceiver(new EventReceiverData(new EventDefinitionData(null, eventId, null))); } public static T EventReceiver(string eventName) where T : new() @@ -87,23 +87,20 @@ internal static void EventSender(EventSenderData eventData, params AnyPort[] inp node.ConnectInputPort(inputs[i], node.Port(0, 1 + i)); } - internal static void EventSender(string eventName, EventTarget eventTarget, params AnyPort[] inputs) + internal static void EventSender(EventDefinitionData eventDefinition, EventTarget eventTarget, params AnyPort[] inputs) { - EventSender(new EventSenderData(eventName, Guid.Empty, eventTarget), inputs); + EventSender(new EventSenderData(eventDefinition, eventTarget), inputs); } - internal static void EventSender(Guid eventId, EventTarget eventTarget, params AnyPort[] inputs) + internal static EventDefinitionData EventDefinition(string eventName, Guid eventId, params (StringPort, Type)[] eventDefinition) { - EventSender(new EventSenderData(null, eventId, eventTarget), inputs); - } - - internal static void EventDefinition(string eventName, Guid eventId, params (StringPort, Type)[] eventDefinition) - { - EventDefinition(new EventDefinitionData( + EventDefinitionData data = new( eventName, eventId, eventDefinition.Select(t => (t.Item1.AsData(), t.Item2)).ToArray() - )); + ); + EventDefinition(data); + return data; } #endregion diff --git a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs index a0f1b77..47ed61d 100644 --- a/Runtime/Chips/ClassChips/EventDefinitionBuild.cs +++ b/Runtime/Chips/ClassChips/EventDefinitionBuild.cs @@ -8,37 +8,37 @@ namespace RRCGBuild { public abstract class BaseEvent { - protected string EventName; - protected Guid EventId; - protected (StringPort, Type)[] EventDefinition; + protected EventDefinitionData EventDefinitionData; protected BaseEvent() { } + protected string EventName => EventDefinitionData.EventName; + protected Guid EventId => EventDefinitionData.EventId; + protected IEnumerable EventPortTypes => EventDefinitionData.EventParameters.Select(x => x.Item2); + protected void InitNewEvent(string eventName, params (StringPort, Type)[] eventDefinition) { var sourceName = SanitizeUtils.SantizeCV2Name(SemanticStackUtils.GetNamedAssignmentName("Event")); - var eventNameBase = eventName ?? sourceName; - EventName = Context.current.GetUniqueId($"RRCG_{eventNameBase}"); - EventId = Guid.Empty; - EventDefinition = eventDefinition; - - ChipBuilder.EventDefinition(EventName, EventId, eventDefinition); + EventDefinitionData = ChipBuilder.EventDefinition( + Context.current.GetUniqueId($"RRCG_{eventNameBase}"), + Guid.Empty, + eventDefinition + ); } - protected void InitExistingEvent(string eventName, Guid eventId) + protected void InitExistingEvent(Guid eventId, string eventName) { - EventName = eventName; - EventId = eventId; + EventDefinitionData = new EventDefinitionData(eventName, eventId, null); } - public void SendLocal(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.LOCAL), values); - public void SendOthers(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.OTHERS), values); - public void SendAll(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.ALL), values); - public void SendAuthority(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.AUTHORITY), values); - public void SendRoomAuthority(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.ROOM_AUTHORITY), values); - public void SendPlayer(PlayerPort player, params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventName, EventId, EventTarget.PLAYER), new[] { player }.Concat(values).ToArray()); + public void SendLocal(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventDefinitionData, EventTarget.LOCAL), values); + public void SendOthers(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventDefinitionData, EventTarget.OTHERS), values); + public void SendAll(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventDefinitionData, EventTarget.ALL), values); + public void SendAuthority(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventDefinitionData, EventTarget.AUTHORITY), values); + public void SendRoomAuthority(params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventDefinitionData, EventTarget.ROOM_AUTHORITY), values); + public void SendPlayer(PlayerPort player, params AnyPort[] values) => ChipBuilder.EventSender(new EventSenderData(EventDefinitionData, EventTarget.PLAYER), new[] { player }.Concat(values).ToArray()); } // Access to the generic interface. It is up to the user to make sure the types are correct. @@ -48,15 +48,17 @@ internal class DynamicEventDefinition : BaseEvent public AnyPort[] Receiver() { - ChipBuilder.EventReceiver(new EventReceiverData(EventName, EventId)); + ChipBuilder.EventReceiver(new EventReceiverData(EventDefinitionData)); var node = Context.lastSpawnedNode; var ports = new List(); - for (var i = 0; i < EventDefinition.Length; i++) + + int index = 0; + foreach (Type portType in EventPortTypes) { - var portType = EventDefinition[i].Item2; var port = (AnyPort)Activator.CreateInstance(portType); - port.Port = node.Port(0, 1 + i); + port.Port = node.Port(0, 1 + index); ports.Add(port); + ++index; } return ports.ToArray(); } @@ -67,8 +69,7 @@ public class EventDefinition : BaseEvent public EventDefinition() => InitNewEvent(null); public EventDefinition(string eventName) => InitNewEvent(eventName); - // The bool param is only used to make the signature different from the other constructors - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal() => base.SendLocal(); public void SendOthers() => base.SendOthers(); @@ -77,13 +78,13 @@ public class EventDefinition : BaseEvent public void SendRoomAuthority() => base.SendRoomAuthority(); public void SendPlayer(PlayerPort player) => base.SendPlayer(player); - public void Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(EventName, EventId)); + public void Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(EventDefinitionData)); + public EventDefinition Receiver(AlternativeExec inlineGraph) { CircuitBuilder.InlineGraph(() => { Receiver(); inlineGraph(); }); return this; } - } public class EventDefinition : BaseEvent @@ -97,7 +98,7 @@ public EventDefinition(string eventName, StringPort param0Name) => InitNewEvent( eventName, (param0Name ?? "value0", typeof(T0)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0) => base.SendLocal(value0); public void SendOthers(T0 value0) => base.SendOthers(value0); @@ -106,7 +107,7 @@ public EventDefinition(string eventName, StringPort param0Name) => InitNewEvent( public void SendRoomAuthority(T0 value0) => base.SendRoomAuthority(value0); public void SendPlayer(PlayerPort player, T0 value0) => base.SendPlayer(player, value0); - public T0 Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(EventName, EventId)); + public T0 Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -128,7 +129,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param0Name ?? "value0", typeof(T0)), (param1Name ?? "value1", typeof(T1)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1) => base.SendLocal(value0, value1); public void SendOthers(T0 value0, T1 value1) => base.SendOthers(value0, value1); @@ -137,7 +138,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1) => base.SendRoomAuthority(value0, value1); public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => base.SendPlayer(player, value0, value1); - public (T0, T1) Receiver() => ChipBuilder.EventReceiver<(T0, T1)>(new EventReceiverData(EventName, EventId)); + public (T0, T1) Receiver() => ChipBuilder.EventReceiver<(T0, T1)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -162,7 +163,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param1Name ?? "value1", typeof(T1)), (param2Name ?? "value2", typeof(T2)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2) => base.SendLocal(value0, value1, value2); public void SendOthers(T0 value0, T1 value1, T2 value2) => base.SendOthers(value0, value1, value2); @@ -171,7 +172,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => base.SendRoomAuthority(value0, value1, value2); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => base.SendPlayer(player, value0, value1, value2); - public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -199,7 +200,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param2Name ?? "value2", typeof(T2)), (param3Name ?? "value3", typeof(T3)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3) => base.SendLocal(value0, value1, value2, value3); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3) => base.SendOthers(value0, value1, value2, value3); @@ -208,7 +209,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => base.SendRoomAuthority(value0, value1, value2, value3); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => base.SendPlayer(player, value0, value1, value2, value3); - public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -239,7 +240,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param3Name ?? "value3", typeof(T3)), (param4Name ?? "value4", typeof(T4)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendLocal(value0, value1, value2, value3, value4); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendOthers(value0, value1, value2, value3, value4); @@ -248,7 +249,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendRoomAuthority(value0, value1, value2, value3, value4); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) => base.SendPlayer(player, value0, value1, value2, value3, value4); - public (T0, T1, T2, T3, T4) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -282,7 +283,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param4Name ?? "value4", typeof(T4)), (param5Name ?? "value5", typeof(T5)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendLocal(value0, value1, value2, value3, value4, value5); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendOthers(value0, value1, value2, value3, value4, value5); @@ -291,7 +292,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5); - public (T0, T1, T2, T3, T4, T5) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -328,7 +329,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param5Name ?? "value5", typeof(T5)), (param6Name ?? "value6", typeof(T6)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6); @@ -337,7 +338,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6); - public (T0, T1, T2, T3, T4, T5, T6) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -377,7 +378,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param6Name ?? "value6", typeof(T6)), (param7Name ?? "value7", typeof(T7)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7); @@ -386,7 +387,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7); - public (T0, T1, T2, T3, T4, T5, T6, T7) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6, T7) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -429,7 +430,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param7Name ?? "value7", typeof(T7)), (param8Name ?? "value8", typeof(T8)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8); @@ -438,7 +439,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -484,7 +485,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param8Name ?? "value8", typeof(T8)), (param9Name ?? "value9", typeof(T9)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); @@ -493,7 +494,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -542,7 +543,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param9Name ?? "value9", typeof(T9)), (param10Name ?? "value10", typeof(T10)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); @@ -551,7 +552,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -603,7 +604,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param10Name ?? "value10", typeof(T10)), (param11Name ?? "value11", typeof(T11)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); @@ -612,7 +613,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -667,7 +668,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param11Name ?? "value11", typeof(T11)), (param12Name ?? "value12", typeof(T12)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); @@ -676,7 +677,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -734,7 +735,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param12Name ?? "value12", typeof(T12)), (param13Name ?? "value13", typeof(T13)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); @@ -743,7 +744,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -804,7 +805,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param13Name ?? "value13", typeof(T13)), (param14Name ?? "value14", typeof(T14)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); @@ -813,7 +814,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); @@ -877,7 +878,7 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param (param14Name ?? "value14", typeof(T14)), (param15Name ?? "value15", typeof(T15)) ); - internal EventDefinition(bool _, string existingEvent, Guid existingEventId) => InitExistingEvent(existingEvent, existingEventId); + internal EventDefinition(Guid existingEventId, string existingEvent) => InitExistingEvent(existingEventId, existingEvent); public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendLocal(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendOthers(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); @@ -886,218 +887,11 @@ public EventDefinition(string eventName, StringPort param0Name, StringPort param public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendRoomAuthority(value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15) => base.SendPlayer(player, value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14, value15); - public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>(new EventReceiverData(EventName, EventId)); + public (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>(new EventReceiverData(EventDefinitionData)); public EventDefinition Receiver(AlternativeExec<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> inlineGraph) { CircuitBuilder.InlineGraph(() => inlineGraph(Receiver())); return this; } } - - // - // Old classes - // - - [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] - public class EventHelper - { - private readonly string eventName; - private readonly Guid eventId; - public EventHelper(string eventName, Guid eventId) - { - this.eventName = eventName; - this.eventId = eventId; - } - public EventHelper Definition() - { - ChipBuilder.EventDefinition(eventName, eventId); - return this; - } - - public void Sender() => SendLocal(); - - public void SendLocal() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL)); - public void SendOthers() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS)); - public void SendAll() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL)); - public void SendAuthority() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY)); - public void SendRoomAuthority() => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY)); - public void SendPlayer(PlayerPort player) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player); - - public void Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(eventName, eventId)); - } - - [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] - public class EventHelper where T0 : AnyPort, new() - { - private readonly string eventName; - private readonly Guid eventId; - private StringPort value0; - public EventHelper(string eventName, Guid eventId, StringPort value0 = null) - { - this.eventName = eventName; - this.eventId = eventId; - this.value0 = value0 ?? "value0"; - } - - public EventHelper Definition() - { - ChipBuilder.EventDefinition(eventName, eventId, (value0, typeof(T0))); - return this; - } - public void Sender(T0 value0) => SendLocal(value0); - - public void SendLocal(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL), value0); - public void SendOthers(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS), value0); - public void SendAll(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL), value0); - public void SendAuthority(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY), value0); - public void SendRoomAuthority(T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY), value0); - public void SendPlayer(PlayerPort player, T0 value0) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player, value0); - - public T0 Receiver() => ChipBuilder.EventReceiver(new EventReceiverData(eventName, eventId)); - } - - [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] - public class EventHelper - where T0 : AnyPort, new() - where T1 : AnyPort, new() - { - private readonly string eventName; - private readonly Guid eventId; - private StringPort value0; - private StringPort value1; - public EventHelper( - string eventName, - Guid eventId, - StringPort value0 = null, - StringPort value1 = null - ) - { - this.eventName = eventName; - this.eventId = eventId; - this.value0 = value0 ?? "value0"; - this.value1 = value1 ?? "value1"; - } - public EventHelper Definition() - { - ChipBuilder.EventDefinition( - eventName, - eventId, - (value0, typeof(T0)), - (value1, typeof(T1)) - ); - return this; - } - public void Sender(T0 value0, T1 value1) => SendLocal(value0, value1); - - public void SendLocal(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL), value0, value1); - public void SendOthers(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS), value0, value1); - public void SendAll(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL), value0, value1); - public void SendAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY), value0, value1); - public void SendRoomAuthority(T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY), value0, value1); - public void SendPlayer(PlayerPort player, T0 value0, T1 value1) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player, value0, value1); - - public (T0, T1) Receiver() => ChipBuilder.EventReceiver<(T0, T1)>(new EventReceiverData(eventName, eventId)); - } - - [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] - public class EventHelper - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - { - private readonly string eventName; - private readonly Guid eventId; - private StringPort value0; - private StringPort value1; - private StringPort value2; - public EventHelper( - string eventName, - Guid eventId, - StringPort value0 = null, - StringPort value1 = null, - StringPort value2 = null - ) - { - this.eventName = eventName; - this.eventId = eventId; - this.value0 = value0 ?? "value0"; - this.value1 = value1 ?? "value1"; - this.value2 = value2 ?? "value2"; - } - public EventHelper Definition() - { - ChipBuilder.EventDefinition( - eventName, - eventId, - (value0, typeof(T0)), - (value1, typeof(T1)), - (value2, typeof(T2)) - ); - return this; - } - public void Sender(T0 value0, T1 value1, T2 value2) => SendLocal(value0, value1, value2); - - public void SendLocal(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL), value0, value1, value2); - public void SendOthers(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS), value0, value1, value2); - public void SendAll(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL), value0, value1, value2); - public void SendAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY), value0, value1, value2); - public void SendRoomAuthority(T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY), value0, value1, value2); - public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player, value0, value1, value2); - - public (T0, T1, T2) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2)>(new EventReceiverData(eventName, eventId)); - } - - [Obsolete("Use new EventDefinition() or ExistingEvent() instead")] - public class EventHelper - where T0 : AnyPort, new() - where T1 : AnyPort, new() - where T2 : AnyPort, new() - where T3 : AnyPort, new() - { - private readonly string eventName; - private readonly Guid eventId; - private StringPort value0; - private StringPort value1; - private StringPort value2; - private StringPort value3; - public EventHelper( - string eventName, - Guid eventId, - StringPort value0 = null, - StringPort value1 = null, - StringPort value2 = null, - StringPort value3 = null - ) - { - this.eventName = eventName; - this.eventId = eventId; - this.value0 = value0 ?? "value0"; - this.value1 = value1 ?? "value1"; - this.value2 = value2 ?? "value2"; - this.value3 = value3 ?? "value3"; - } - public EventHelper Definition() - { - ChipBuilder.EventDefinition( - eventName, - eventId, - (value0, typeof(T0)), - (value1, typeof(T1)), - (value2, typeof(T2)), - (value3, typeof(T3)) - ); - return this; - } - public void Sender(T0 value0, T1 value1, T2 value2, T3 value3) => SendLocal(value0, value1, value2, value3); - - public void SendLocal(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.LOCAL), value0, value1, value2, value3); - public void SendOthers(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.OTHERS), value0, value1, value2, value3); - public void SendAll(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ALL), value0, value1, value2, value3); - public void SendAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.AUTHORITY), value0, value1, value2, value3); - public void SendRoomAuthority(T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.ROOM_AUTHORITY), value0, value1, value2, value3); - public void SendPlayer(PlayerPort player, T0 value0, T1 value1, T2 value2, T3 value3) => ChipBuilder.EventSender(new EventSenderData(eventName, eventId, EventTarget.PLAYER), player, value0, value1, value2, value3); - - public (T0, T1, T2, T3) Receiver() => ChipBuilder.EventReceiver<(T0, T1, T2, T3)>(new EventReceiverData(eventName, eventId)); - } - } diff --git a/Runtime/CircuitDescriptor/CircuitBuilder.cs b/Runtime/CircuitDescriptor/CircuitBuilder.cs index 4f5085c..1c726a8 100644 --- a/Runtime/CircuitDescriptor/CircuitBuilder.cs +++ b/Runtime/CircuitDescriptor/CircuitBuilder.cs @@ -312,7 +312,7 @@ public static void StudioEventReceiver(string eventName, Guid eventId = default) /// public static EventDefinition ExistingEvent(string eventName, Guid eventId) { - return new EventDefinition(true, eventName, eventId); + return new EventDefinition(eventId, eventName); } /// @@ -322,7 +322,7 @@ public static EventDefinition ExistingEvent(string eventName, Guid eventId) public static EventDefinition ExistingEvent(string eventName, Guid eventId) where T0 : AnyPort, new() { - return new EventDefinition(true, eventName, eventId); + return new EventDefinition(eventId, eventName); } /// @@ -333,7 +333,7 @@ public static EventDefinition ExistingEvent(string eventName, Gu where T0 : AnyPort, new() where T1 : AnyPort, new() { - return new EventDefinition(true, eventName, eventId); + return new EventDefinition(eventId, eventName); } /// @@ -345,7 +345,7 @@ public static EventDefinition ExistingEvent(string event where T1 : AnyPort, new() where T2 : AnyPort, new() { - return new EventDefinition(true, eventName, eventId); + return new EventDefinition(eventId, eventName); } /// diff --git a/Runtime/Types/Configuration.cs b/Runtime/Types/Configuration.cs index 90f307b..1eca45f 100644 --- a/Runtime/Types/Configuration.cs +++ b/Runtime/Types/Configuration.cs @@ -96,36 +96,38 @@ public record RoomKeyData(Guid Id); public record RoomCurrencyData(Guid Id); public record RoomConsumableData(Guid Id); - public record EventData + public record EventDefinitionData { - public string EventName { get; init; } + public string EventName { get; set; } // set is only used by the obfuscator public Guid EventId { get; set; } - public EventData(string eventName, Guid eventId) + public (string, Type)[] EventParameters { get; init; } + + public EventDefinitionData(string name, Guid id, (string, Type)[] parameters) { - if (string.IsNullOrWhiteSpace(eventName) && (eventId == Guid.Empty)) + if (string.IsNullOrWhiteSpace(name) && (id == Guid.Empty)) throw new ArgumentException("Event name and ID cannot be empty at the same time."); - EventName = eventName; - EventId = eventId; + EventName = name; + EventId = id; + EventParameters = parameters; } } - public record EventDefinitionData( - string EventName, - Guid EventId, - (string, Type)[] EventDefinition - ) : EventData(EventName, EventId); + public record EventData(EventDefinitionData EventDefinition) + { + public string EventName => EventDefinition.EventName; + public Guid EventId => EventDefinition.EventId; + public (string, Type)[] EventParameters => EventDefinition.EventParameters; + } public record EventReceiverData( - string EventName, - Guid EventId - ) : EventData(EventName, EventId); + EventDefinitionData EventDefinition + ) : EventData(EventDefinition); public record EventSenderData( - string EventName, - Guid EventId, + EventDefinitionData EventDefinition, EventTarget EventTarget - ) : EventData(EventName, EventId); + ) : EventData(EventDefinition); public record RaycastData( bool IgnorePlayers = false,