From 7cfc5cd04f7c7be3cb1a13ad044bdd0016379885 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Wed, 21 Apr 2021 01:49:07 +0100 Subject: [PATCH] Drag and Drop + Zoooooooom Refactored inventory drag & drop to use new global drag & drop management Enabled Drag & Drop from inventory panel to action bar Enabled gear and consumable item binding Fixed stat modifier behavior to allow it to be toggled Fixed Switch behavior to make it bindable Added lambda multiplier to aether drive so that stat mod can target it --- Aetheria.Shared.Unity.csproj | 2 +- .../Fancy/Weapon Groups.prefab | 2 +- Assets/Scenes/ARPG.unity | 12 + Assets/Scripts/Gameplay/ActionBarSlot.cs | 13 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 72 +++-- Assets/Scripts/Gameplay/GameSettings.cs | 1 + .../ServerShared/Behaviors/AetherDrive.cs | 15 +- .../ServerShared/Behaviors/StatModifier.cs | 33 ++- .../Scripts/ServerShared/Behaviors/Switch.cs | 12 +- .../Serialization/TypeFormatterResolver.cs | 5 +- Assets/Scripts/ServerShared/Entity.cs | 13 +- Assets/Scripts/ServerShared/ItemData.cs | 2 +- Assets/Scripts/ServerShared/Ship.cs | 2 +- Assets/Scripts/UI/InventoryMenu.cs | 207 -------------- Assets/Scripts/UI/InventoryPanel.cs | 257 +++++++++++++++--- Assets/Scripts/UI/PropertiesPanel.cs | 2 +- .../UI/SchematicTriggerGroupElement.cs | 10 - .../UI/SchematicTriggerGroupElement.cs.meta | 3 - GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- RethinkDB.csproj | 4 +- 21 files changed, 352 insertions(+), 323 deletions(-) delete mode 100644 Assets/Scripts/UI/SchematicTriggerGroupElement.cs delete mode 100644 Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index 74e3a3fee..985828c98 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -109,8 +109,8 @@ - + diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab index 4c7acce17..77e704a12 100644 --- a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab @@ -65,7 +65,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Stat Name + m_text: Weapon Groups m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index e3e1f83a0..9d198c947 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -5592,6 +5592,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Dialog: {fileID: 0} + DragParent: {fileID: 0} Flip: 1 Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} GameManager: {fileID: 1009503729} @@ -9907,6 +9908,11 @@ PrefabInstance: value: objectReference: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} + - target: {fileID: 2279630453886260054, guid: aac073da6df367d499834c926930dd84, + type: 3} + propertyPath: DragParent + value: + objectReference: {fileID: 245842385} - target: {fileID: 2279630453886260054, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: ContextMenu @@ -31053,6 +31059,11 @@ PrefabInstance: value: objectReference: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} + - target: {fileID: 2279630453886260054, guid: aac073da6df367d499834c926930dd84, + type: 3} + propertyPath: DragParent + value: + objectReference: {fileID: 245842385} - target: {fileID: 2279630453886260054, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: ContextMenu @@ -36242,6 +36253,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Dialog: {fileID: 0} + DragParent: {fileID: 0} Flip: 0 Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} GameManager: {fileID: 1009503729} diff --git a/Assets/Scripts/Gameplay/ActionBarSlot.cs b/Assets/Scripts/Gameplay/ActionBarSlot.cs index b871a0554..16c08517a 100644 --- a/Assets/Scripts/Gameplay/ActionBarSlot.cs +++ b/Assets/Scripts/Gameplay/ActionBarSlot.cs @@ -147,15 +147,16 @@ public class ActionBarGearBinding : ActionBarBinding public ActionBarGearBinding(Entity entity, ActionBarSlot slot, EquippedItem item, IActivatedBehavior behavior) : base(entity, slot) { Item = item; + var data = item.EquippableItem.Data.Value as EquippableItemData; Behavior = behavior; Slot.QuantityRemaining.gameObject.SetActive(false); - if(!string.IsNullOrEmpty(Item.Data.ActionBarIcon)) - { - Slot.Label.gameObject.SetActive(false); - Slot.Icon.gameObject.SetActive(true); + Slot.Icon.gameObject.SetActive(true); + Slot.Label.gameObject.SetActive(false); + if (!string.IsNullOrEmpty(Item.Data.ActionBarIcon)) Slot.Icon.texture = Resources.Load(Item.Data.ActionBarIcon.Substring("Assets/Resources/".Length).Split('.').First()); - } - else Slot.Icon.gameObject.SetActive(false); + else if (data is WeaponItemData weaponItemData) + Slot.Icon.texture = ActionGameManager.Instance.Settings.GetIcon(weaponItemData.WeaponType).texture; + else Slot.Icon.texture = ActionGameManager.Instance.Settings.GetIcon(data.HardpointType).texture; } public override void Activate() diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 26437e6dc..771f2c677 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -166,8 +166,8 @@ public class ActionGameManager : MonoBehaviour (float2(0, -1), "Rear") }; - private DragAction _dragAction; - private Action _endDragCallback; + public DragObject DragObject { get; private set; } + private Func _endDragCallback; private List _stories = new List(); @@ -242,7 +242,7 @@ public class ActionGameManager : MonoBehaviour Input.Global.Dock.performed += context => { - if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; + if (EventSystem.current.currentSelectedGameObject != null && EventSystem.current.currentSelectedGameObject.GetComponent() != null) return; if (MainMenu.gameObject.activeSelf) return; if (CurrentEntity == null) { @@ -356,13 +356,18 @@ public class ActionGameManager : MonoBehaviour //Debug.Log("Registering binding!"); switch (dragAction) { - case EquippedItemDragAction equippedItemDragAction: - break; - case ItemInstanceDragAction itemInstanceDragAction: - break; - case WeaponGroupDragAction weaponGroupDragAction: + case EquippedItemDragObject equippedItemDragAction: + var trigger = equippedItemDragAction.EquippedItem.GetBehavior(); + if (trigger == null) return false; + slot.Binding = new ActionBarGearBinding(CurrentEntity, slot, equippedItemDragAction.EquippedItem, trigger); + return true; + case ItemInstanceDragObject itemInstanceDragAction: + if (!(itemInstanceDragAction.Item.Data.Value is ConsumableItemData consumable)) return false; + slot.Binding = new ActionBarConsumableBinding(CurrentEntity, slot, consumable); + return true; + case WeaponGroupDragObject weaponGroupDragAction: slot.Binding = new ActionBarWeaponGroupBinding(CurrentEntity, slot, weaponGroupDragAction.Group); - break; + return true; default: throw new ArgumentOutOfRangeException(nameof(dragAction)); } @@ -511,12 +516,12 @@ public class ActionGameManager : MonoBehaviour }); } - public void BeginDrag(DragAction dragAction) + public void BeginDrag(DragObject dragObject) { - _dragAction = dragAction; + this.DragObject = dragObject; } - public void RegisterDragTarget(Action onEndDrag) + public void RegisterDragTarget(Func onEndDrag) { _endDragCallback = onEndDrag; } @@ -526,10 +531,11 @@ public class ActionGameManager : MonoBehaviour _endDragCallback = null; } - public void EndDrag() + public bool EndDrag() { - _endDragCallback?.Invoke(_dragAction); - _dragAction = null; + var success = _endDragCallback?.Invoke(DragObject); + DragObject = null; + return success ?? false; } public void EnablePlayerInput() @@ -606,7 +612,7 @@ public class ActionGameManager : MonoBehaviour private void ToggleMainMenu() { - if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; + if (EventSystem.current.currentSelectedGameObject != null && EventSystem.current.currentSelectedGameObject.GetComponent() != null) return; if (CurrentEntity == null) return; if (MainMenu.gameObject.activeSelf) { @@ -645,7 +651,7 @@ public class ActionGameManager : MonoBehaviour private void ToggleMenuTab(MenuTab tab) { - if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; + if (EventSystem.current.currentSelectedGameObject != null && EventSystem.current.currentSelectedGameObject.GetComponent() != null) return; if (MainMenu.gameObject.activeSelf) return; if (Menu.gameObject.activeSelf && Menu.CurrentTab == tab) { @@ -1082,11 +1088,11 @@ public class ActionGameManager : MonoBehaviour } } -public abstract class DragAction{} +public abstract class DragObject{} -public class WeaponGroupDragAction : DragAction +public class WeaponGroupDragObject : DragObject { - public WeaponGroupDragAction(int group) + public WeaponGroupDragObject(int group) { Group = group; } @@ -1094,22 +1100,36 @@ public class WeaponGroupDragAction : DragAction public int Group { get; } } -public class ItemInstanceDragAction : DragAction +public abstract class ItemDragObject : DragObject { - public ItemInstanceDragAction(ItemInstance item) + protected ItemDragObject(int2 originCellOffset, ItemInstance item) { + OriginCellOffset = originCellOffset; Item = item; } public ItemInstance Item { get; } + public int2 OriginCellOffset { get; } } -public class EquippedItemDragAction : DragAction +public class ItemInstanceDragObject : ItemDragObject { - public EquippedItemDragAction(EquippedItem item) + public ItemInstanceDragObject(ItemInstance item, EquippedCargoBay originInventory, int2 originCellOffset) : base(originCellOffset, item) { - Item = item; + OriginInventory = originInventory; } - public EquippedItem Item { get; } + public EquippedCargoBay OriginInventory { get; } +} + +public class EquippedItemDragObject : ItemDragObject +{ + public EquippedItemDragObject(EquippedItem item, Entity originEntity, int2 originCellOffset) : base(originCellOffset, item.EquippableItem) + { + EquippedItem = item; + OriginEntity = originEntity; + } + + public EquippedItem EquippedItem { get; } + public Entity OriginEntity { get; } } \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/GameSettings.cs b/Assets/Scripts/Gameplay/GameSettings.cs index a655de366..7b2520200 100644 --- a/Assets/Scripts/Gameplay/GameSettings.cs +++ b/Assets/Scripts/Gameplay/GameSettings.cs @@ -43,6 +43,7 @@ public class GameSettings : ScriptableObject [HideInInspector] public Sprite[] WeaponFireTypeIcons; [HideInInspector] public Sprite[] WeaponModifierIcons; + public Sprite GetIcon(HardpointType type) => ItemIcons[(int) type]; public Sprite GetIcon(WeaponType type) => WeaponTypeIcons[(int) type]; public Sprite GetIcon(WeaponRange range) => WeaponRangeIcons[(int) range]; public Sprite GetIcon(WeaponCaliber caliber) => WeaponCaliberIcons[(int) caliber]; diff --git a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs index 834d7e37b..92e2ed5ec 100644 --- a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs +++ b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs @@ -22,19 +22,22 @@ public class AetherDriveData : BehaviorData [Inspectable, JsonProperty("couplingLambdas"), Key(4)] public float3 CouplingLambda; - [Inspectable, JsonProperty("couplingEfficiency"), Key(5), RuntimeInspectable] + [Inspectable, JsonProperty("lambdaMultiplier"), Key(5)] + public PerformanceStat LambdaMultiplier; + + [Inspectable, JsonProperty("couplingEfficiency"), Key(6), RuntimeInspectable] public PerformanceStat CouplingEfficiency; - [Inspectable, JsonProperty("torque"), Key(6), RuntimeInspectable] + [Inspectable, JsonProperty("torque"), Key(7), RuntimeInspectable] public PerformanceStat Torque; - [Inspectable, JsonProperty("torqueProfile"), Key(7), RuntimeInspectable] + [Inspectable, JsonProperty("torqueProfile"), Key(8), RuntimeInspectable] public BezierCurve TorqueProfile; - [Inspectable, JsonProperty("draw"), Key(8), RuntimeInspectable] + [Inspectable, JsonProperty("draw"), Key(9), RuntimeInspectable] public PerformanceStat EnergyDraw; - [Inspectable, JsonProperty("passiveCoupling"), Key(9), RuntimeInspectable] + [Inspectable, JsonProperty("passiveCoupling"), Key(10), RuntimeInspectable] public PerformanceStat PassiveCoupling; public override Behavior CreateInstance(EquippedItem item) @@ -88,7 +91,7 @@ public class AetherDrive : Behavior Thrust = (Rpm - AetheriaMath.Decay(Rpm, _data.CouplingLambda, dt)) * _data.RotorMass * efficiency; - var couplingLambda = _data.CouplingLambda * max(abs(_axis), Evaluate(_data.PassiveCoupling)); + var couplingLambda = _data.CouplingLambda * Item.Evaluate(_data.LambdaMultiplier) * max(abs(_axis), Evaluate(_data.PassiveCoupling)); var previousRpm = Rpm; Rpm = AetheriaMath.Decay(Rpm, couplingLambda, dt); var rpmLoss = previousRpm - Rpm; diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs index 353de0850..6d29d5472 100644 --- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs +++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs @@ -34,7 +34,7 @@ public class StatModifierData : BehaviorData } [Order(-4)] -public class StatModifier : Behavior, IInitializableBehavior, IDisposable +public class StatModifier : Behavior, IInitializableBehavior, IDisposable, IAlwaysUpdatedBehavior { private StatModifierData _data; @@ -42,6 +42,9 @@ public class StatModifier : Behavior, IInitializableBehavior, IDisposable private static Type[] _statObjects; + private bool _applied; + private bool _executed; + private static Type[] StatObjects => _statObjects = _statObjects ?? typeof(BehaviorData).GetAllChildClasses() .Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray(); @@ -83,19 +86,41 @@ public class StatModifier : Behavior, IInitializableBehavior, IDisposable } } - public override bool Execute(float dt) + private void ApplyModifier() { + _applied = true; foreach (var stat in _stats) (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity))[this] = Evaluate(_data.Modifier); + } + + private void RemoveModifier() + { + _applied = false; + foreach (var stat in _stats) + (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity)).Remove(this); + } + + public override bool Execute(float dt) + { + _executed = true; return true; } public void Dispose() { - foreach (var stat in _stats) - (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity)).Remove(this); + if(_applied) + RemoveModifier(); + } + + public void Update(float delta) + { + if(_executed && !_applied) + ApplyModifier(); + if(!_executed && _applied) + RemoveModifier(); + _executed = false; } } diff --git a/Assets/Scripts/ServerShared/Behaviors/Switch.cs b/Assets/Scripts/ServerShared/Behaviors/Switch.cs index d76ce8a9c..4795a2b2e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Switch.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Switch.cs @@ -20,7 +20,7 @@ public class SwitchData : BehaviorData } } -public class Switch : Behavior +public class Switch : Behavior, IActivatedBehavior { private SwitchData _data; @@ -39,4 +39,14 @@ public class Switch : Behavior { return Activated; } + + public void Activate() + { + Activated = true; + } + + public void Deactivate() + { + Activated = false; + } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs index 55edebfb8..2f8860f64 100644 --- a/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs +++ b/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs @@ -14,17 +14,18 @@ public class TypeFormatter : MessagePack.Formatters.IMessagePackFormatter public void Serialize(ref MessagePackWriter writer, Type value, MessagePackSerializerOptions options) { - writer.Write(value.AssemblyQualifiedName); + writer.Write(value == null ? "" : value.AssemblyQualifiedName); } public Type Deserialize(ref MessagePackReader reader, MessagePackSerializerOptions options) { if (reader.IsNil) { - throw new InvalidOperationException("typecode is null, struct not supported"); + return null; //throw new InvalidOperationException("typecode is null, struct not supported"); } var assemblyQualifiedName = reader.ReadString(); + if (string.IsNullOrEmpty(assemblyQualifiedName)) return null; return Type.GetType(assemblyQualifiedName); } diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index 0777aceea..d1f44d509 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -992,7 +992,7 @@ public class ConsumableItemEffect Data = (ConsumableItemData) item.Data.Value; RemainingDuration = Data.Duration; - Behaviors = Data.StatModifiers + Behaviors = Data.Behaviors .Select(bd => bd.CreateInstance(this)) .ToArray(); } @@ -1117,7 +1117,8 @@ public class EquippedItem var quality = pow(EquippableItem.Quality, stat.QualityExponent); var scaleModifier = 1.0f; - foreach (var value in stat.GetScaleModifiers(Entity).Values) scaleModifier = scaleModifier * value; + var scaleModifiers = stat.GetScaleModifiers(Entity).Values; + foreach (var value in scaleModifiers) scaleModifier *= value; float constantModifier = 0; foreach (var value in stat.GetConstantModifiers(Entity).Values) constantModifier += value; @@ -1150,9 +1151,6 @@ public class EquippedItem public void Update(float delta) { - foreach (var behavior in Behaviors) - if(behavior is IAlwaysUpdatedBehavior alwaysUpdatedBehavior) alwaysUpdatedBehavior.Update(delta); - if (Active.Value) { foreach (var group in BehaviorGroups.Values) @@ -1164,9 +1162,12 @@ public class EquippedItem } } } + + foreach (var behavior in Behaviors) + if(behavior is IAlwaysUpdatedBehavior alwaysUpdatedBehavior) alwaysUpdatedBehavior.Update(delta); } - public T GetBehavior() where T : Behavior + public T GetBehavior() where T : class { foreach (var behavior in Behaviors) if (behavior is T b) diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index f2cffbd28..102a5d0ef 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -302,7 +302,7 @@ public class CompoundCommodityData : CraftedItemData public class ConsumableItemData : CraftedItemData { [Inspectable, JsonProperty("behaviors"), Key(10)] - public List StatModifiers = new List(); + public List Behaviors = new List(); [Inspectable, JsonProperty("stackable"), Key(11)] public bool Stackable; diff --git a/Assets/Scripts/ServerShared/Ship.cs b/Assets/Scripts/ServerShared/Ship.cs index 6dd7f00a1..f125fb887 100644 --- a/Assets/Scripts/ServerShared/Ship.cs +++ b/Assets/Scripts/ServerShared/Ship.cs @@ -281,7 +281,7 @@ public class Ship : Entity deltaRot = 0; Direction = lerp(Direction, look, min(delta, 1)); } - deltaRot = pow(abs(deltaRot), .75f) * sign(deltaRot); + deltaRot = pow(abs(deltaRot), .5f) * sign(deltaRot); foreach (var thruster in _clockwiseThrusters) thruster.Axis += deltaRot; foreach (var thruster in _counterClockwiseThrusters) thruster.Axis += -deltaRot; diff --git a/Assets/Scripts/UI/InventoryMenu.cs b/Assets/Scripts/UI/InventoryMenu.cs index 2a6c76cf5..659cfcc34 100644 --- a/Assets/Scripts/UI/InventoryMenu.cs +++ b/Assets/Scripts/UI/InventoryMenu.cs @@ -79,213 +79,6 @@ public class InventoryMenu : MonoBehaviour PropertiesPanel.GameManager = GameManager; foreach (var panel in InventoryPanels) { - panel.OnBeginDragAsObservable().Subscribe(data => - { - //Debug.Log($"Begin drag on panel {panel.name}"); - if (data is InventoryCargoEventData cargoEvent) - { - var item = cargoEvent.CargoBay.Occupancy[cargoEvent.Position.x, cargoEvent.Position.y]; - if (item != null) - { - var itemData = item.Data.Value; - - var itemPosition = cargoEvent.CargoBay.Cargo[item]; - _originalOccupancy = cargoEvent.CargoBay.Data.InteriorShape.Inset(itemData.Shape, itemPosition, item.Rotation); - _originalRotation = item.Rotation; - _originalPanel = panel; - _dragItem = item; - _dragCellOffset = itemPosition - cargoEvent.Position; - _dragCells = _originalOccupancy.Coordinates - .Select(v => Instantiate(panel.CellInstances[v], DragParent, true).transform).ToArray(); - foreach(var cell in _dragCells) - { - foreach (var component in cell.GetComponentsInChildren()) - component.enabled = false; - cell.GetComponentInChildren().raycastTarget = false; - } - _dragOffsets = _dragCells.Select(x => (Vector2) x.position - data.PointerEventData.position).ToArray(); - panel.IgnoreOccupancy = _originalOccupancy; - panel.RefreshCells(_originalOccupancy.Expand().Coordinates); - AkSoundEngine.PostEvent("Pickup", gameObject); - } - } - else if (data is InventoryEntityEventData entityEvent) - { - if(!entityEvent.Entity.Active) - { - var item = entityEvent.Entity.GearOccupancy[entityEvent.Position.x, entityEvent.Position.y]; - if (item != null) - { - var itemData = GameManager.ItemManager.GetData(item.EquippableItem); - var hullData = GameManager.ItemManager.GetData(entityEvent.Entity.Hull); - - _originalRotation = item.EquippableItem.Rotation; - _originalEquippedItem = entityEvent.Entity.GearOccupancy[data.Position.x, data.Position.y]; - _originalOccupancy = hullData.Shape.Inset(itemData.Shape, item.Position, item.EquippableItem.Rotation); - _originalPanel = panel; - _dragItem = item.EquippableItem; - _dragCellOffset = item.Position - entityEvent.Position; - _dragCells = _originalOccupancy.Coordinates - .Select(v => Instantiate(panel.CellInstances[v], DragParent, true).transform).ToArray(); - foreach (var cell in _dragCells) - { - foreach (var component in cell.GetComponentsInChildren()) - component.enabled = false; - cell.GetComponentInChildren().raycastTarget = false; - } - - _dragOffsets = _dragCells.Select(x => (Vector2) x.position - data.PointerEventData.position).ToArray(); - panel.IgnoreOccupancy = _originalOccupancy; - panel.RefreshCells(_originalOccupancy.Expand().Coordinates); - AkSoundEngine.PostEvent("Pickup", gameObject); - } - } - } - }); - - - panel.OnDragAsObservable().Subscribe(data => - { - if (_dragItem == null) return; - for (var i = 0; i < _dragCells.Length; i++) - _dragCells[i].position = new Vector3( - data.PointerEventData.position.x + _dragOffsets[i].x, - data.PointerEventData.position.y + _dragOffsets[i].y, - _dragCells[i].position.z); - }); - - - panel.OnEndDragAsObservable().Subscribe(data => - { - if (_dragItem == null) return; - if (_dragTargetValid) - { - if (data is InventoryCargoEventData cargoEvent) - { - cargoEvent.CargoBay.Remove(_dragItem); - _dragTargetPanel.DropItem(_dragItem, _dragTargetPosition); - if(_dragTargetPanel.Target == InventoryPanelTarget.Cargo) - AkSoundEngine.PostEvent("Drop", gameObject); - else - AkSoundEngine.PostEvent("Equip", gameObject); - } - else if (data is InventoryEntityEventData entityEvent) - { - if (entityEvent.Entity.TryUnequip(_originalEquippedItem) != null) - { - _dragTargetPanel.DropItem(_dragItem, _dragTargetPosition); - AkSoundEngine.PostEvent("Unequip", gameObject); - } - else - { - AkSoundEngine.PostEvent("UI_Fail", gameObject); - Dialog.Clear(); - Dialog.Title.text = "Unable to move item!"; - Dialog.AddProperty("Verify that cargo bays are empty before un-equipping them."); - Dialog.Show(); - Dialog.MoveToCursor(); - } - } - - _dragTargetPanel.FakeOccupancy = null; - } - else - { - _dragItem.Rotation = _originalRotation; - } - - if (_destroyItem) - { - if (data is InventoryCargoEventData cargoEvent) - { - cargoEvent.CargoBay.Remove(_dragItem); - } - else if (data is InventoryEntityEventData entityEvent) - { - if (entityEvent.Entity.TryUnequip(_originalEquippedItem) == null) - { - Dialog.Clear(); - Dialog.Title.text = "Unable to destroy item!"; - Dialog.AddProperty("Verify that cargo bays are empty before un-equipping them."); - Dialog.Show(); - Dialog.MoveToCursor(); - } - } - } - - panel.IgnoreOccupancy = null; - panel.RefreshCells(); - if(_dragTargetPanel!=panel && _dragTargetPanel != null) - _dragTargetPanel.RefreshCells(); - - _dragItem = null; - foreach (var cell in _dragCells) Destroy(cell.gameObject); - }); - - Action floatCells = () => - { - foreach (var cell in _dragCells) cell.gameObject.SetActive(true); - _dragTargetValid = false; - }; - - panel.OnPointerEnterAsObservable().Subscribe(data => - { - if (_dragItem == null) return; - - // Debug.Log($"Pointer entered {data.Position}"); - // if(panel != _originalPanel) - // _originalPanel.RefreshCells(); - - _dragTargetPanel = panel; - _lastDragPosition = data.Position; - _dragTargetPosition = data.Position + _dragCellOffset; - if (data is InventoryCargoEventData cargoEvent) - { - if (cargoEvent.CargoBay.ItemFits(_dragItem, _dragTargetPosition)) - { - foreach (var cell in _dragCells) cell.gameObject.SetActive(false); - var itemData = _dragItem.Data.Value; - panel.FakeItem = _dragItem; - panel.FakeOccupancy = cargoEvent.CargoBay.Data.InteriorShape.Inset(itemData.Shape, _dragTargetPosition, _dragItem.Rotation); - _dragTargetValid = true; - panel.RefreshCells(); - } - } - else if (data is InventoryEntityEventData entityEvent) - { - var eqItem = _dragItem as EquippableItem; - var hullData = GameManager.ItemManager.GetData(entityEvent.Entity.Hull); - if (eqItem != null && entityEvent.Entity.ItemFits(eqItem, _dragTargetPosition)) - { - foreach (var cell in _dragCells) cell.gameObject.SetActive(false); - var itemData = _dragItem.Data.Value; - panel.FakeEquipment = _originalEquippedItem; - panel.FakeOccupancy = hullData.Shape.Inset(itemData.Shape, _dragTargetPosition, _dragItem.Rotation); - _dragTargetValid = true; - panel.RefreshCells(); - } - } - }); - - panel.OnPointerExitAsObservable().Subscribe(data => - { - if (_dragItem == null) return; - - if (data.Position.Equals(_lastDragPosition) || !_dragTargetValid) - { - panel.FakeItem = null; - panel.FakeOccupancy = null; - panel.RefreshCells(); - // if (_originalPanel != panel) - // { - // _originalPanel.FakeItem = null; - // _originalPanel.FakeOccupancy = null; - // _originalPanel.RefreshCells(); - // } - floatCells(); - } - }); - panel.OnClickAsObservable().Subscribe(e => { if (e.data is InventoryCargoEventData cargoEvent) diff --git a/Assets/Scripts/UI/InventoryPanel.cs b/Assets/Scripts/UI/InventoryPanel.cs index 2ac8f62bc..2482fff24 100644 --- a/Assets/Scripts/UI/InventoryPanel.cs +++ b/Assets/Scripts/UI/InventoryPanel.cs @@ -21,6 +21,7 @@ using int2 = Unity.Mathematics.int2; public class InventoryPanel : MonoBehaviour, IPointerClickHandler { public ConfirmationDialog Dialog; + public RectTransform DragParent; public bool Flip; public GameSettings Settings; public ActionGameManager GameManager; @@ -52,19 +53,18 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler public float DoubleClickTime = .5f; public float HitDamageThreshold = 1; - Subject _onBeginDrag; - Subject _onDrag; - Subject _onEndDrag; + // Subject _onBeginDrag; + // Subject _onDrag; + // Subject _onEndDrag; Subject<(InventoryEventData data, int clickCount)> _onClick; - Subject _onPointerEnter; - Subject _onPointerExit; + // Subject _onPointerEnter; + // Subject _onPointerExit; private Entity _displayedEntity; private EquippedCargoBay _displayedCargo; private Texture2D _temperatureTexture; private RectTransform _firstRect; - public EquippedItem FakeEquipment; public ItemInstance FakeItem; public Shape FakeOccupancy; public Shape IgnoreOccupancy; @@ -268,6 +268,10 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler public void Display(Entity entity, bool hud = false, bool thermal = false) { Clear(); + + _subscriptions.Add(entity.Equipment.ObserveAdd().Subscribe(_ => RefreshCells())); + _subscriptions.Add(entity.Equipment.ObserveRemove().Subscribe(_ => RefreshCells())); + _thermal = thermal; _hud = hud; @@ -352,15 +356,105 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler _onClick?.OnNext((new InventoryEntityEventData(data, v, entity), _clickCount)); }); cell.BeginDragTrigger.OnBeginDragAsObservable() - .Subscribe(data => _onBeginDrag?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + //Debug.Log("Entity Drag Start"); + var item = entity.GearOccupancy[v.x, v.y]; + if (item != null) + { + var originalOccupancy = hullData.Shape.Inset(item.Data.Shape, item.Position, item.EquippableItem.Rotation); + _dragCells = originalOccupancy.Coordinates + .Select(v1 => Instantiate(CellInstances[v1], DragParent, true).transform).ToArray(); + foreach(var dragCell in _dragCells) + { + DestroyImmediate(dragCell.GetComponent()); + foreach (var component in dragCell.GetComponentsInChildren()) + component.enabled = false; + foreach (var img in dragCell.GetComponentsInChildren()) + img.color = new Color(img.color.r, img.color.g, img.color.b, img.color.a * .5f); + dragCell.GetComponentInChildren().raycastTarget = false; + } + _dragOffsets = _dragCells.Select(x => (Vector2) x.position - data.position).ToArray(); + IgnoreOccupancy = originalOccupancy; + RefreshCells(); + _originalRotation = item.EquippableItem.Rotation; + GameManager.BeginDrag(new EquippedItemDragObject(item, entity, item.Position - v)); + AkSoundEngine.PostEvent("Pickup", gameObject); + } + }); cell.DragTrigger.OnDragAsObservable() - .Subscribe(data => _onDrag?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + for (var i = 0; i < _dragCells.Length; i++) + _dragCells[i].position = new Vector3( + data.position.x + _dragOffsets[i].x, + data.position.y + _dragOffsets[i].y, + _dragCells[i].position.z); + }); cell.EndDragTrigger.OnEndDragAsObservable() - .Subscribe(data => _onEndDrag?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + //Debug.Log("Entity Drag End"); + IgnoreOccupancy = null; + if (!GameManager.EndDrag()) + entity.GearOccupancy[v.x, v.y].EquippableItem.Rotation = _originalRotation; + foreach(var dragObject in _dragCells) + Destroy(dragObject.gameObject); + _dragCells = null; + RefreshCells(); + }); cell.PointerEnterTrigger.OnPointerEnterAsObservable() - .Subscribe(data => _onPointerEnter?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + //Debug.Log("Entity Pointer Enter"); + if (!(GameManager.DragObject is ItemDragObject itemDragObject)) return; + var item = itemDragObject.Item; + var itemData = item.Data.Value; + if (!(item is EquippableItem equippableItem)) return; + var placementPosition = v + itemDragObject.OriginCellOffset; + if (entity.ItemFits(equippableItem, placementPosition)) + { + //foreach (var cell in _dragCells) cell.gameObject.SetActive(false); + FakeItem = item; + FakeOccupancy = hullData.Shape.Inset(itemData.Shape, placementPosition, item.Rotation); + RefreshCells(); + GameManager.RegisterDragTarget(drag => + { + //Debug.Log("Entity Drag Callback"); + if (GameManager.DragObject is EquippedItemDragObject equippedItemDragObject) + { + if(equippedItemDragObject.OriginEntity.TryUnequip(equippedItemDragObject.EquippedItem) == null) + { + AkSoundEngine.PostEvent("UI_Fail", gameObject); + Dialog.Clear(); + Dialog.Title.text = "Unable to move item!"; + Dialog.AddProperty("Verify that cargo bays are empty before un-equipping them."); + Dialog.Show(); + Dialog.MoveToCursor(); + } + else + AkSoundEngine.PostEvent("Unequip", gameObject); + } + else if (GameManager.DragObject is ItemInstanceDragObject itemInstanceDragObject) + itemInstanceDragObject.OriginInventory.Remove(itemInstanceDragObject.Item); + + FakeOccupancy = null; + entity.TryEquip(equippableItem, placementPosition); + RefreshCells(); + AkSoundEngine.PostEvent("Equip", gameObject); + return false; + }); + } + }); cell.PointerExitTrigger.OnPointerExitAsObservable() - .Subscribe(data => _onPointerExit?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + if (!(GameManager.DragObject is ItemDragObject)) return; + FakeItem = null; + FakeOccupancy = null; + RefreshCells(); + GameManager.UnregisterDragTarget(); + }); } } else @@ -448,6 +542,9 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler { Clear(); + _subscriptions.Add(cargo.Cargo.ObserveAdd().Subscribe(_ => RefreshCells())); + _subscriptions.Add(cargo.Cargo.ObserveRemove().Subscribe(_ => RefreshCells())); + _displayedCargo = cargo; _displayedEntity = null; @@ -479,15 +576,103 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler _onClick?.OnNext((new InventoryCargoEventData(data, v, cargo), _clickCount)); }); cell.BeginDragTrigger.OnBeginDragAsObservable() - .Subscribe(data => _onBeginDrag?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + //Debug.Log("Inventory Drag Start"); + var item = cargo.Occupancy[v.x, v.y]; + if (item != null) + { + var itemPosition = cargo.Cargo[item]; + var itemData = item.Data.Value; + var originalOccupancy = cargo.Data.InteriorShape.Inset(itemData.Shape, itemPosition, item.Rotation); + _dragCells = originalOccupancy.Coordinates + .Select(v1 => Instantiate(CellInstances[v1], DragParent, true).transform).ToArray(); + foreach(var dragCell in _dragCells) + { + DestroyImmediate(dragCell.GetComponent()); + foreach (var component in dragCell.GetComponentsInChildren()) + component.enabled = false; + foreach (var img in dragCell.GetComponentsInChildren()) + img.color = new Color(img.color.r, img.color.g, img.color.b, img.color.a * .5f); + dragCell.GetComponentInChildren().raycastTarget = false; + } + _dragOffsets = _dragCells.Select(x => (Vector2) x.position - data.position).ToArray(); + IgnoreOccupancy = originalOccupancy; + RefreshCells(); + _originalRotation = item.Rotation; + GameManager.BeginDrag(new ItemInstanceDragObject(item, cargo, cargo.Cargo[item] - v)); + AkSoundEngine.PostEvent("Pickup", gameObject); + } + }); cell.DragTrigger.OnDragAsObservable() - .Subscribe(data => _onDrag?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + for (var i = 0; i < _dragCells.Length; i++) + _dragCells[i].position = new Vector3( + data.position.x + _dragOffsets[i].x, + data.position.y + _dragOffsets[i].y, + _dragCells[i].position.z); + }); cell.EndDragTrigger.OnEndDragAsObservable() - .Subscribe(data => _onEndDrag?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + //Debug.Log("Inventory Drag End"); + IgnoreOccupancy = null; + GameManager.EndDrag(); + foreach(var dragObject in _dragCells) + Destroy(dragObject.gameObject); + _dragCells = null; + }); cell.PointerEnterTrigger.OnPointerEnterAsObservable() - .Subscribe(data => _onPointerEnter?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + //Debug.Log("Inventory Pointer Enter"); + if (!(GameManager.DragObject is ItemDragObject itemDragObject)) return; + var item = itemDragObject.Item; + var itemData = item.Data.Value; + var placementPosition = v + itemDragObject.OriginCellOffset; + if (cargo.ItemFits(item, placementPosition)) + { + //foreach (var cell in _dragCells) cell.gameObject.SetActive(false); + FakeItem = item; + FakeOccupancy = cargo.Data.InteriorShape.Inset(itemData.Shape, placementPosition, item.Rotation); + RefreshCells(); + GameManager.RegisterDragTarget(drag => + { + //Debug.Log("Inventory Drag Callback"); + if (GameManager.DragObject is EquippedItemDragObject equippedItemDragObject) + { + if(equippedItemDragObject.OriginEntity.TryUnequip(equippedItemDragObject.EquippedItem) == null) + { + AkSoundEngine.PostEvent("UI_Fail", gameObject); + Dialog.Clear(); + Dialog.Title.text = "Unable to move item!"; + Dialog.AddProperty("Verify that cargo bays are empty before un-equipping them."); + Dialog.Show(); + Dialog.MoveToCursor(); + } + else + AkSoundEngine.PostEvent("Unequip", gameObject); + } + else if (GameManager.DragObject is ItemInstanceDragObject itemInstanceDragObject) + itemInstanceDragObject.OriginInventory.Remove(itemInstanceDragObject.Item); + cargo.TryStore(item, placementPosition); + FakeOccupancy = null; + AkSoundEngine.PostEvent("Drop", gameObject); + return true; + }); + } + }); cell.PointerExitTrigger.OnPointerExitAsObservable() - .Subscribe(data => _onPointerExit?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + if (!(GameManager.DragObject is ItemDragObject)) return; + FakeItem = null; + FakeOccupancy = null; + RefreshCells(); + GameManager.UnregisterDragTarget(); + }); + CellInstances.Add(v, cell); } } @@ -511,7 +696,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler var spriteIndex = 0; var interior = hullData.InteriorCells[v]; - var item = FakeOccupancy?[v]??false ? FakeEquipment : IgnoreOccupancy?[v]??false ? null : _displayedEntity.GearOccupancy[v.x, v.y]; + var item = FakeOccupancy?[v]??false ? FakeItem : IgnoreOccupancy?[v]??false ? null : _displayedEntity.GearOccupancy[v.x, v.y]?.EquippableItem; var hardpoint = _displayedEntity.Hardpoints[v.x, v.y]; bool HardpointMatch(int2 offset) @@ -520,7 +705,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler return !( hullData.Shape[v2] && _displayedEntity.Hardpoints[v2.x, v2.y] == hardpoint && - (FakeOccupancy?[v2]??false ? FakeEquipment : IgnoreOccupancy?[v2]??false ? null : _displayedEntity.GearOccupancy[v2.x, v2.y]) == item + (FakeOccupancy?[v2]??false ? FakeItem : IgnoreOccupancy?[v2]??false ? null : _displayedEntity.GearOccupancy[v2.x, v2.y]?.EquippableItem) == item ); } @@ -531,7 +716,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler hullData.Shape[v2] && ( !interior && !hullData.InteriorCells[v2] && _displayedEntity.Hardpoints[v2.x, v2.y] == null || interior && item != null && - (FakeOccupancy?[v2]??false ? FakeEquipment : IgnoreOccupancy?[v2]??false ? null : _displayedEntity.GearOccupancy[v2.x, v2.y]) == item + (FakeOccupancy?[v2]??false ? FakeItem : IgnoreOccupancy?[v2]??false ? null : _displayedEntity.GearOccupancy[v2.x, v2.y]?.EquippableItem) == item ) ); } @@ -619,14 +804,15 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler var hullData = GameManager.ItemManager.GetData(_displayedEntity.Hull) as HullData; var interior = hullData.InteriorCells[position]; var hardpoint = _displayedEntity.Hardpoints[position.x, position.y]; - var item = FakeOccupancy?[position] ?? false ? FakeEquipment : IgnoreOccupancy?[position] ?? false ? null : _displayedEntity.GearOccupancy[position.x, position.y]; + var item = (FakeOccupancy?[position] ?? false ? FakeItem : + IgnoreOccupancy?[position] ?? false ? null : _displayedEntity.GearOccupancy[position.x, position.y]?.EquippableItem) as EquippableItem; if (_hud) { if (_displayedEntity.Armor[position.x, position.y] > .01f) return Settings.ArmorGradient.Evaluate(_displayedEntity.Armor[position.x, position.y] / _displayedEntity.MaxArmor[position.x, position.y]); - if (item != null) return Settings.DurabilityGradient.Evaluate(item.EquippableItem.Durability / _displayedEntity.ItemManager.GetData(item.EquippableItem).Durability); + if (item != null) return Settings.DurabilityGradient.Evaluate(item.Durability / _displayedEntity.ItemManager.GetData(item).Durability); return float3(.25f).ToColor(); } @@ -671,21 +857,6 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler } } - public bool DropItem(ItemInstance item, int2 position) - { - if (_displayedEntity != null && item is EquippableItem equippableItem) - { - return _displayedEntity.TryEquip(equippableItem, position); - } - - if(_displayedCargo != null) - { - return _displayedCargo.TryStore(item, position); - } - - return false; - } - public bool CanDropItem(ItemInstance item) { if (_displayedEntity != null && item is EquippableItem equippableItem) @@ -717,12 +888,16 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler } public Subject OnBackgroundClick = new Subject(); + private Transform[] _dragCells; + private Vector2[] _dragOffsets; + private ItemRotation _originalRotation; + public Subject<(InventoryEventData data, int clickCount)> OnClickAsObservable() => _onClick ?? (_onClick = new Subject<(InventoryEventData data, int clickCount)>()); - public UniRx.IObservable OnBeginDragAsObservable() => _onBeginDrag ?? (_onBeginDrag = new Subject()); - public UniRx.IObservable OnDragAsObservable() => _onDrag ?? (_onDrag = new Subject()); - public UniRx.IObservable OnEndDragAsObservable() => _onEndDrag ?? (_onEndDrag = new Subject()); - public UniRx.IObservable OnPointerEnterAsObservable() => _onPointerEnter ?? (_onPointerEnter = new Subject()); - public UniRx.IObservable OnPointerExitAsObservable() => _onPointerExit ?? (_onPointerExit = new Subject()); + // public UniRx.IObservable OnBeginDragAsObservable() => _onBeginDrag ?? (_onBeginDrag = new Subject()); + // public UniRx.IObservable OnDragAsObservable() => _onDrag ?? (_onDrag = new Subject()); + // public UniRx.IObservable OnEndDragAsObservable() => _onEndDrag ?? (_onEndDrag = new Subject()); + // public UniRx.IObservable OnPointerEnterAsObservable() => _onPointerEnter ?? (_onPointerEnter = new Subject()); + // public UniRx.IObservable OnPointerExitAsObservable() => _onPointerExit ?? (_onPointerExit = new Subject()); public void OnPointerClick(PointerEventData eventData) { diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index 8ae518863..0f32b38ba 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -478,7 +478,7 @@ public class PropertiesPanel : MonoBehaviour weaponGroups.OnBeginDragAsObservable().Subscribe(x => { //Debug.Log($"Began dragging weapon group {x.group}"); - GameManager.BeginDrag(new WeaponGroupDragAction(x.group)); + GameManager.BeginDrag(new WeaponGroupDragObject(x.group)); dragObject = Instantiate(weaponGroups.Groups[x.group], DragParent, true).transform; dragOffset = (Vector2)dragObject.position - x.pointerEventData.position; }); diff --git a/Assets/Scripts/UI/SchematicTriggerGroupElement.cs b/Assets/Scripts/UI/SchematicTriggerGroupElement.cs deleted file mode 100644 index ff078b3c7..000000000 --- a/Assets/Scripts/UI/SchematicTriggerGroupElement.cs +++ /dev/null @@ -1,10 +0,0 @@ - -using TMPro; -using UnityEngine; -using UnityEngine.UI; - -public class SchematicTriggerGroupElement : MonoBehaviour -{ - public TextMeshProUGUI[] GroupLabel; - public Image[] GroupBackgrounds; -} \ No newline at end of file diff --git a/Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta b/Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta deleted file mode 100644 index af88b8c6b..000000000 --- a/Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 8f090c2738224f698bdfa545978f4d5a -timeCreated: 1609423819 \ No newline at end of file diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 100658701..ed9524939 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a607d2435f93eae73a274ae8247c7aa47e1962fadef282db240705970b1d12bc -size 75659 +oid sha256:38a1e181ae301b90f0af33b0f91fd79d8c8d4e16cc93f2e85656dee0ad043c86 +size 75924 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index a9d771654..5c15013a1 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e65428c99ca8688be45695ee938703cc2cfb82f7c0a41594ccbfaecad24ec2e3 -size 17318 +oid sha256:b9ec5cef84e135dc355753ec7e782a6867dec6728e12c463e559a8bbb0a63770 +size 26003 diff --git a/RethinkDB.csproj b/RethinkDB.csproj index b5ef29462..f6faae674 100644 --- a/RethinkDB.csproj +++ b/RethinkDB.csproj @@ -241,8 +241,8 @@ - + @@ -295,8 +295,8 @@ - +