Database Support

Refactored almost everything, but most importantly we now integrate with RethinkDB for game data.
This commit is contained in:
hyperion51 2020-03-22 19:05:26 +00:00
commit 0b46d5ee39
839 changed files with 77349 additions and 112660 deletions

View file

@ -6,19 +6,54 @@
<e p="C:\Users\rwvens\Documents\GitHub\Aetheria-Economy" t="IncludeRecursive">
<e p="Aetheria-Economy.sln" t="IncludeFlat" />
<e p="Assembly-CSharp-Editor.csproj" t="IncludeRecursive" />
<e p="Assembly-CSharp-firstpass.csproj" t="IncludeRecursive" />
<e p="Assembly-CSharp.csproj" t="IncludeRecursive" />
<e p="Assets" t="Include">
<e p="Scripts" t="Include">
<e p="Behaviors.cs" t="Include" />
<e p="ChatComponent.cs" t="Include" />
<e p="ColorButton.cs" t="Include" />
<e p="Database.cs" t="Include" />
<e p="DatabaseItems.cs" t="Include" />
<e p="Editor" t="Include">
<e p="DatabaseEditor.cs" t="Include" />
<e p="GalaxyEditor.cs" t="Include" />
<e p="Plugins" t="Include">
<e p="AsyncAwaitUtil" t="Include">
<e p="Source" t="Include">
<e p="Awaiters.cs" t="Include" />
<e p="AwaitExtensions.cs" t="Include" />
<e p="IEnumeratorAwaitExtensions.cs" t="Include" />
<e p="Internal" t="Include">
<e p="AsyncCoroutineRunner.cs" t="Include" />
<e p="SyncContextUtil.cs" t="Include" />
</e>
<e p="TaskExtensions.cs" t="Include" />
<e p="WaitForBackgroundThread.cs" t="Include" />
<e p="WaitForUpdate.cs" t="Include" />
</e>
<e p="Tests" t="Include">
<e p="AsyncUtilTests.cs" t="Include" />
<e p="Util" t="Include">
<e p="TestButtonHandler.cs" t="Include" />
</e>
</e>
</e>
<e p="Grpc.Core" t="Include">
<e p="lib" t="Include">
<e p="net45" t="Include">
<e p="Grpc.Core.xml" t="Include" />
</e>
</e>
</e>
<e p="Grpc.Core.Api" t="Include">
<e p="lib" t="Include">
<e p="net45" t="Include">
<e p="Grpc.Core.Api.xml" t="Include" />
</e>
</e>
</e>
</e>
<e p="Scripts" t="Include">
<e p="ChatComponent.cs" t="Include" />
<e p="Editor" t="Include">
<e p="DatabaseInspector.cs" t="Include" />
<e p="DatabaseView.cs" t="Include" />
<e p="EditorDispatch.cs" t="Include" />
<e p="GalaxyEditor.cs" t="Include" />
<e p="SerializerTestWindow.cs" t="Include" />
</e>
<e p="Extensions.cs" t="Include" />
<e p="Galaxy.cs" t="Include" />
<e p="Generated" t="Include">
<e p="MagicOnion.Generated.cs" t="Include" />
@ -26,7 +61,6 @@
</e>
<e p="Icons.cs" t="Include" />
<e p="InitialSettings.cs" t="Include" />
<e p="ItemInstance.cs" t="Include" />
<e p="MarkovNameGenerator.cs" t="Include" />
<e p="NIH" t="Include">
<e p="GPU Noise" t="Include">
@ -410,12 +444,9 @@
</e>
<e p="UniRx" t="Include">
<e p="Examples" t="Include">
<e p="Sample01_ObservableWWW.cs" t="Include" />
<e p="Sample02_ObservableTriggers.cs" t="Include" />
<e p="Sample03_GameObjectAsObservable.cs" t="Include" />
<e p="Sample04_ConvertFromUnityCallback.cs" t="Include" />
<e p="Sample05_ConvertFromCoroutine.cs" t="Include" />
<e p="Sample06_ConvertToCoroutine.cs" t="Include" />
<e p="Sample07_OrchestratIEnumerator.cs" t="Include" />
<e p="Sample08_DetectDoubleClick.cs" t="Include" />
<e p="Sample09_EventHandling.cs" t="Include" />
@ -609,7 +640,6 @@
<e p="MainThreadScheduler.cs" t="Include" />
<e p="Observable.Unity.cs" t="Include" />
<e p="ObservableMonoBehaviour.cs" t="Include" />
<e p="ObservableWWW.cs" t="Include" />
<e p="ObserveExtensions.cs" t="Include" />
<e p="Operators" t="Include">
<e p="BatchFrame.cs" t="Include" />
@ -688,307 +718,69 @@
</e>
</e>
</e>
<e p="unity-ui-extensions" t="Include">
<e p="Editor" t="Include">
<e p="AccordionElementEditor.cs" t="Include" />
<e p="BezierLineRendererEditor.cs" t="Include" />
<e p="BoxSliderEditor.cs" t="Include" />
<e p="CanvasGroupActivator.cs" t="Include" />
<e p="CUIBezierCurveEditor.cs" t="Include" />
<e p="CUIGraphicEditor.cs" t="Include" />
<e p="CUIImageEditor.cs" t="Include" />
<e p="CUITextEditor.cs" t="Include" />
<e p="NonDrawingGraphicEditor.cs" t="Include" />
<e p="ReadOnlyDrawer.cs" t="Include" />
<e p="TextPicEditor.cs" t="Include" />
<e p="uGUITools.cs" t="Include" />
<e p="UIExtensionsMenuOptions.cs" t="Include" />
</e>
<e p="Examples" t="Include">
<e p="ComboBox" t="Include">
<e p="ComboBoxChanged.cs" t="Include" />
</e>
<e p="Cooldown" t="Include">
<e p="CooldownEffect_Image.cs" t="Include" />
<e p="CooldownEffect_SAUIM.cs" t="Include" />
</e>
<e p="FancyScrollView" t="Include">
<e p="01_Basic" t="Include">
<e p="Example01CellDto.cs" t="Include" />
<e p="Example01Scene.cs" t="Include" />
<e p="Example01ScrollView.cs" t="Include" />
<e p="Example01ScrollViewCell.cs" t="Include" />
</e>
<e p="02_CellEventHandling" t="Include">
<e p="Example02CellDto.cs" t="Include" />
<e p="Example02Scene.cs" t="Include" />
<e p="Example02ScrollView.cs" t="Include" />
<e p="Example02ScrollViewCell.cs" t="Include" />
<e p="Example02ScrollViewContext.cs" t="Include" />
</e>
<e p="03_InfiniteScroll" t="Include">
<e p="Example03CellDto.cs" t="Include" />
<e p="Example03Scene.cs" t="Include" />
<e p="Example03ScrollView.cs" t="Include" />
<e p="Example03ScrollViewCell.cs" t="Include" />
<e p="Example03ScrollViewContext.cs" t="Include" />
</e>
</e>
<e p="HSS-VSS-ScrollSnap" t="Include">
<e p="PaginationScript.cs" t="Include" />
<e p="UpdateScrollSnap.cs" t="Include" />
</e>
<e p="MenuExample" t="Include">
<e p="Scripts" t="Include">
<e p="Menus" t="Include">
<e p="AwesomeMenu.cs" t="Include" />
<e p="GameMenu.cs" t="Include" />
<e p="MainMenu.cs" t="Include" />
<e p="OptionsMenu.cs" t="Include" />
<e p="PauseMenu.cs" t="Include" />
</e>
</e>
</e>
<e p="RadialSlider" t="Include">
<e p="UpdateRadialValue.cs" t="Include" />
</e>
<e p="TextEffects" t="Include">
<e p="AnimateEffects.cs" t="Include" />
<e p="testHref.cs" t="Include" />
</e>
<e p="UILineRenderer" t="Include">
<e p="LineRendererOrbit.cs" t="Include" />
<e p="TestAddingPoints.cs" t="Include" />
</e>
<e p="UIVerticalScrollerDemo" t="Include">
<e p="Scripts" t="Include">
<e p="ScrollingCalendar.cs" t="Include" />
</e>
</e>
</e>
<e p="Scripts" t="Include">
<e p="Controls" t="Include">
<e p="Accordion" t="Include">
<e p="Accordion.cs" t="Include" />
<e p="AccordionElement.cs" t="Include" />
<e p="Tweening" t="Include">
<e p="FloatTween.cs" t="Include" />
<e p="ITweenValue.cs" t="Include" />
<e p="TweenRunner.cs" t="Include" />
</e>
</e>
<e p="BoxSlider.cs" t="Include" />
<e p="ColorPicker" t="Include">
<e p="ColorImage.cs" t="Include" />
<e p="ColorLabel.cs" t="Include" />
<e p="ColorPickerControl.cs" t="Include" />
<e p="ColorPickerPresets.cs" t="Include" />
<e p="ColorPickerTester.cs" t="Include" />
<e p="ColorSlider.cs" t="Include" />
<e p="ColorSliderImage.cs" t="Include" />
<e p="ColorValues.cs" t="Include" />
<e p="Events" t="Include">
<e p="ColorChangedEvent.cs" t="Include" />
<e p="HSVChangedEvent.cs" t="Include" />
</e>
<e p="HexColorField.cs" t="Include" />
<e p="HSVUtil.cs" t="Include" />
<e p="SVBoxSlider.cs" t="Include" />
<e p="TiltWindow.cs" t="Include" />
</e>
<e p="ComboBox" t="Include">
<e p="AutoCompleteComboBox.cs" t="Include" />
<e p="ComboBox.cs" t="Include" />
<e p="DropDownList.cs" t="Include" />
<e p="DropDownListButton.cs" t="Include" />
<e p="DropDownListItem.cs" t="Include" />
</e>
<e p="CooldownButton.cs" t="Include" />
<e p="InputFocus.cs" t="Include" />
<e p="MultiTouchScrollRect.cs" t="Include" />
<e p="RadialSlider.cs" t="Include" />
<e p="ReorderableList" t="Include">
<e p="ReorderableList.cs" t="Include" />
<e p="ReorderableListContent.cs" t="Include" />
<e p="ReorderableListDebug.cs" t="Include" />
<e p="ReorderableListElement.cs" t="Include" />
</e>
<e p="RescalingPanels" t="Include">
<e p="RescaleDragPanel.cs" t="Include" />
<e p="RescalePanel.cs" t="Include" />
<e p="ResizePanel.cs" t="Include" />
</e>
<e p="SegmentedControl.cs" t="Include" />
<e p="SelectionBox" t="Include">
<e p="ExampleSelectable.cs" t="Include" />
<e p="IBoxSelectable.cs" t="Include" />
<e p="SelectionBox.cs" t="Include" />
</e>
<e p="Stepper.cs" t="Include" />
<e p="TextPic.cs" t="Include" />
<e p="UI_Knob.cs" t="Include" />
</e>
<e p="Effects" t="Include">
<e p="BestFitOutline.cs" t="Include" />
<e p="CurlyUI" t="Include">
<e p="CUIBezierCurve.cs" t="Include" />
<e p="CUIGraphic.cs" t="Include" />
<e p="CUIImage.cs" t="Include" />
<e p="CUIMisc.cs" t="Include" />
<e p="CUIText.cs" t="Include" />
</e>
<e p="CurvedText.cs" t="Include" />
<e p="CylinderText.cs" t="Include" />
<e p="Gradient.cs" t="Include" />
<e p="Gradient2.cs" t="Include" />
<e p="LetterSpacing.cs" t="Include" />
<e p="MonoSpacing.cs" t="Include" />
<e p="NicerOutline.cs" t="Include" />
<e p="RaycastMask.cs" t="Include" />
<e p="ShaderEffects" t="Include">
<e p="UIAdditiveEffect.cs" t="Include" />
<e p="UIImageCrop.cs" t="Include" />
<e p="UILinearDodgeEffect.cs" t="Include" />
<e p="UIMultiplyEffect.cs" t="Include" />
<e p="UIScreenEffect.cs" t="Include" />
<e p="UISoftAdditiveEffect.cs" t="Include" />
</e>
<e p="ShineEffect.cs" t="Include" />
<e p="ShineEffector.cs" t="Include" />
<e p="SoftMaskScript.cs" t="Include" />
<e p="UIFlippable.cs" t="Include" />
<e p="UIParticleSystem.cs" t="Include" />
</e>
<e p="InputModules" t="Include">
<e p="AimerInputModule.cs" t="Include" />
<e p="GamePadInputModule.cs" t="Include" />
</e>
<e p="Layout" t="Include">
<e p="CurvedLayout.cs" t="Include" />
<e p="FancyScrollView.cs" t="Include" />
<e p="FancyScrollViewCell.cs" t="Include" />
<e p="FlowLayoutGroup.cs" t="Include" />
<e p="HorizontalScrollSnap.cs" t="Include" />
<e p="IScrollSnap.cs" t="Include" />
<e p="RadialLayout.cs" t="Include" />
<e p="ScrollPositionController.cs" t="Include" />
<e p="ScrollSnap.cs" t="Include" />
<e p="ScrollSnapBase.cs" t="Include" />
<e p="ScrollSnapScrollbarHelper.cs" t="Include" />
<e p="TableLayoutGroup.cs" t="Include" />
<e p="TileSizeFitter.cs" t="Include" />
<e p="UIVerticalScroller.cs" t="Include" />
<e p="VerticalScrollSnap.cs" t="Include" />
</e>
<e p="MenuSystem" t="Include">
<e p="Menu.cs" t="Include" />
<e p="MenuManager.cs" t="Include" />
<e p="SimpleMenu.cs" t="Include" />
</e>
<e p="Primitives" t="Include">
<e p="DiamondGraph.cs" t="Include" />
<e p="UICircle.cs" t="Include" />
<e p="UICornerCut.cs" t="Include" />
<e p="UIGridRenderer.cs" t="Include" />
<e p="UILineRenderer.cs" t="Include" />
<e p="UILineTextureRenderer.cs" t="Include" />
<e p="UIPolygon.cs" t="Include" />
<e p="UIPrimitiveBase.cs" t="Include" />
</e>
<e p="TabNavigationHelper.cs" t="Include" />
<e p="ToolTips" t="Include">
<e p="BoundTooltip" t="Include">
<e p="BoundTooltipItem.cs" t="Include" />
<e p="BoundTooltipTrigger.cs" t="Include" />
</e>
<e p="HoverTooltip.cs" t="Include" />
<e p="ToolTip.cs" t="Include" />
</e>
<e p="UIWindowBase.cs" t="Include" />
<e p="Utilities" t="Include">
<e p="BezierPath.cs" t="Include" />
<e p="CableCurve.cs" t="Include" />
<e p="Circle.cs" t="Include" />
<e p="CLZF2.cs" t="Include" />
<e p="DragCorrector.cs" t="Include" />
<e p="ExtensionsToggle.cs" t="Include" />
<e p="ExtensionsToggleGroup.cs" t="Include" />
<e p="InputFieldEnterSubmit.cs" t="Include" />
<e p="NonDrawingGraphic.cs" t="Include" />
<e p="PaginationManager.cs" t="Include" />
<e p="PPIViewer.cs" t="Include" />
<e p="ReadOnlyAttribute.cs" t="Include" />
<e p="ReturnKeyTriggersButton.cs" t="Include" />
<e p="ScrollConflictManager.cs" t="Include" />
<e p="ScrollRectEx.cs" t="Include" />
<e p="ScrollRectExtensions.cs" t="Include" />
<e p="ScrollRectLinker.cs" t="Include" />
<e p="ScrollRectTweener.cs" t="Include" />
<e p="SelectableScaler.cs" t="Include" />
<e p="SetPropertyUtility.cs" t="Include" />
<e p="switchToRectTransform.cs" t="Include" />
<e p="TestCompression.cs" t="Include" />
<e p="UI_InfiniteScroll.cs" t="Include" />
<e p="UI_ScrollRectOcclusion.cs" t="Include" />
<e p="UI_TweenScale.cs" t="Include" />
<e p="UIExtensionMethods.cs" t="Include" />
<e p="UIHighlightable.cs" t="Include" />
<e p="UILineConnector.cs" t="Include" />
<e p="UIScrollToSelection.cs" t="Include" />
<e p="UIScrollToSelectionXY.cs" t="Include" />
<e p="UISelectableExtension.cs" t="Include" />
</e>
<e p="VR Extensions" t="Include">
<e p="VRCursor.cs" t="Include" />
<e p="VRInputModule.cs" t="Include" />
</e>
</e>
<e p="Shaders" t="Include">
<e p="SoftMaskShader.shader" t="Include" />
<e p="UI Particle Add.shader" t="Include" />
<e p="UI Particle AddMultiply.shader" t="Include" />
<e p="UI Particle AddSmooth.shader" t="Include" />
<e p="UI Particle Alpha Blend.shader" t="Include" />
<e p="UI Particle Blend.shader" t="Include" />
<e p="UI Particle Multiply.shader" t="Include" />
<e p="UI Particle MultiplyDouble.shader" t="Include" />
<e p="UI Particle Premultiply Blend.shader" t="Include" />
<e p="UI Particle VertexLit Blended.shader" t="Include" />
<e p="UIAdditive.shader" t="Include" />
<e p="UIImageCrop.shader" t="Include" />
<e p="UILinearDodge.shader" t="Include" />
<e p="UIMultiply.shader" t="Include" />
<e p="UIParticleHidden.shader" t="Include" />
<e p="UIScreen.shader" t="Include" />
<e p="UISoftAdditive.shader" t="Include" />
</e>
</e>
<e p="XKCDColors.cs" t="Include" />
</e>
<e p="Orbit.cs" t="Include" />
<e p="PoissonDiskSampling" t="Include">
<e p="PoissonDiskSampling.cs" t="Include" />
<e p="Test.cs" t="Include" />
</e>
<e p="PropertiesPanel.cs" t="Include" />
<e p="Prototype.cs" t="Include" />
<e p="ServerShared" t="Include">
<e p="Attributes.cs" t="Include" />
<e p="DatabaseCache.cs" t="Include" />
<e p="DatabaseItems.cs" t="Include" />
<e p="Economy.Shared.Unity.asmdef" t="Include" />
<e p="Enums.cs" t="Include" />
<e p="Extensions.cs" t="Include" />
<e p="GameContext.cs" t="Include" />
<e p="GlobalData.cs" t="Include" />
<e p="Hubs" t="Include">
<e p="IChatHub.cs" t="Include" />
<e p="IChatHubReceiver.cs" t="Include" />
</e>
<e p="ItemBehaviors" t="Include">
<e p="Afterburner.cs" t="Include" />
<e p="Behaviors.cs" t="Include" />
<e p="Cannon.cs" t="Include" />
<e p="Launcher.cs" t="Include" />
<e p="Reactor.cs" t="Include" />
<e p="Sensor.cs" t="Include" />
</e>
<e p="ItemData.cs" t="Include" />
<e p="ItemInstance.cs" t="Include" />
<e p="MessagePackObjects" t="Include">
<e p="Requests.cs" t="Include" />
<e p="Responses.cs" t="Include" />
</e>
<e p="NIH" t="Include">
<e p="JsonKnownTypes" t="Include">
<e p="AttributesManager.cs" t="Include" />
<e p="Exceptions" t="Include">
<e p="JsonKnownTypesException.cs" t="Include" />
</e>
<e p="JsonDiscriminatorAttribute.cs" t="Include" />
<e p="JsonDiscriminatorSettings.cs" t="Include" />
<e p="JsonKnownThisTypeAttribute.cs" t="Include" />
<e p="JsonKnownTypeAttribute.cs" t="Include" />
<e p="JsonKnownTypesContractResolver.cs" t="Include" />
<e p="JsonKnownTypesConverter.cs" t="Include" />
<e p="JsonKnownTypesDictionaryManager.cs" t="Include" />
<e p="JsonKnownTypesSettings.cs" t="Include" />
<e p="JsonKnownTypesSettingsManager.cs" t="Include" />
<e p="Utils" t="Include">
<e p="Mapper.cs" t="Include" />
</e>
</e>
</e>
<e p="OrbitInstance.cs" t="Include" />
<e p="Services" t="Include">
<e p="IChatService.cs" t="Include" />
</e>
<e p="Ship.cs" t="Include" />
<e p="ZoneData.cs" t="Include" />
<e p="ZoneGenerator.cs" t="Include" />
</e>
<e p="Targetable.cs" t="Include" />
<e p="UnityExtensions.cs" t="Include" />
<e p="UnityFormatters.cs" t="Include" />
<e p="ZoneManager.cs" t="Include" />
<e p="ZoneRenderer.cs" t="Include" />
</e>
<e p="Shaders" t="Include">

View file

@ -4,11 +4,48 @@
<e p="C:\Users\rwvens\.Rider2019.3\system\extResources" t="IncludeRecursive" />
<e p="C:\Users\rwvens\.Rider2019.3\system\resharper-host\local\Transient\ReSharperHost\v193\SolutionCaches\_Economy.820823087.00" t="ExcludeRecursive" />
<e p="C:\Users\rwvens\Documents\GitHub\Aetheria-Economy" t="IncludeFlat">
<e p="Assets\Scripts\ServerShared\Hubs\IChatHub.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\Hubs\IChatHubReceiver.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\MessagePackObjects\Requests.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\MessagePackObjects\Responses.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\Services\IChatService.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\Attributes.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\DatabaseCache.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\DatabaseItems.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\Enums.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\Extensions.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\GameContext.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\GlobalData.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\Hubs" t="Include">
<e p="IChatHub.cs" t="Include" />
<e p="IChatHubReceiver.cs" t="Include" />
</e>
<e p="Assets\Scripts\ServerShared\ItemBehaviors\Afterburner.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\ItemBehaviors\Behaviors.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\ItemBehaviors\Cannon.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\ItemBehaviors\Launcher.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\ItemBehaviors\Reactor.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\ItemBehaviors\Sensor.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\ItemData.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\ItemInstance.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\MessagePackObjects" t="Include">
<e p="Requests.cs" t="Include" />
<e p="Responses.cs" t="Include" />
</e>
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\AttributesManager.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\Exceptions\JsonKnownTypesException.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\JsonDiscriminatorAttribute.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\JsonDiscriminatorSettings.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\JsonKnownThisTypeAttribute.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\JsonKnownTypeAttribute.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\JsonKnownTypesContractResolver.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\JsonKnownTypesConverter.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\JsonKnownTypesDictionaryManager.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\JsonKnownTypesSettings.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\JsonKnownTypesSettingsManager.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\NIH\JsonKnownTypes\Utils\Mapper.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\OrbitInstance.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\Services" t="Include">
<e p="IChatService.cs" t="Include" />
</e>
<e p="Assets\Scripts\ServerShared\Ship.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\ZoneData.cs" t="Include" />
<e p="Assets\Scripts\ServerShared\ZoneGenerator.cs" t="Include" />
<e p="Economy.Server" t="IncludeRecursive">
<e p="appsettings.json" t="Include" />
<e p="bin" t="ExcludeRecursive" />
@ -34,6 +71,97 @@
</e>
</e>
</e>
<e p="Unity.Mathematics" t="Include">
<e p="bool2.gen.cs" t="Include" />
<e p="bool2x2.gen.cs" t="Include" />
<e p="bool2x3.gen.cs" t="Include" />
<e p="bool2x4.gen.cs" t="Include" />
<e p="bool3.gen.cs" t="Include" />
<e p="bool3x2.gen.cs" t="Include" />
<e p="bool3x3.gen.cs" t="Include" />
<e p="bool3x4.gen.cs" t="Include" />
<e p="bool4.gen.cs" t="Include" />
<e p="bool4x2.gen.cs" t="Include" />
<e p="bool4x3.gen.cs" t="Include" />
<e p="bool4x4.gen.cs" t="Include" />
<e p="double2.gen.cs" t="Include" />
<e p="double2x2.gen.cs" t="Include" />
<e p="double2x3.gen.cs" t="Include" />
<e p="double2x4.gen.cs" t="Include" />
<e p="double3.gen.cs" t="Include" />
<e p="double3x2.gen.cs" t="Include" />
<e p="double3x3.gen.cs" t="Include" />
<e p="double3x4.gen.cs" t="Include" />
<e p="double4.gen.cs" t="Include" />
<e p="double4x2.gen.cs" t="Include" />
<e p="double4x3.gen.cs" t="Include" />
<e p="double4x4.gen.cs" t="Include" />
<e p="float2.gen.cs" t="Include" />
<e p="float2x2.gen.cs" t="Include" />
<e p="float2x3.gen.cs" t="Include" />
<e p="float2x4.gen.cs" t="Include" />
<e p="float3.gen.cs" t="Include" />
<e p="float3x2.gen.cs" t="Include" />
<e p="float3x3.gen.cs" t="Include" />
<e p="float3x4.gen.cs" t="Include" />
<e p="float4.gen.cs" t="Include" />
<e p="float4x2.gen.cs" t="Include" />
<e p="float4x3.gen.cs" t="Include" />
<e p="float4x4.gen.cs" t="Include" />
<e p="half.cs" t="Include" />
<e p="half2.gen.cs" t="Include" />
<e p="half3.gen.cs" t="Include" />
<e p="half4.gen.cs" t="Include" />
<e p="int2.gen.cs" t="Include" />
<e p="int2x2.gen.cs" t="Include" />
<e p="int2x3.gen.cs" t="Include" />
<e p="int2x4.gen.cs" t="Include" />
<e p="int3.gen.cs" t="Include" />
<e p="int3x2.gen.cs" t="Include" />
<e p="int3x3.gen.cs" t="Include" />
<e p="int3x4.gen.cs" t="Include" />
<e p="int4.gen.cs" t="Include" />
<e p="int4x2.gen.cs" t="Include" />
<e p="int4x3.gen.cs" t="Include" />
<e p="int4x4.gen.cs" t="Include" />
<e p="math.cs" t="Include" />
<e p="matrix.cs" t="Include" />
<e p="matrix.gen.cs" t="Include" />
<e p="Noise" t="Include">
<e p="cellular2D.cs" t="Include" />
<e p="cellular2x2.cs" t="Include" />
<e p="cellular2x2x2.cs" t="Include" />
<e p="cellular3D.cs" t="Include" />
<e p="classicnoise2D.cs" t="Include" />
<e p="classicnoise3D.cs" t="Include" />
<e p="classicnoise4D.cs" t="Include" />
<e p="common.cs" t="Include" />
<e p="LICENSE" t="Include" />
<e p="noise2D.cs" t="Include" />
<e p="noise3D.cs" t="Include" />
<e p="noise3Dgrad.cs" t="Include" />
<e p="noise4D.cs" t="Include" />
<e p="psrdnoise2D.cs" t="Include" />
<e p="README" t="Include" />
</e>
<e p="PropertyAttributes.cs" t="Include" />
<e p="quaternion.cs" t="Include" />
<e p="random.cs" t="Include" />
<e p="rigid_transform.cs" t="Include" />
<e p="uint2.gen.cs" t="Include" />
<e p="uint2x2.gen.cs" t="Include" />
<e p="uint2x3.gen.cs" t="Include" />
<e p="uint2x4.gen.cs" t="Include" />
<e p="uint3.gen.cs" t="Include" />
<e p="uint3x2.gen.cs" t="Include" />
<e p="uint3x3.gen.cs" t="Include" />
<e p="uint3x4.gen.cs" t="Include" />
<e p="uint4.gen.cs" t="Include" />
<e p="uint4x2.gen.cs" t="Include" />
<e p="uint4x3.gen.cs" t="Include" />
<e p="uint4x4.gen.cs" t="Include" />
<e p="Unity.Mathematics.asmdef" t="Include" />
</e>
</e>
<e p="Economy.sln" t="IncludeFlat" />
<e p="packages" t="ExcludeRecursive" />

View file

@ -1,5 +1,9 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{29B684F0-E616-CD9C-EFF8-10A39DB37A52}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Economy.Shared.Unity", "Economy.Shared.Unity.csproj", "{A62B36C2-E9DE-B992-0779-F5FCF5968986}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MessagePack", "MessagePack.csproj", "{21EF11C5-27DC-3D88-B027-9A4B6F36BAE4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagicOnion", "MagicOnion.csproj", "{8646472B-6F4E-DCCA-A987-99E48366FF7F}"
@ -8,9 +12,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagicOnion.Abstractions", "
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagicOnion.Unity", "MagicOnion.Unity.csproj", "{B83AC090-25E2-7BA3-4612-A18BBB80B3E6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{29B684F0-E616-CD9C-EFF8-10A39DB37A52}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Economy.Shared.Unity", "Economy.Shared.Unity.csproj", "{A62B36C2-E9DE-B992-0779-F5FCF5968986}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-firstpass", "Assembly-CSharp-firstpass.csproj", "{7D8742A4-0DFC-5667-0A98-3CA4312F9253}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{E389FCA7-CA14-82FB-7D67-C13788BEE74A}"
EndProject
@ -20,6 +22,14 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{29B684F0-E616-CD9C-EFF8-10A39DB37A52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{29B684F0-E616-CD9C-EFF8-10A39DB37A52}.Debug|Any CPU.Build.0 = Debug|Any CPU
{29B684F0-E616-CD9C-EFF8-10A39DB37A52}.Release|Any CPU.ActiveCfg = Release|Any CPU
{29B684F0-E616-CD9C-EFF8-10A39DB37A52}.Release|Any CPU.Build.0 = Release|Any CPU
{A62B36C2-E9DE-B992-0779-F5FCF5968986}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A62B36C2-E9DE-B992-0779-F5FCF5968986}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A62B36C2-E9DE-B992-0779-F5FCF5968986}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A62B36C2-E9DE-B992-0779-F5FCF5968986}.Release|Any CPU.Build.0 = Release|Any CPU
{21EF11C5-27DC-3D88-B027-9A4B6F36BAE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{21EF11C5-27DC-3D88-B027-9A4B6F36BAE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{21EF11C5-27DC-3D88-B027-9A4B6F36BAE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -36,14 +46,10 @@ Global
{B83AC090-25E2-7BA3-4612-A18BBB80B3E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B83AC090-25E2-7BA3-4612-A18BBB80B3E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B83AC090-25E2-7BA3-4612-A18BBB80B3E6}.Release|Any CPU.Build.0 = Release|Any CPU
{29B684F0-E616-CD9C-EFF8-10A39DB37A52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{29B684F0-E616-CD9C-EFF8-10A39DB37A52}.Debug|Any CPU.Build.0 = Debug|Any CPU
{29B684F0-E616-CD9C-EFF8-10A39DB37A52}.Release|Any CPU.ActiveCfg = Release|Any CPU
{29B684F0-E616-CD9C-EFF8-10A39DB37A52}.Release|Any CPU.Build.0 = Release|Any CPU
{A62B36C2-E9DE-B992-0779-F5FCF5968986}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A62B36C2-E9DE-B992-0779-F5FCF5968986}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A62B36C2-E9DE-B992-0779-F5FCF5968986}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A62B36C2-E9DE-B992-0779-F5FCF5968986}.Release|Any CPU.Build.0 = Release|Any CPU
{7D8742A4-0DFC-5667-0A98-3CA4312F9253}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D8742A4-0DFC-5667-0A98-3CA4312F9253}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D8742A4-0DFC-5667-0A98-3CA4312F9253}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D8742A4-0DFC-5667-0A98-3CA4312F9253}.Release|Any CPU.Build.0 = Release|Any CPU
{E389FCA7-CA14-82FB-7D67-C13788BEE74A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E389FCA7-CA14-82FB-7D67-C13788BEE74A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E389FCA7-CA14-82FB-7D67-C13788BEE74A}.Release|Any CPU.ActiveCfg = Release|Any CPU

View file

@ -0,0 +1,2 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/UserDictionary/Words/=Hardpoint/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View file

@ -26,7 +26,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Temp\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2018_4_17;UNITY_2018_4;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_TEXTURE_STREAMING;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_VIDEO;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER</DefineConstants>
<DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2018_4_17;UNITY_2018_4;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_TEXTURE_STREAMING;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_VIDEO;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoWarn>0169</NoWarn>
@ -60,8 +60,11 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\Scripts\Editor\DatabaseEditor.cs" />
<Compile Include="Assets\Scripts\Editor\DatabaseInspector.cs" />
<Compile Include="Assets\Scripts\Editor\DatabaseView.cs" />
<Compile Include="Assets\Scripts\Editor\EditorDispatch.cs" />
<Compile Include="Assets\Scripts\Editor\GalaxyEditor.cs" />
<Compile Include="Assets\Scripts\Editor\SerializerTestWindow.cs" />
<Compile Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Editor\Attributes\BaseAttribute.cs" />
<Compile Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Editor\Attributes\FieldDrawerAttribute.cs" />
<Compile Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Editor\Attributes\IAttribute.cs" />
@ -114,19 +117,6 @@
<Compile Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Editor\Utility\EditorDrawUtility.cs" />
<Compile Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Editor\Utility\IOUtility.cs" />
<Compile Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Editor\Utility\PropertyUtility.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\AccordionElementEditor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\BezierLineRendererEditor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\BoxSliderEditor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\CanvasGroupActivator.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\CUIBezierCurveEditor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\CUIGraphicEditor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\CUIImageEditor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\CUITextEditor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\NonDrawingGraphicEditor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\ReadOnlyDrawer.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\TextPicEditor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\uGUITools.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Editor\UIExtensionsMenuOptions.cs" />
<None Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Editor\CodeGeneration\Templates\FieldDrawerDatabaseTemplate.txt" />
<None Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Editor\CodeGeneration\Templates\MethodDrawerDatabaseTemplate.txt" />
<None Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Editor\CodeGeneration\Templates\PropertyValidatorDatabaseTemplate.txt" />
@ -141,15 +131,15 @@
<Reference Include="Unity.PackageManagerUI.Editor">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.TextMeshPro.dll</HintPath>
</Reference>
<Reference Include="Unity.Mathematics">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.dll</HintPath>
</Reference>
<Reference Include="Unity.Mathematics.Editor">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.TextMeshPro.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AIModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll</HintPath>
</Reference>
@ -384,6 +374,9 @@
<Reference Include="UnityEditor.WindowsStandalone.Extensions">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/PlaybackEngines/windowsstandalonesupport/UnityEditor.WindowsStandalone.Extensions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.SqlServer.Types">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Microsoft.SqlServer.Types.dll</HintPath>
</Reference>
<Reference Include="System.Buffers">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/System.Buffers.dll</HintPath>
</Reference>
@ -396,20 +389,32 @@
<Reference Include="System.Threading.Tasks.Extensions">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="JetBrains.Rider.Unity.Editor.Plugin.Repacked">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Google.Protobuf/lib/net45/Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="Grpc.Core">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Grpc.Core/lib/net45/Grpc.Core.dll</HintPath>
</Reference>
<Reference Include="Grpc.Core.Api">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Grpc.Core.Api/lib/net45/Grpc.Core.Api.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Google.Protobuf/lib/net45/Google.Protobuf.dll</HintPath>
<Reference Include="RethinkDb.Driver">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/RethinkDb.Driver.dll</HintPath>
</Reference>
<Reference Include="JetBrains.Rider.Unity.Editor.Plugin.Repacked">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll</HintPath>
<Reference Include="RethinkDb.Driver.Linq">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/RethinkDb.Driver.Linq.dll</HintPath>
</Reference>
<Reference Include="Microsoft.SqlServer.Types">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Microsoft.SqlServer.Types.dll</HintPath>
<Reference Include="Newtonsoft.Json">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Remotion.Linq">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll</HintPath>
</Reference>
<Reference Include="mscorlib">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll</HintPath>
@ -767,6 +772,10 @@
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="Assembly-CSharp-firstpass.csproj">
<Project>{7D8742A4-0DFC-5667-0A98-3CA4312F9253}</Project>
<Name>Assembly-CSharp-firstpass</Name>
</ProjectReference>
<ProjectReference Include="Assembly-CSharp.csproj">
<Project>{29B684F0-E616-CD9C-EFF8-10A39DB37A52}</Project>
<Name>Assembly-CSharp</Name>

View file

@ -0,0 +1,715 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LangVersion>latest</LangVersion>
<ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<_TargetFrameworkDirectories>non_empty_path_generated_by_rider_editor_plugin</_TargetFrameworkDirectories>
<_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_rider_editor_plugin</_FullFrameworkReferenceAssemblyPaths>
<DisableHandlePackageFileConflicts>true</DisableHandlePackageFileConflicts>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>10.0.20506</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<RootNamespace></RootNamespace>
<ProjectGuid>{7D8742A4-0DFC-5667-0A98-3CA4312F9253}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<AssemblyName>Assembly-CSharp-firstpass</AssemblyName>
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<BaseDirectory>.</BaseDirectory>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Temp\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2018_4_17;UNITY_2018_4;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_TEXTURE_STREAMING;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_VIDEO;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoWarn>0169</NoWarn>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>Temp\bin\Release\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoWarn>0169</NoWarn>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup>
<NoConfig>true</NoConfig>
<NoStdLib>true</NoStdLib>
<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
<ImplicitlyExpandNETStandardFacades>false</ImplicitlyExpandNETStandardFacades>
<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
</PropertyGroup>
<ItemGroup>
<Reference Include="UnityEngine">
<HintPath>C:\Program Files\Unity\Hub\Editor\2018.4.17f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEditor">
<HintPath>C:\Program Files\Unity\Hub\Editor\2018.4.17f1\Editor\Data\Managed/UnityEditor.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp">
<HintPath>C:\Program Files\Unity\Hub\Editor\2018.4.17f1\Editor\Data\MonoBleedingEdge\lib\mono\4.7.1-api\Microsoft.CSharp.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Source\Awaiters.cs" />
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Source\AwaitExtensions.cs" />
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Source\IEnumeratorAwaitExtensions.cs" />
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Source\Internal\AsyncCoroutineRunner.cs" />
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Source\Internal\SyncContextUtil.cs" />
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Source\TaskExtensions.cs" />
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Source\WaitForBackgroundThread.cs" />
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Source\WaitForUpdate.cs" />
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Tests\AsyncUtilTests.cs" />
<Compile Include="Assets\Plugins\AsyncAwaitUtil\Tests\Util\TestButtonHandler.cs" />
<None Include="Assets\Plugins\Grpc.Core\lib\net45\Grpc.Core.xml" />
<None Include="Assets\Plugins\Grpc.Core.Api\lib\net45\Grpc.Core.Api.xml" />
<Reference Include="Unity.TextMeshPro.Editor">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.PackageManagerUI.Editor">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Mathematics">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.dll</HintPath>
</Reference>
<Reference Include="Unity.Mathematics.Editor">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.TextMeshPro.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AIModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ARModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AccessibilityModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AnimationModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AssetBundleModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AudioModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.BaselibModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.BaselibModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClothModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterInputModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ClusterRendererModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CrashReportingModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.DirectorModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.FileSystemHttpModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.FileSystemHttpModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GameCenterModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GridModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.HotReloadModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.IMGUIModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ImageConversionModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.InputModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.JSONSerializeModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.LocalizationModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ParticleSystemModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PerformanceReportingModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Physics2DModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ProfilerModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.ScreenCaptureModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SharedInternalsModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteMaskModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpriteShapeModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.StreamingModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.StyleSheetsModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.StyleSheetsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SubstanceModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TLSModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TerrainPhysicsModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextCoreModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TextRenderingModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TilemapModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TimelineModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.TimelineModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIElementsModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UNETModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UmbraModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityAnalyticsModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityConnectModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityTestProtocolModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAssetBundleModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAudioModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestTextureModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestWWWModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VFXModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VRModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VehiclesModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.VideoModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.WindModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.XRModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll</HintPath>
</Reference>
<Reference Include="Unity.Locator">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/Unity.Locator.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TestRunner">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/UnityExtensions/Unity/TestRunner/UnityEngine.TestRunner.dll</HintPath>
</Reference>
<Reference Include="nunit.framework">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/UnityExtensions/Unity/TestRunner/net35/unity-custom/nunit.framework.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Timeline">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/UnityExtensions/Unity/Timeline/RuntimeEditor/UnityEngine.Timeline.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Networking">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.GoogleAudioSpatializer">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/RuntimeEditor/UnityEngine.GoogleAudioSpatializer.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.SpatialTracking">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/RuntimeEditor/UnityEngine.SpatialTracking.dll</HintPath>
</Reference>
<Reference Include="Microsoft.SqlServer.Types">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Microsoft.SqlServer.Types.dll</HintPath>
</Reference>
<Reference Include="System.Buffers">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Memory">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Google.Protobuf/lib/net45/Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="Grpc.Core">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Grpc.Core/lib/net45/Grpc.Core.dll</HintPath>
</Reference>
<Reference Include="Grpc.Core.Api">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Grpc.Core.Api/lib/net45/Grpc.Core.Api.dll</HintPath>
</Reference>
<Reference Include="RethinkDb.Driver">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/RethinkDb.Driver.dll</HintPath>
</Reference>
<Reference Include="RethinkDb.Driver.Linq">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/RethinkDb.Driver.Linq.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Remotion.Linq">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll</HintPath>
</Reference>
<Reference Include="mscorlib">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll</HintPath>
</Reference>
<Reference Include="System">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll</HintPath>
</Reference>
<Reference Include="System.Core">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll</HintPath>
</Reference>
<Reference Include="System.Xml">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll</HintPath>
</Reference>
<Reference Include="System.Numerics">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll</HintPath>
</Reference>
<Reference Include="System.Numerics.Vectors">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll</HintPath>
</Reference>
<Reference Include="System.Data">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Win32.Primitives">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll</HintPath>
</Reference>
<Reference Include="netstandard">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll</HintPath>
</Reference>
<Reference Include="System.AppContext">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Concurrent">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll</HintPath>
</Reference>
<Reference Include="System.Collections">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll</HintPath>
</Reference>
<Reference Include="System.Collections.NonGeneric">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Specialized">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.Annotations">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.EventBasedAsync">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.Primitives">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.TypeConverter">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll</HintPath>
</Reference>
<Reference Include="System.Console">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll</HintPath>
</Reference>
<Reference Include="System.Data.Common">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.Contracts">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.Debug">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.FileVersionInfo">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.Process">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.StackTrace">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.TextWriterTraceListener">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.Tools">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.TraceSource">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll</HintPath>
</Reference>
<Reference Include="System.Drawing.Primitives">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Dynamic.Runtime">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll</HintPath>
</Reference>
<Reference Include="System.Globalization.Calendars">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll</HintPath>
</Reference>
<Reference Include="System.Globalization">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll</HintPath>
</Reference>
<Reference Include="System.Globalization.Extensions">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression.ZipFile">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll</HintPath>
</Reference>
<Reference Include="System.IO">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll</HintPath>
</Reference>
<Reference Include="System.IO.FileSystem">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll</HintPath>
</Reference>
<Reference Include="System.IO.FileSystem.DriveInfo">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll</HintPath>
</Reference>
<Reference Include="System.IO.FileSystem.Primitives">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.IO.FileSystem.Watcher">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll</HintPath>
</Reference>
<Reference Include="System.IO.IsolatedStorage">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll</HintPath>
</Reference>
<Reference Include="System.IO.MemoryMappedFiles">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll</HintPath>
</Reference>
<Reference Include="System.IO.Pipes">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll</HintPath>
</Reference>
<Reference Include="System.IO.UnmanagedMemoryStream">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll</HintPath>
</Reference>
<Reference Include="System.Linq">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll</HintPath>
</Reference>
<Reference Include="System.Linq.Expressions">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll</HintPath>
</Reference>
<Reference Include="System.Linq.Parallel">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll</HintPath>
</Reference>
<Reference Include="System.Linq.Queryable">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http.Rtc">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll</HintPath>
</Reference>
<Reference Include="System.Net.NameResolution">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll</HintPath>
</Reference>
<Reference Include="System.Net.NetworkInformation">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll</HintPath>
</Reference>
<Reference Include="System.Net.Ping">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll</HintPath>
</Reference>
<Reference Include="System.Net.Primitives">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Net.Requests">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll</HintPath>
</Reference>
<Reference Include="System.Net.Security">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll</HintPath>
</Reference>
<Reference Include="System.Net.Sockets">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll</HintPath>
</Reference>
<Reference Include="System.Net.WebHeaderCollection">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll</HintPath>
</Reference>
<Reference Include="System.Net.WebSockets.Client">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll</HintPath>
</Reference>
<Reference Include="System.Net.WebSockets">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll</HintPath>
</Reference>
<Reference Include="System.ObjectModel">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll</HintPath>
</Reference>
<Reference Include="System.Reflection">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Emit">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Emit.ILGeneration">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Emit.Lightweight">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Extensions">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Primitives">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Resources.Reader">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll</HintPath>
</Reference>
<Reference Include="System.Resources.ResourceManager">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll</HintPath>
</Reference>
<Reference Include="System.Resources.Writer">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.VisualC">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll</HintPath>
</Reference>
<Reference Include="System.Runtime">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Extensions">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Handles">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices.WindowsRuntime">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Numerics">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization.Formatters">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization.Json">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization.Primitives">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization.Xml">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll</HintPath>
</Reference>
<Reference Include="System.Security.Claims">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Csp">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll</HintPath>
</Reference>
<Reference Include="System.Security.Principal">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll</HintPath>
</Reference>
<Reference Include="System.Security.SecureString">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.Duplex">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.Http">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.NetTcp">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.Primitives">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.Security">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll</HintPath>
</Reference>
<Reference Include="System.Text.Encoding">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll</HintPath>
</Reference>
<Reference Include="System.Text.Encoding.Extensions">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Text.RegularExpressions">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll</HintPath>
</Reference>
<Reference Include="System.Threading">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Overlapped">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Parallel">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Thread">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll</HintPath>
</Reference>
<Reference Include="System.Threading.ThreadPool">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Timer">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml.ReaderWriter">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll</HintPath>
</Reference>
<Reference Include="System.Xml.XDocument">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll</HintPath>
</Reference>
<Reference Include="System.Xml.XmlDocument">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll</HintPath>
</Reference>
<Reference Include="System.Xml.XmlSerializer">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll</HintPath>
</Reference>
<Reference Include="System.Xml.XPath">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll</HintPath>
</Reference>
<Reference Include="System.Xml.XPath.XDocument">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll</HintPath>
</Reference>
<Reference Include="UnityScript">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.dll</HintPath>
</Reference>
<Reference Include="UnityScript.Lang">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.Lang.dll</HintPath>
</Reference>
<Reference Include="Boo.Lang">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/Boo.Lang.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="Economy.Shared.Unity.csproj">
<Project>{A62B36C2-E9DE-B992-0779-F5FCF5968986}</Project>
<Name>Economy.Shared.Unity</Name>
</ProjectReference>
<ProjectReference Include="MagicOnion.csproj">
<Project>{8646472B-6F4E-DCCA-A987-99E48366FF7F}</Project>
<Name>MagicOnion</Name>
</ProjectReference>
<ProjectReference Include="MagicOnion.Unity.csproj">
<Project>{B83AC090-25E2-7BA3-4612-A18BBB80B3E6}</Project>
<Name>MagicOnion.Unity</Name>
</ProjectReference>
<ProjectReference Include="MagicOnion.Abstractions.csproj">
<Project>{7A90811F-E771-FAB4-C8B5-EA6DF36C4D19}</Project>
<Name>MagicOnion.Abstractions</Name>
</ProjectReference>
<ProjectReference Include="MessagePack.csproj">
<Project>{21EF11C5-27DC-3D88-B027-9A4B6F36BAE4}</Project>
<Name>MessagePack</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View file

@ -26,7 +26,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Temp\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2018_4_17;UNITY_2018_4;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_TEXTURE_STREAMING;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_VIDEO;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER</DefineConstants>
<DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2018_4_17;UNITY_2018_4;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_TEXTURE_STREAMING;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_VIDEO;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoWarn>0169</NoWarn>
@ -60,18 +60,12 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\Scripts\Behaviors.cs" />
<Compile Include="Assets\Scripts\ChatComponent.cs" />
<Compile Include="Assets\Scripts\ColorButton.cs" />
<Compile Include="Assets\Scripts\Database.cs" />
<Compile Include="Assets\Scripts\DatabaseItems.cs" />
<Compile Include="Assets\Scripts\Extensions.cs" />
<Compile Include="Assets\Scripts\Galaxy.cs" />
<Compile Include="Assets\Scripts\Generated\MagicOnion.Generated.cs" />
<Compile Include="Assets\Scripts\Generated\MessagePack.Generated.cs" />
<Compile Include="Assets\Scripts\Icons.cs" />
<Compile Include="Assets\Scripts\InitialSettings.cs" />
<Compile Include="Assets\Scripts\ItemInstance.cs" />
<Compile Include="Assets\Scripts\MarkovNameGenerator.cs" />
<Compile Include="Assets\Scripts\NIH\LinqFaster\Aggregate.cs" />
<Compile Include="Assets\Scripts\NIH\LinqFaster\AnyAll.cs" />
@ -151,12 +145,9 @@
<Compile Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Core\ValidatorAttributes\RequiredAttribute.cs" />
<Compile Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Core\ValidatorAttributes\ValidateInputAttribute.cs" />
<Compile Include="Assets\Scripts\NIH\NaughtyAttributes\Scripts\Core\ValidatorAttributes\ValidatorAttribute.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Examples\Sample01_ObservableWWW.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Examples\Sample02_ObservableTriggers.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Examples\Sample03_GameObjectAsObservable.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Examples\Sample04_ConvertFromUnityCallback.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Examples\Sample05_ConvertFromCoroutine.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Examples\Sample06_ConvertToCoroutine.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Examples\Sample07_OrchestratIEnumerator.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Examples\Sample08_DetectDoubleClick.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Examples\Sample09_EventHandling.cs" />
@ -326,7 +317,6 @@
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityEngineBridge\MainThreadScheduler.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityEngineBridge\Observable.Unity.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityEngineBridge\ObservableMonoBehaviour.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityEngineBridge\ObservableWWW.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityEngineBridge\ObserveExtensions.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityEngineBridge\Operators\BatchFrame.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityEngineBridge\Operators\DelayFrame.cs" />
@ -394,224 +384,42 @@
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityEngineBridge\YieldInstructionCache.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityWinRTBridge\Thread.cs" />
<Compile Include="Assets\Scripts\NIH\UniRx\Scripts\UnityWinRTBridge\ThreadPoolScheduler_UnityWinRT.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\ComboBox\ComboBoxChanged.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\Cooldown\CooldownEffect_Image.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\Cooldown\CooldownEffect_SAUIM.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\01_Basic\Example01CellDto.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\01_Basic\Example01Scene.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\01_Basic\Example01ScrollView.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\01_Basic\Example01ScrollViewCell.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\02_CellEventHandling\Example02CellDto.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\02_CellEventHandling\Example02Scene.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\02_CellEventHandling\Example02ScrollView.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\02_CellEventHandling\Example02ScrollViewCell.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\02_CellEventHandling\Example02ScrollViewContext.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\03_InfiniteScroll\Example03CellDto.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\03_InfiniteScroll\Example03Scene.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\03_InfiniteScroll\Example03ScrollView.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\03_InfiniteScroll\Example03ScrollViewCell.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\FancyScrollView\03_InfiniteScroll\Example03ScrollViewContext.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\HSS-VSS-ScrollSnap\PaginationScript.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\HSS-VSS-ScrollSnap\UpdateScrollSnap.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\MenuExample\Scripts\Menus\AwesomeMenu.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\MenuExample\Scripts\Menus\GameMenu.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\MenuExample\Scripts\Menus\MainMenu.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\MenuExample\Scripts\Menus\OptionsMenu.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\MenuExample\Scripts\Menus\PauseMenu.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\RadialSlider\UpdateRadialValue.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\TextEffects\AnimateEffects.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\TextEffects\testHref.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\UILineRenderer\LineRendererOrbit.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\UILineRenderer\TestAddingPoints.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Examples\UIVerticalScrollerDemo\Scripts\ScrollingCalendar.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\Accordion\Accordion.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\Accordion\AccordionElement.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\Accordion\Tweening\FloatTween.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\Accordion\Tweening\ITweenValue.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\Accordion\Tweening\TweenRunner.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\BoxSlider.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\ColorImage.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\ColorLabel.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\ColorPickerControl.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\ColorPickerPresets.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\ColorPickerTester.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\ColorSlider.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\ColorSliderImage.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\ColorValues.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\Events\ColorChangedEvent.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\Events\HSVChangedEvent.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\HexColorField.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\HSVUtil.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\SVBoxSlider.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ColorPicker\TiltWindow.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ComboBox\AutoCompleteComboBox.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ComboBox\ComboBox.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ComboBox\DropDownList.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ComboBox\DropDownListButton.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ComboBox\DropDownListItem.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\CooldownButton.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\InputFocus.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\MultiTouchScrollRect.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\RadialSlider.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ReorderableList\ReorderableList.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ReorderableList\ReorderableListContent.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ReorderableList\ReorderableListDebug.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\ReorderableList\ReorderableListElement.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\RescalingPanels\RescaleDragPanel.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\RescalingPanels\RescalePanel.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\RescalingPanels\ResizePanel.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\SegmentedControl.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\SelectionBox\ExampleSelectable.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\SelectionBox\IBoxSelectable.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\SelectionBox\SelectionBox.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\Stepper.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\TextPic.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Controls\UI_Knob.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\BestFitOutline.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\CurlyUI\CUIBezierCurve.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\CurlyUI\CUIGraphic.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\CurlyUI\CUIImage.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\CurlyUI\CUIMisc.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\CurlyUI\CUIText.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\CurvedText.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\CylinderText.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\Gradient.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\Gradient2.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\LetterSpacing.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\MonoSpacing.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\NicerOutline.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\RaycastMask.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\ShaderEffects\UIAdditiveEffect.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\ShaderEffects\UIImageCrop.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\ShaderEffects\UILinearDodgeEffect.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\ShaderEffects\UIMultiplyEffect.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\ShaderEffects\UIScreenEffect.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\ShaderEffects\UISoftAdditiveEffect.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\ShineEffect.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\ShineEffector.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\SoftMaskScript.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\UIFlippable.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Effects\UIParticleSystem.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\InputModules\AimerInputModule.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\InputModules\GamePadInputModule.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\CurvedLayout.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\FancyScrollView.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\FancyScrollViewCell.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\FlowLayoutGroup.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\HorizontalScrollSnap.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\IScrollSnap.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\RadialLayout.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\ScrollPositionController.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\ScrollSnap.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\ScrollSnapBase.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\ScrollSnapScrollbarHelper.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\TableLayoutGroup.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\TileSizeFitter.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\UIVerticalScroller.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Layout\VerticalScrollSnap.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\MenuSystem\Menu.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\MenuSystem\MenuManager.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\MenuSystem\SimpleMenu.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Primitives\DiamondGraph.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Primitives\UICircle.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Primitives\UICornerCut.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Primitives\UIGridRenderer.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Primitives\UILineRenderer.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Primitives\UILineTextureRenderer.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Primitives\UIPolygon.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Primitives\UIPrimitiveBase.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\TabNavigationHelper.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\ToolTips\BoundTooltip\BoundTooltipItem.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\ToolTips\BoundTooltip\BoundTooltipTrigger.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\ToolTips\HoverTooltip.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\ToolTips\ToolTip.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\UIWindowBase.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\BezierPath.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\CableCurve.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\Circle.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\CLZF2.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\DragCorrector.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\ExtensionsToggle.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\ExtensionsToggleGroup.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\InputFieldEnterSubmit.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\NonDrawingGraphic.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\PaginationManager.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\PPIViewer.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\ReadOnlyAttribute.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\ReturnKeyTriggersButton.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\ScrollConflictManager.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\ScrollRectEx.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\ScrollRectExtensions.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\ScrollRectLinker.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\ScrollRectTweener.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\SelectableScaler.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\SetPropertyUtility.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\switchToRectTransform.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\TestCompression.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\UI_InfiniteScroll.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\UI_ScrollRectOcclusion.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\UI_TweenScale.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\UIExtensionMethods.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\UIHighlightable.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\UILineConnector.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\UIScrollToSelection.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\UIScrollToSelectionXY.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\Utilities\UISelectableExtension.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\VR Extensions\VRCursor.cs" />
<Compile Include="Assets\Scripts\NIH\unity-ui-extensions\Scripts\VR Extensions\VRInputModule.cs" />
<Compile Include="Assets\Scripts\NIH\XKCDColors.cs" />
<Compile Include="Assets\Scripts\Orbit.cs" />
<Compile Include="Assets\Scripts\PropertiesPanel.cs" />
<Compile Include="Assets\Scripts\Prototype.cs" />
<Compile Include="Assets\Scripts\Targetable.cs" />
<Compile Include="Assets\Scripts\UnityExtensions.cs" />
<Compile Include="Assets\Scripts\UnityFormatters.cs" />
<Compile Include="Assets\Scripts\ZoneManager.cs" />
<Compile Include="Assets\Scripts\ZoneRenderer.cs" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UIAdditive.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UI Particle AddSmooth.shader" />
<None Include="Assets\Scripts\NIH\GPU Noise\ClassicNoise3D.cginc" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UI Particle Premultiply Blend.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UISoftAdditive.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UIParticleHidden.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\SoftMaskShader.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UI Particle Add.shader" />
<None Include="Assets\Shaders\SimplexBrush.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UI Particle Multiply.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UI Particle Alpha Blend.shader" />
<None Include="Assets\Shaders\CubicPulseBrush.shader" />
<None Include="Assets\Shaders\PowerBrush.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UIImageCrop.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UILinearDodge.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UI Particle VertexLit Blended.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UI Particle AddMultiply.shader" />
<None Include="Assets\Shaders\GalaxyMap.shader" />
<None Include="Assets\Scripts\NIH\GPU Noise\SimplexNoiseGrad2D.cginc" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UI Particle Blend.shader" />
<None Include="Assets\Scripts\NIH\UniRx\ReadMe.txt" />
<None Include="Assets\Scripts\NIH\GPU Noise\SimplexNoise2D.cginc" />
<None Include="Assets\Shaders\Isolines.shader" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UIMultiply.shader" />
<None Include="Assets\Scripts\NIH\GPU Noise\ClassicNoise2D.cginc" />
<None Include="Assets\Scripts\NIH\LinqFaster\readme.txt" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UIScreen.shader" />
<None Include="Assets\Scripts\NIH\GPU Noise\SimplexNoise3D.cginc" />
<None Include="Assets\Scripts\NIH\GPU Noise\SimplexNoiseGrad3D.cginc" />
<None Include="Assets\Scripts\NIH\unity-ui-extensions\Shaders\UI Particle MultiplyDouble.shader" />
<Reference Include="Unity.TextMeshPro.Editor">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.PackageManagerUI.Editor">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.TextMeshPro.dll</HintPath>
</Reference>
<Reference Include="Unity.Mathematics">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.dll</HintPath>
</Reference>
<Reference Include="Unity.Mathematics.Editor">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Library/ScriptAssemblies/Unity.TextMeshPro.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AIModule">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll</HintPath>
</Reference>
@ -813,6 +621,9 @@
<Reference Include="UnityEngine.SpatialTracking">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/RuntimeEditor/UnityEngine.SpatialTracking.dll</HintPath>
</Reference>
<Reference Include="Microsoft.SqlServer.Types">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Microsoft.SqlServer.Types.dll</HintPath>
</Reference>
<Reference Include="System.Buffers">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/System.Buffers.dll</HintPath>
</Reference>
@ -825,17 +636,29 @@
<Reference Include="System.Threading.Tasks.Extensions">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Google.Protobuf/lib/net45/Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="Grpc.Core">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Grpc.Core/lib/net45/Grpc.Core.dll</HintPath>
</Reference>
<Reference Include="Grpc.Core.Api">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Grpc.Core.Api/lib/net45/Grpc.Core.Api.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Google.Protobuf/lib/net45/Google.Protobuf.dll</HintPath>
<Reference Include="RethinkDb.Driver">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/RethinkDb.Driver.dll</HintPath>
</Reference>
<Reference Include="Microsoft.SqlServer.Types">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Microsoft.SqlServer.Types.dll</HintPath>
<Reference Include="RethinkDb.Driver.Linq">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/RethinkDb.Driver.Linq.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Remotion.Linq">
<HintPath>C:/Users/rwvens/Documents/GitHub/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll</HintPath>
</Reference>
<Reference Include="mscorlib">
<HintPath>C:/Program Files/Unity/Hub/Editor/2018.4.17f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll</HintPath>
@ -1193,6 +1016,10 @@
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="Assembly-CSharp-firstpass.csproj">
<Project>{7D8742A4-0DFC-5667-0A98-3CA4312F9253}</Project>
<Name>Assembly-CSharp-firstpass</Name>
</ProjectReference>
<ProjectReference Include="Economy.Shared.Unity.csproj">
<Project>{A62B36C2-E9DE-B992-0779-F5FCF5968986}</Project>
<Name>Economy.Shared.Unity</Name>

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 05be5754bcbeaa5458fe78bb55825ba4
guid: 52b67ccc32714c74d947bcf1423e2ca5
folderAsset: yes
DefaultImporter:
externalObjects: {}

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 46d891d9b63592344ae73ff9c4cedbf1
folderAsset: yes
timeCreated: 1506242025
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 20766c9394fe27140b3389473dccd660
timeCreated: 1506503311
licenseType: Store
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: bc264b4d34aebb045b2fb00cce833d49
folderAsset: yes
timeCreated: 1506166710
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 B

View file

@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: c2b77282ad285f34dacea481a4ec44c4
timeCreated: 1494955300
licenseType: Free
guid: 8f2198707218a564da2a9827a697cc2a
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

View file

@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 3dc06f5aa2fbb624fbec6c044cbcaa03
timeCreated: 1498408627
licenseType: Free
guid: 850f19a5487609c4dbed7ca6131d9879
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:

View file

@ -0,0 +1,186 @@
<!DOCTYPE html>
<!-- saved from url=(0070)chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/cmdline_frame.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/cmdline_frame.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/cvimrc_parser.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/session.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/utils.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/dom.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/hints.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/bookmarks.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/keys.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/clipboard.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/complete.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/mappings.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/find.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/cursor.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/status.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/hud.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/visual.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/command.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/scroll.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/search.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/frames.js"></script>
<script src="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/messenger.js"></script>
<link rel="stylesheet" href="chrome-extension://ihlenndgcmojhcghmfjfneahoeklbjjh/content_scripts/main.css">
<style>#cVim-command-bar, #cVim-command-bar-mode, #cVim-command-bar-input, #cVim-command-bar-search-results,
.cVim-completion-item, .cVim-completion-item .cVim-full, .cVim-completion-item .cVim-left,
.cVim-completion-item .cVim-right {
font-family: Helvetica, Helvetica Neue, Neue, sans-serif, monospace, Arial;
font-size: 10pt !important;
-webkit-font-smoothing: antialiased !important;
}
#cVim-command-bar {
position: fixed;
z-index: 2147483646;
background-color: #1b1d1e;
color: #bbb;
display: none;
box-sizing: content-box;
box-shadow: 0 3px 3px rgba(0,0,0,0.4);
left: 0;
width: 100%;
height: 20px;
}
#cVim-command-bar-mode {
display: inline-block;
vertical-align: middle;
box-sizing: border-box;
padding-left: 2px;
height: 100%;
width: 10px;
padding-top: 2px;
color: #888;
}
#cVim-command-bar-input {
background-color: #1b1d1e;
color: #bbb;
height: 100%;
right: 0;
top: 0;
width: calc(100% - 10px);
position: absolute;
}
#cVim-command-bar-search-results {
position: fixed;
width: 100%;
overflow: hidden;
z-index: 2147483647;
left: 0;
box-shadow: 0 3px 3px rgba(0,0,0,0.4);
background-color: #1c1c1c;
}
.cVim-completion-item, .cVim-completion-item .cVim-full, .cVim-completion-item .cVim-left, .cVim-completion-item .cVim-right {
text-overflow: ellipsis;
padding: 1px;
display: inline-block;
box-sizing: border-box;
vertical-align: middle;
overflow: hidden;
white-space: nowrap;
}
.cVim-completion-item:nth-child(even) {
background-color: #1f1f1f;
}
.cVim-completion-item {
width: 100%; left: 0;
color: #bcbcbc;
}
.cVim-completion-item[active] {
width: 100%; left: 0;
color: #1b1d1e;
background-color: #f1f1f1;
}
.cVim-completion-item[active] span {
color: #1b1d1e;
}
.cVim-completion-item .cVim-left {
color: #fff;
width: 37%;
}
.cVim-completion-item .cVim-right {
font-style: italic;
color: #888;
width: 57%;
}
#cVim-link-container, .cVim-link-hint,
#cVim-hud, #cVim-status-bar {
font-family: Helvetica, Helvetica Neue, Neue, sans-serif, monospace, Arial;
font-size: 10pt !important;
-webkit-font-smoothing: antialiased !important;
}
#cVim-link-container {
position: absolute;
pointer-events: none;
width: 100%; left: 0;
height: 100%; top: 0;
z-index: 2147483647;
}
.cVim-link-hint {
position: absolute;
color: #302505 !important;
background-color: #ffd76e !important;
border-radius: 2px !important;
padding: 2px !important;
font-size: 8pt !important;
font-weight: 500 !important;
text-transform: uppercase !important;
border: 1px solid #ad810c;
display: inline-block !important;
vertical-align: middle !important;
text-align: center !important;
box-shadow: 2px 2px 1px rgba(0,0,0,0.25) !important;
}
.cVim-link-hint_match {
color: #777;
text-transform: uppercase !important;
}
#cVim-hud {
background-color: rgba(28,28,28,0.9);
position: fixed !important;
transition: right 0.2s ease-out;
z-index: 24724289;
}
#cVim-hud span {
padding: 2px;
padding-left: 4px;
padding-right: 4px;
color: #8f8f8f;
font-size: 10pt;
}
#cVim-frames-outline {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
right: 0;
z-index: 9999999999;
box-sizing: border-box;
border: 3px solid yellow;
}
</style></head>
<body>
</body><div id="cVim-status-bar" style="bottom: 0px;"></div><div id="cVim-command-bar" spellcheck="false" style="bottom: 0px;"><span id="cVim-command-bar-mode"></span><input type="text" id="cVim-command-bar-input"></div><div id="cVim-command-bar-search-results" style="bottom: 20px;"></div></html>

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 49ce8a667f92d7345b797e0c8bf12689
timeCreated: 1506503311
licenseType: Store
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1 @@
var addComment={moveForm:function(a,b,c,d){var e,f,g,h,i=this,j=i.I(a),k=i.I(c),l=i.I("cancel-comment-reply-link"),m=i.I("comment_parent"),n=i.I("comment_post_ID"),o=k.getElementsByTagName("form")[0];if(j&&k&&l&&m&&o){i.respondId=c,d=d||!1,i.I("wp-temp-form-div")||(e=document.createElement("div"),e.id="wp-temp-form-div",e.style.display="none",k.parentNode.insertBefore(e,k)),j.parentNode.insertBefore(k,j.nextSibling),n&&d&&(n.value=d),m.value=b,l.style.display="",l.onclick=function(){var a=addComment,b=a.I("wp-temp-form-div"),c=a.I(a.respondId);if(b&&c)return a.I("comment_parent").value="0",b.parentNode.insertBefore(c,b),b.parentNode.removeChild(b),this.style.display="none",this.onclick=null,!1};try{for(var p=0;p<o.elements.length;p++)if(f=o.elements[p],h=!1,"getComputedStyle"in window?g=window.getComputedStyle(f):document.documentElement.currentStyle&&(g=f.currentStyle),(f.offsetWidth<=0&&f.offsetHeight<=0||"hidden"===g.visibility)&&(h=!0),"hidden"!==f.type&&!f.disabled&&!h){f.focus();break}}catch(q){}return!1}},I:function(a){return document.getElementById(a)}};

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 15092c2a8d531934783c3262751ecde4
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a36d3fd7af8651e469d6b5a4bba54ad4
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,403 @@
@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;}
[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;}
.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;}
a [class^="icon-"],a [class*=" icon-"]{display:inline;}
[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;}
.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;}
.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;}
[class^="icon-"].hide,[class*=" icon-"].hide{display:none;}
.icon-muted{color:#eeeeee;}
.icon-light{color:#ffffff;}
.icon-dark{color:#333333;}
.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;}
.pull-right{float:right;}
.pull-left{float:left;}
[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;}
[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;}
[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;}
.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;}
.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;}
.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;}
.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;}
.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;}
.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;}
.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;}
.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;}
.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;}
.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;}
.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;}
.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;}
.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;}
.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;}
a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;}
@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);}
.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);}
.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);}
.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);}
.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);}
a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;}
.icon-glass:before{content:"\f000";}
.icon-music:before{content:"\f001";}
.icon-search:before{content:"\f002";}
.icon-envelope-alt:before{content:"\f003";}
.icon-heart:before{content:"\f004";}
.icon-star:before{content:"\f005";}
.icon-star-empty:before{content:"\f006";}
.icon-user:before{content:"\f007";}
.icon-film:before{content:"\f008";}
.icon-th-large:before{content:"\f009";}
.icon-th:before{content:"\f00a";}
.icon-th-list:before{content:"\f00b";}
.icon-ok:before{content:"\f00c";}
.icon-remove:before{content:"\f00d";}
.icon-zoom-in:before{content:"\f00e";}
.icon-zoom-out:before{content:"\f010";}
.icon-power-off:before,.icon-off:before{content:"\f011";}
.icon-signal:before{content:"\f012";}
.icon-gear:before,.icon-cog:before{content:"\f013";}
.icon-trash:before{content:"\f014";}
.icon-home:before{content:"\f015";}
.icon-file-alt:before{content:"\f016";}
.icon-time:before{content:"\f017";}
.icon-road:before{content:"\f018";}
.icon-download-alt:before{content:"\f019";}
.icon-download:before{content:"\f01a";}
.icon-upload:before{content:"\f01b";}
.icon-inbox:before{content:"\f01c";}
.icon-play-circle:before{content:"\f01d";}
.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";}
.icon-refresh:before{content:"\f021";}
.icon-list-alt:before{content:"\f022";}
.icon-lock:before{content:"\f023";}
.icon-flag:before{content:"\f024";}
.icon-headphones:before{content:"\f025";}
.icon-volume-off:before{content:"\f026";}
.icon-volume-down:before{content:"\f027";}
.icon-volume-up:before{content:"\f028";}
.icon-qrcode:before{content:"\f029";}
.icon-barcode:before{content:"\f02a";}
.icon-tag:before{content:"\f02b";}
.icon-tags:before{content:"\f02c";}
.icon-book:before{content:"\f02d";}
.icon-bookmark:before{content:"\f02e";}
.icon-print:before{content:"\f02f";}
.icon-camera:before{content:"\f030";}
.icon-font:before{content:"\f031";}
.icon-bold:before{content:"\f032";}
.icon-italic:before{content:"\f033";}
.icon-text-height:before{content:"\f034";}
.icon-text-width:before{content:"\f035";}
.icon-align-left:before{content:"\f036";}
.icon-align-center:before{content:"\f037";}
.icon-align-right:before{content:"\f038";}
.icon-align-justify:before{content:"\f039";}
.icon-list:before{content:"\f03a";}
.icon-indent-left:before{content:"\f03b";}
.icon-indent-right:before{content:"\f03c";}
.icon-facetime-video:before{content:"\f03d";}
.icon-picture:before{content:"\f03e";}
.icon-pencil:before{content:"\f040";}
.icon-map-marker:before{content:"\f041";}
.icon-adjust:before{content:"\f042";}
.icon-tint:before{content:"\f043";}
.icon-edit:before{content:"\f044";}
.icon-share:before{content:"\f045";}
.icon-check:before{content:"\f046";}
.icon-move:before{content:"\f047";}
.icon-step-backward:before{content:"\f048";}
.icon-fast-backward:before{content:"\f049";}
.icon-backward:before{content:"\f04a";}
.icon-play:before{content:"\f04b";}
.icon-pause:before{content:"\f04c";}
.icon-stop:before{content:"\f04d";}
.icon-forward:before{content:"\f04e";}
.icon-fast-forward:before{content:"\f050";}
.icon-step-forward:before{content:"\f051";}
.icon-eject:before{content:"\f052";}
.icon-chevron-left:before{content:"\f053";}
.icon-chevron-right:before{content:"\f054";}
.icon-plus-sign:before{content:"\f055";}
.icon-minus-sign:before{content:"\f056";}
.icon-remove-sign:before{content:"\f057";}
.icon-ok-sign:before{content:"\f058";}
.icon-question-sign:before{content:"\f059";}
.icon-info-sign:before{content:"\f05a";}
.icon-screenshot:before{content:"\f05b";}
.icon-remove-circle:before{content:"\f05c";}
.icon-ok-circle:before{content:"\f05d";}
.icon-ban-circle:before{content:"\f05e";}
.icon-arrow-left:before{content:"\f060";}
.icon-arrow-right:before{content:"\f061";}
.icon-arrow-up:before{content:"\f062";}
.icon-arrow-down:before{content:"\f063";}
.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";}
.icon-resize-full:before{content:"\f065";}
.icon-resize-small:before{content:"\f066";}
.icon-plus:before{content:"\f067";}
.icon-minus:before{content:"\f068";}
.icon-asterisk:before{content:"\f069";}
.icon-exclamation-sign:before{content:"\f06a";}
.icon-gift:before{content:"\f06b";}
.icon-leaf:before{content:"\f06c";}
.icon-fire:before{content:"\f06d";}
.icon-eye-open:before{content:"\f06e";}
.icon-eye-close:before{content:"\f070";}
.icon-warning-sign:before{content:"\f071";}
.icon-plane:before{content:"\f072";}
.icon-calendar:before{content:"\f073";}
.icon-random:before{content:"\f074";}
.icon-comment:before{content:"\f075";}
.icon-magnet:before{content:"\f076";}
.icon-chevron-up:before{content:"\f077";}
.icon-chevron-down:before{content:"\f078";}
.icon-retweet:before{content:"\f079";}
.icon-shopping-cart:before{content:"\f07a";}
.icon-folder-close:before{content:"\f07b";}
.icon-folder-open:before{content:"\f07c";}
.icon-resize-vertical:before{content:"\f07d";}
.icon-resize-horizontal:before{content:"\f07e";}
.icon-bar-chart:before{content:"\f080";}
.icon-twitter-sign:before{content:"\f081";}
.icon-facebook-sign:before{content:"\f082";}
.icon-camera-retro:before{content:"\f083";}
.icon-key:before{content:"\f084";}
.icon-gears:before,.icon-cogs:before{content:"\f085";}
.icon-comments:before{content:"\f086";}
.icon-thumbs-up-alt:before{content:"\f087";}
.icon-thumbs-down-alt:before{content:"\f088";}
.icon-star-half:before{content:"\f089";}
.icon-heart-empty:before{content:"\f08a";}
.icon-signout:before{content:"\f08b";}
.icon-linkedin-sign:before{content:"\f08c";}
.icon-pushpin:before{content:"\f08d";}
.icon-external-link:before{content:"\f08e";}
.icon-signin:before{content:"\f090";}
.icon-trophy:before{content:"\f091";}
.icon-github-sign:before{content:"\f092";}
.icon-upload-alt:before{content:"\f093";}
.icon-lemon:before{content:"\f094";}
.icon-phone:before{content:"\f095";}
.icon-unchecked:before,.icon-check-empty:before{content:"\f096";}
.icon-bookmark-empty:before{content:"\f097";}
.icon-phone-sign:before{content:"\f098";}
.icon-twitter:before{content:"\f099";}
.icon-facebook:before{content:"\f09a";}
.icon-github:before{content:"\f09b";}
.icon-unlock:before{content:"\f09c";}
.icon-credit-card:before{content:"\f09d";}
.icon-rss:before{content:"\f09e";}
.icon-hdd:before{content:"\f0a0";}
.icon-bullhorn:before{content:"\f0a1";}
.icon-bell:before{content:"\f0a2";}
.icon-certificate:before{content:"\f0a3";}
.icon-hand-right:before{content:"\f0a4";}
.icon-hand-left:before{content:"\f0a5";}
.icon-hand-up:before{content:"\f0a6";}
.icon-hand-down:before{content:"\f0a7";}
.icon-circle-arrow-left:before{content:"\f0a8";}
.icon-circle-arrow-right:before{content:"\f0a9";}
.icon-circle-arrow-up:before{content:"\f0aa";}
.icon-circle-arrow-down:before{content:"\f0ab";}
.icon-globe:before{content:"\f0ac";}
.icon-wrench:before{content:"\f0ad";}
.icon-tasks:before{content:"\f0ae";}
.icon-filter:before{content:"\f0b0";}
.icon-briefcase:before{content:"\f0b1";}
.icon-fullscreen:before{content:"\f0b2";}
.icon-group:before{content:"\f0c0";}
.icon-link:before{content:"\f0c1";}
.icon-cloud:before{content:"\f0c2";}
.icon-beaker:before{content:"\f0c3";}
.icon-cut:before{content:"\f0c4";}
.icon-copy:before{content:"\f0c5";}
.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";}
.icon-save:before{content:"\f0c7";}
.icon-sign-blank:before{content:"\f0c8";}
.icon-reorder:before{content:"\f0c9";}
.icon-list-ul:before{content:"\f0ca";}
.icon-list-ol:before{content:"\f0cb";}
.icon-strikethrough:before{content:"\f0cc";}
.icon-underline:before{content:"\f0cd";}
.icon-table:before{content:"\f0ce";}
.icon-magic:before{content:"\f0d0";}
.icon-truck:before{content:"\f0d1";}
.icon-pinterest:before{content:"\f0d2";}
.icon-pinterest-sign:before{content:"\f0d3";}
.icon-google-plus-sign:before{content:"\f0d4";}
.icon-google-plus:before{content:"\f0d5";}
.icon-money:before{content:"\f0d6";}
.icon-caret-down:before{content:"\f0d7";}
.icon-caret-up:before{content:"\f0d8";}
.icon-caret-left:before{content:"\f0d9";}
.icon-caret-right:before{content:"\f0da";}
.icon-columns:before{content:"\f0db";}
.icon-sort:before{content:"\f0dc";}
.icon-sort-down:before{content:"\f0dd";}
.icon-sort-up:before{content:"\f0de";}
.icon-envelope:before{content:"\f0e0";}
.icon-linkedin:before{content:"\f0e1";}
.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";}
.icon-legal:before{content:"\f0e3";}
.icon-dashboard:before{content:"\f0e4";}
.icon-comment-alt:before{content:"\f0e5";}
.icon-comments-alt:before{content:"\f0e6";}
.icon-bolt:before{content:"\f0e7";}
.icon-sitemap:before{content:"\f0e8";}
.icon-umbrella:before{content:"\f0e9";}
.icon-paste:before{content:"\f0ea";}
.icon-lightbulb:before{content:"\f0eb";}
.icon-exchange:before{content:"\f0ec";}
.icon-cloud-download:before{content:"\f0ed";}
.icon-cloud-upload:before{content:"\f0ee";}
.icon-user-md:before{content:"\f0f0";}
.icon-stethoscope:before{content:"\f0f1";}
.icon-suitcase:before{content:"\f0f2";}
.icon-bell-alt:before{content:"\f0f3";}
.icon-coffee:before{content:"\f0f4";}
.icon-food:before{content:"\f0f5";}
.icon-file-text-alt:before{content:"\f0f6";}
.icon-building:before{content:"\f0f7";}
.icon-hospital:before{content:"\f0f8";}
.icon-ambulance:before{content:"\f0f9";}
.icon-medkit:before{content:"\f0fa";}
.icon-fighter-jet:before{content:"\f0fb";}
.icon-beer:before{content:"\f0fc";}
.icon-h-sign:before{content:"\f0fd";}
.icon-plus-sign-alt:before{content:"\f0fe";}
.icon-double-angle-left:before{content:"\f100";}
.icon-double-angle-right:before{content:"\f101";}
.icon-double-angle-up:before{content:"\f102";}
.icon-double-angle-down:before{content:"\f103";}
.icon-angle-left:before{content:"\f104";}
.icon-angle-right:before{content:"\f105";}
.icon-angle-up:before{content:"\f106";}
.icon-angle-down:before{content:"\f107";}
.icon-desktop:before{content:"\f108";}
.icon-laptop:before{content:"\f109";}
.icon-tablet:before{content:"\f10a";}
.icon-mobile-phone:before{content:"\f10b";}
.icon-circle-blank:before{content:"\f10c";}
.icon-quote-left:before{content:"\f10d";}
.icon-quote-right:before{content:"\f10e";}
.icon-spinner:before{content:"\f110";}
.icon-circle:before{content:"\f111";}
.icon-mail-reply:before,.icon-reply:before{content:"\f112";}
.icon-github-alt:before{content:"\f113";}
.icon-folder-close-alt:before{content:"\f114";}
.icon-folder-open-alt:before{content:"\f115";}
.icon-expand-alt:before{content:"\f116";}
.icon-collapse-alt:before{content:"\f117";}
.icon-smile:before{content:"\f118";}
.icon-frown:before{content:"\f119";}
.icon-meh:before{content:"\f11a";}
.icon-gamepad:before{content:"\f11b";}
.icon-keyboard:before{content:"\f11c";}
.icon-flag-alt:before{content:"\f11d";}
.icon-flag-checkered:before{content:"\f11e";}
.icon-terminal:before{content:"\f120";}
.icon-code:before{content:"\f121";}
.icon-reply-all:before{content:"\f122";}
.icon-mail-reply-all:before{content:"\f122";}
.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";}
.icon-location-arrow:before{content:"\f124";}
.icon-crop:before{content:"\f125";}
.icon-code-fork:before{content:"\f126";}
.icon-unlink:before{content:"\f127";}
.icon-question:before{content:"\f128";}
.icon-info:before{content:"\f129";}
.icon-exclamation:before{content:"\f12a";}
.icon-superscript:before{content:"\f12b";}
.icon-subscript:before{content:"\f12c";}
.icon-eraser:before{content:"\f12d";}
.icon-puzzle-piece:before{content:"\f12e";}
.icon-microphone:before{content:"\f130";}
.icon-microphone-off:before{content:"\f131";}
.icon-shield:before{content:"\f132";}
.icon-calendar-empty:before{content:"\f133";}
.icon-fire-extinguisher:before{content:"\f134";}
.icon-rocket:before{content:"\f135";}
.icon-maxcdn:before{content:"\f136";}
.icon-chevron-sign-left:before{content:"\f137";}
.icon-chevron-sign-right:before{content:"\f138";}
.icon-chevron-sign-up:before{content:"\f139";}
.icon-chevron-sign-down:before{content:"\f13a";}
.icon-html5:before{content:"\f13b";}
.icon-css3:before{content:"\f13c";}
.icon-anchor:before{content:"\f13d";}
.icon-unlock-alt:before{content:"\f13e";}
.icon-bullseye:before{content:"\f140";}
.icon-ellipsis-horizontal:before{content:"\f141";}
.icon-ellipsis-vertical:before{content:"\f142";}
.icon-rss-sign:before{content:"\f143";}
.icon-play-sign:before{content:"\f144";}
.icon-ticket:before{content:"\f145";}
.icon-minus-sign-alt:before{content:"\f146";}
.icon-check-minus:before{content:"\f147";}
.icon-level-up:before{content:"\f148";}
.icon-level-down:before{content:"\f149";}
.icon-check-sign:before{content:"\f14a";}
.icon-edit-sign:before{content:"\f14b";}
.icon-external-link-sign:before{content:"\f14c";}
.icon-share-sign:before{content:"\f14d";}
.icon-compass:before{content:"\f14e";}
.icon-collapse:before{content:"\f150";}
.icon-collapse-top:before{content:"\f151";}
.icon-expand:before{content:"\f152";}
.icon-euro:before,.icon-eur:before{content:"\f153";}
.icon-gbp:before{content:"\f154";}
.icon-dollar:before,.icon-usd:before{content:"\f155";}
.icon-rupee:before,.icon-inr:before{content:"\f156";}
.icon-yen:before,.icon-jpy:before{content:"\f157";}
.icon-renminbi:before,.icon-cny:before{content:"\f158";}
.icon-won:before,.icon-krw:before{content:"\f159";}
.icon-bitcoin:before,.icon-btc:before{content:"\f15a";}
.icon-file:before{content:"\f15b";}
.icon-file-text:before{content:"\f15c";}
.icon-sort-by-alphabet:before{content:"\f15d";}
.icon-sort-by-alphabet-alt:before{content:"\f15e";}
.icon-sort-by-attributes:before{content:"\f160";}
.icon-sort-by-attributes-alt:before{content:"\f161";}
.icon-sort-by-order:before{content:"\f162";}
.icon-sort-by-order-alt:before{content:"\f163";}
.icon-thumbs-up:before{content:"\f164";}
.icon-thumbs-down:before{content:"\f165";}
.icon-youtube-sign:before{content:"\f166";}
.icon-youtube:before{content:"\f167";}
.icon-xing:before{content:"\f168";}
.icon-xing-sign:before{content:"\f169";}
.icon-youtube-play:before{content:"\f16a";}
.icon-dropbox:before{content:"\f16b";}
.icon-stackexchange:before{content:"\f16c";}
.icon-instagram:before{content:"\f16d";}
.icon-flickr:before{content:"\f16e";}
.icon-adn:before{content:"\f170";}
.icon-bitbucket:before{content:"\f171";}
.icon-bitbucket-sign:before{content:"\f172";}
.icon-tumblr:before{content:"\f173";}
.icon-tumblr-sign:before{content:"\f174";}
.icon-long-arrow-down:before{content:"\f175";}
.icon-long-arrow-up:before{content:"\f176";}
.icon-long-arrow-left:before{content:"\f177";}
.icon-long-arrow-right:before{content:"\f178";}
.icon-apple:before{content:"\f179";}
.icon-windows:before{content:"\f17a";}
.icon-android:before{content:"\f17b";}
.icon-linux:before{content:"\f17c";}
.icon-dribbble:before{content:"\f17d";}
.icon-skype:before{content:"\f17e";}
.icon-foursquare:before{content:"\f180";}
.icon-trello:before{content:"\f181";}
.icon-female:before{content:"\f182";}
.icon-male:before{content:"\f183";}
.icon-gittip:before{content:"\f184";}
.icon-sun:before{content:"\f185";}
.icon-moon:before{content:"\f186";}
.icon-archive:before{content:"\f187";}
.icon-bug:before{content:"\f188";}
.icon-vk:before{content:"\f189";}
.icon-weibo:before{content:"\f18a";}
.icon-renren:before{content:"\f18b";}

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3019c1c6b72e41847899e2ac02471923
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b1985c3a9f17306419ee984450d97ffa
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0f0e2a59e00d25446aa594df76a5dced
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 54d153b1a1ded8242885ba82c00e583c
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,65 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (Wed, 16 Apr 2014 03:56:09 GMT)
*
* @copyright
* Copyright (C) 2004-2013 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
;(function()
{
// CommonJS
SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
function Brush()
{
var keywords = 'abstract as async await base bool break byte case catch char checked class const ' +
'continue decimal default delegate do double else enum event explicit volatile ' +
'extern false finally fixed float for foreach get goto if implicit in int ' +
'interface internal is lock long namespace new null object operator out ' +
'override params private protected public readonly ref return sbyte sealed set ' +
'short sizeof stackalloc static string struct switch this throw true try ' +
'typeof uint ulong unchecked unsafe ushort using virtual void while var ' +
'from group by into select let where orderby join on equals ascending descending';
function fixComments(match, regexInfo)
{
var css = (match[0].indexOf("///") == 0)
? 'color1'
: 'comments'
;
return [new SyntaxHighlighter.Match(match[0], match.index, css)];
}
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, func : fixComments }, // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: /@"(?:[^"]|"")*"/g, css: 'string' }, // @-quoted strings
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings
{ regex: /^\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // c# keyword
{ regex: /\bpartial(?=\s+(?:class|interface|struct)\b)/g, css: 'keyword' }, // contextual keyword: 'partial'
{ regex: /\byield(?=\s+(?:return|break)\b)/g, css: 'keyword' } // contextual keyword: 'yield'
];
this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};
Brush.prototype = new SyntaxHighlighter.Highlighter();
Brush.aliases = ['c#', 'c-sharp', 'csharp'];
SyntaxHighlighter.brushes.CSharp = Brush;
// CommonJS
typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
})();

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3a3eba33a609b9444b5d4cf94850b596
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,237 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: Monaco, "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
/*min-height: inherit !important; */
/*min-height: auto !important;*/
direction: ltr !important;
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
-ms-box-shadow: none !important;
-o-box-shadow: none !important;
box-shadow: none !important;
}
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
overflow-y: hidden !important;
font-size: 1em !important;
}
.syntaxhighlighter code {
display: inline !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
table-layout: auto !important;
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4141587b0e66e4e4dbfff848df4ddee7
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1a997a3755a0b4c48bb3457eec44cf43
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,117 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
background-color: white !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #e0e0e0 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: black !important;
}
.syntaxhighlighter table caption {
color: black !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #6ce26c !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #6ce26c !important;
color: white !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: blue !important;
background: white !important;
border: 1px solid #6ce26c !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: blue !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: red !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #6ce26c !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: black !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #008200 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: blue !important;
}
.syntaxhighlighter .keyword {
color: #006699 !important;
}
.syntaxhighlighter .preprocessor {
color: gray !important;
}
.syntaxhighlighter .variable {
color: #aa7700 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ff1493 !important;
}
.syntaxhighlighter .constants {
color: #0066cc !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #006699 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: red !important;
}
.syntaxhighlighter .keyword {
font-weight: bold !important;
}

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 77d7d86f0c0780d4bb40705b0ab6fcc6
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 601023394f5f81c48b6ee8a7f63522cf
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1 @@
!function(){function a(){for(var a=this;-1===a.className.indexOf("nav-menu");)"li"===a.tagName.toLowerCase()&&(-1!==a.className.indexOf("focus")?a.className=a.className.replace(" focus",""):a.className+=" focus"),a=a.parentElement}var b,c,d,e,f,g,h;if(b=document.getElementById("site-navigation"),b&&(c=b.getElementsByTagName("button")[0],"undefined"!=typeof c)){if(d=b.getElementsByTagName("ul")[0],"undefined"==typeof d)return void(c.style.display="none");for(d.setAttribute("aria-expanded","false"),-1===d.className.indexOf("nav-menu")&&(d.className+=" nav-menu"),c.onclick=function(){-1!==b.className.indexOf("toggled")?(b.className=b.className.replace(" toggled",""),c.setAttribute("aria-expanded","false"),d.setAttribute("aria-expanded","false")):(b.className+=" toggled",c.setAttribute("aria-expanded","true"),d.setAttribute("aria-expanded","true"))},e=d.getElementsByTagName("a"),f=d.getElementsByTagName("ul"),g=0,h=f.length;g<h;g++)f[g].parentNode.setAttribute("aria-haspopup","true");for(g=0,h=e.length;g<h;g++)e[g].addEventListener("focus",a,!0),e[g].addEventListener("blur",a,!0);!function(a){var b,c,d=a.querySelectorAll(".menu-item-has-children > a, .page_item_has_children > a");if("ontouchstart"in window)for(b=function(a){var b,c=this.parentNode;if(c.classList.contains("focus"))c.classList.remove("focus");else{for(a.preventDefault(),b=0;b<c.parentNode.children.length;++b)c!==c.parentNode.children[b]&&c.parentNode.children[b].classList.remove("focus");c.classList.add("focus")}},c=0;c<d.length;++c)d[c].addEventListener("touchstart",b,!1)}(b)}}(),function(){var a=/(trident|msie)/i.test(navigator.userAgent);a&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var a,b=location.hash.substring(1);/^[A-z0-9_-]+$/.test(b)&&(a=document.getElementById(b),a&&(/^(?:a|select|input|button|textarea)$/i.test(a.tagName)||(a.tabIndex=-1),a.focus()))},!1)}();

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b8e426e734f526a4984d0bd9a58066bc
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1 @@
!function(a,b){"use strict";function c(){if(!e){e=!0;var a,c,d,f,g=-1!==navigator.appVersion.indexOf("MSIE 10"),h=!!navigator.userAgent.match(/Trident.*rv:11\./),i=b.querySelectorAll("iframe.wp-embedded-content");for(c=0;c<i.length;c++){if(d=i[c],!d.getAttribute("data-secret"))f=Math.random().toString(36).substr(2,10),d.src+="#?secret="+f,d.setAttribute("data-secret",f);if(g||h)a=d.cloneNode(!0),a.removeAttribute("security"),d.parentNode.replaceChild(a,d)}}}var d=!1,e=!1;if(b.querySelector)if(a.addEventListener)d=!0;if(a.wp=a.wp||{},!a.wp.receiveEmbedMessage)if(a.wp.receiveEmbedMessage=function(c){var d=c.data;if(d.secret||d.message||d.value)if(!/[^a-zA-Z0-9]/.test(d.secret)){var e,f,g,h,i,j=b.querySelectorAll('iframe[data-secret="'+d.secret+'"]'),k=b.querySelectorAll('blockquote[data-secret="'+d.secret+'"]');for(e=0;e<k.length;e++)k[e].style.display="none";for(e=0;e<j.length;e++)if(f=j[e],c.source===f.contentWindow){if(f.removeAttribute("style"),"height"===d.message){if(g=parseInt(d.value,10),g>1e3)g=1e3;else if(~~g<200)g=200;f.height=g}if("link"===d.message)if(h=b.createElement("a"),i=b.createElement("a"),h.href=f.getAttribute("src"),i.href=d.value,i.host===h.host)if(b.activeElement===f)a.top.location.href=d.value}else;}},d)a.addEventListener("message",a.wp.receiveEmbedMessage,!1),b.addEventListener("DOMContentLoaded",c,!1),a.addEventListener("load",c,!1)}(window,document);

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7bbc9cbef70fefb40826637d3512c035
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2ca82815e5b2f7d4fa4420e527a27526
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 67c5db2a4649c5447ae14158d37e6214
timeCreated: 1506503311
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 1855bfca81559324fa5a5d116a289bc6
folderAsset: yes
timeCreated: 1506067485
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using UnityEngine;
public static class AwaitExtensions
{
public static TaskAwaiter<int> GetAwaiter(this Process process)
{
var tcs = new TaskCompletionSource<int>();
process.EnableRaisingEvents = true;
process.Exited += (s, e) => tcs.TrySetResult(process.ExitCode);
if (process.HasExited)
{
tcs.TrySetResult(process.ExitCode);
}
return tcs.Task.GetAwaiter();
}
// Any time you call an async method from sync code, you can either use this wrapper
// method or you can define your own `async void` method that performs the await
// on the given Task
public static async void WrapErrors(this Task task)
{
await task;
}
}

View file

@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: bf3770fc51ac89f45987dbde37ae81bd
timeCreated: 1455373901
guid: 386afd32a400664419ea609f8f1636fb
timeCreated: 1505905492
licenseType: Store
MonoImporter:
serializedVersion: 2

View file

@ -0,0 +1,45 @@
using System;
using UnityEngine;
// TODO: Remove the allocs here, use a static memory pool?
public static class Awaiters
{
readonly static WaitForUpdate _waitForUpdate = new WaitForUpdate();
readonly static WaitForFixedUpdate _waitForFixedUpdate = new WaitForFixedUpdate();
readonly static WaitForEndOfFrame _waitForEndOfFrame = new WaitForEndOfFrame();
public static WaitForUpdate NextFrame
{
get { return _waitForUpdate; }
}
public static WaitForFixedUpdate FixedUpdate
{
get { return _waitForFixedUpdate; }
}
public static WaitForEndOfFrame EndOfFrame
{
get { return _waitForEndOfFrame; }
}
public static WaitForSeconds Seconds(float seconds)
{
return new WaitForSeconds(seconds);
}
public static WaitForSecondsRealtime SecondsRealtime(float seconds)
{
return new WaitForSecondsRealtime(seconds);
}
public static WaitUntil Until(Func<bool> predicate)
{
return new WaitUntil(predicate);
}
public static WaitWhile While(Func<bool> predicate)
{
return new WaitWhile(predicate);
}
}

View file

@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 41f3df73f7da66b4980f6d9a86927796
timeCreated: 1455373898
guid: 8d760c2bd4c003740956ef7de48cea40
timeCreated: 1506576813
licenseType: Store
MonoImporter:
serializedVersion: 2

View file

@ -0,0 +1,393 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.ExceptionServices;
using System.Text;
using System.Threading;
using UnityEngine;
using UnityAsyncAwaitUtil;
// We could just add a generic GetAwaiter to YieldInstruction and CustomYieldInstruction
// but instead we add specific methods to each derived class to allow for return values
// that make the most sense for the specific instruction type
public static class IEnumeratorAwaitExtensions
{
public static SimpleCoroutineAwaiter GetAwaiter(this WaitForSeconds instruction)
{
return GetAwaiterReturnVoid(instruction);
}
public static SimpleCoroutineAwaiter GetAwaiter(this WaitForUpdate instruction)
{
return GetAwaiterReturnVoid(instruction);
}
public static SimpleCoroutineAwaiter GetAwaiter(this WaitForEndOfFrame instruction)
{
return GetAwaiterReturnVoid(instruction);
}
public static SimpleCoroutineAwaiter GetAwaiter(this WaitForFixedUpdate instruction)
{
return GetAwaiterReturnVoid(instruction);
}
public static SimpleCoroutineAwaiter GetAwaiter(this WaitForSecondsRealtime instruction)
{
return GetAwaiterReturnVoid(instruction);
}
public static SimpleCoroutineAwaiter GetAwaiter(this WaitUntil instruction)
{
return GetAwaiterReturnVoid(instruction);
}
public static SimpleCoroutineAwaiter GetAwaiter(this WaitWhile instruction)
{
return GetAwaiterReturnVoid(instruction);
}
public static SimpleCoroutineAwaiter<AsyncOperation> GetAwaiter(this AsyncOperation instruction)
{
return GetAwaiterReturnSelf(instruction);
}
public static SimpleCoroutineAwaiter<UnityEngine.Object> GetAwaiter(this ResourceRequest instruction)
{
var awaiter = new SimpleCoroutineAwaiter<UnityEngine.Object>();
RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
InstructionWrappers.ResourceRequest(awaiter, instruction)));
return awaiter;
}
public static SimpleCoroutineAwaiter<AssetBundle> GetAwaiter(this AssetBundleCreateRequest instruction)
{
var awaiter = new SimpleCoroutineAwaiter<AssetBundle>();
RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
InstructionWrappers.AssetBundleCreateRequest(awaiter, instruction)));
return awaiter;
}
public static SimpleCoroutineAwaiter<UnityEngine.Object> GetAwaiter(this AssetBundleRequest instruction)
{
var awaiter = new SimpleCoroutineAwaiter<UnityEngine.Object>();
RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
InstructionWrappers.AssetBundleRequest(awaiter, instruction)));
return awaiter;
}
public static SimpleCoroutineAwaiter<T> GetAwaiter<T>(this IEnumerator<T> coroutine)
{
var awaiter = new SimpleCoroutineAwaiter<T>();
RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
new CoroutineWrapper<T>(coroutine, awaiter).Run()));
return awaiter;
}
public static SimpleCoroutineAwaiter<object> GetAwaiter(this IEnumerator coroutine)
{
var awaiter = new SimpleCoroutineAwaiter<object>();
RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
new CoroutineWrapper<object>(coroutine, awaiter).Run()));
return awaiter;
}
static SimpleCoroutineAwaiter GetAwaiterReturnVoid(object instruction)
{
var awaiter = new SimpleCoroutineAwaiter();
RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
InstructionWrappers.ReturnVoid(awaiter, instruction)));
return awaiter;
}
static SimpleCoroutineAwaiter<T> GetAwaiterReturnSelf<T>(T instruction)
{
var awaiter = new SimpleCoroutineAwaiter<T>();
RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
InstructionWrappers.ReturnSelf(awaiter, instruction)));
return awaiter;
}
static void RunOnUnityScheduler(Action action)
{
if (SynchronizationContext.Current == SyncContextUtil.UnitySynchronizationContext)
{
action();
}
else
{
SyncContextUtil.UnitySynchronizationContext.Post(_ => action(), null);
}
}
static void Assert(bool condition)
{
if (!condition)
{
throw new Exception("Assert hit in UnityAsyncUtil package!");
}
}
public class SimpleCoroutineAwaiter<T> : INotifyCompletion
{
bool _isDone;
Exception _exception;
Action _continuation;
T _result;
public bool IsCompleted
{
get { return _isDone; }
}
public T GetResult()
{
Assert(_isDone);
if (_exception != null)
{
ExceptionDispatchInfo.Capture(_exception).Throw();
}
return _result;
}
public void Complete(T result, Exception e)
{
Assert(!_isDone);
_isDone = true;
_exception = e;
_result = result;
// Always trigger the continuation on the unity thread when awaiting on unity yield
// instructions
if (_continuation != null)
{
RunOnUnityScheduler(_continuation);
}
}
void INotifyCompletion.OnCompleted(Action continuation)
{
Assert(_continuation == null);
Assert(!_isDone);
_continuation = continuation;
}
}
public class SimpleCoroutineAwaiter : INotifyCompletion
{
bool _isDone;
Exception _exception;
Action _continuation;
public bool IsCompleted
{
get { return _isDone; }
}
public void GetResult()
{
Assert(_isDone);
if (_exception != null)
{
ExceptionDispatchInfo.Capture(_exception).Throw();
}
}
public void Complete(Exception e)
{
Assert(!_isDone);
_isDone = true;
_exception = e;
// Always trigger the continuation on the unity thread when awaiting on unity yield
// instructions
if (_continuation != null)
{
RunOnUnityScheduler(_continuation);
}
}
void INotifyCompletion.OnCompleted(Action continuation)
{
Assert(_continuation == null);
Assert(!_isDone);
_continuation = continuation;
}
}
class CoroutineWrapper<T>
{
readonly SimpleCoroutineAwaiter<T> _awaiter;
readonly Stack<IEnumerator> _processStack;
public CoroutineWrapper(
IEnumerator coroutine, SimpleCoroutineAwaiter<T> awaiter)
{
_processStack = new Stack<IEnumerator>();
_processStack.Push(coroutine);
_awaiter = awaiter;
}
public IEnumerator Run()
{
while (true)
{
var topWorker = _processStack.Peek();
bool isDone;
try
{
isDone = !topWorker.MoveNext();
}
catch (Exception e)
{
// The IEnumerators we have in the process stack do not tell us the
// actual names of the coroutine methods but it does tell us the objects
// that the IEnumerators are associated with, so we can at least try
// adding that to the exception output
var objectTrace = GenerateObjectTrace(_processStack);
if (objectTrace.Any())
{
_awaiter.Complete(
default(T), new Exception(
GenerateObjectTraceMessage(objectTrace), e));
}
else
{
_awaiter.Complete(default(T), e);
}
yield break;
}
if (isDone)
{
_processStack.Pop();
if (_processStack.Count == 0)
{
_awaiter.Complete((T)topWorker.Current, null);
yield break;
}
}
// We could just yield return nested IEnumerator's here but we choose to do
// our own handling here so that we can catch exceptions in nested coroutines
// instead of just top level coroutine
if (topWorker.Current is IEnumerator)
{
_processStack.Push((IEnumerator)topWorker.Current);
}
else
{
// Return the current value to the unity engine so it can handle things like
// WaitForSeconds, WaitToEndOfFrame, etc.
yield return topWorker.Current;
}
}
}
string GenerateObjectTraceMessage(List<Type> objTrace)
{
var result = new StringBuilder();
foreach (var objType in objTrace)
{
if (result.Length != 0)
{
result.Append(" -> ");
}
result.Append(objType.ToString());
}
result.AppendLine();
return "Unity Coroutine Object Trace: " + result.ToString();
}
static List<Type> GenerateObjectTrace(IEnumerable<IEnumerator> enumerators)
{
var objTrace = new List<Type>();
foreach (var enumerator in enumerators)
{
// NOTE: This only works with scripting engine 4.6
// And could easily stop working with unity updates
var field = enumerator.GetType().GetField("$this", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
if (field == null)
{
continue;
}
var obj = field.GetValue(enumerator);
if (obj == null)
{
continue;
}
var objType = obj.GetType();
if (!objTrace.Any() || objType != objTrace.Last())
{
objTrace.Add(objType);
}
}
objTrace.Reverse();
return objTrace;
}
}
static class InstructionWrappers
{
public static IEnumerator ReturnVoid(
SimpleCoroutineAwaiter awaiter, object instruction)
{
// For simple instructions we assume that they don't throw exceptions
yield return instruction;
awaiter.Complete(null);
}
public static IEnumerator AssetBundleCreateRequest(
SimpleCoroutineAwaiter<AssetBundle> awaiter, AssetBundleCreateRequest instruction)
{
yield return instruction;
awaiter.Complete(instruction.assetBundle, null);
}
public static IEnumerator ReturnSelf<T>(
SimpleCoroutineAwaiter<T> awaiter, T instruction)
{
yield return instruction;
awaiter.Complete(instruction, null);
}
public static IEnumerator AssetBundleRequest(
SimpleCoroutineAwaiter<UnityEngine.Object> awaiter, AssetBundleRequest instruction)
{
yield return instruction;
awaiter.Complete(instruction.asset, null);
}
public static IEnumerator ResourceRequest(
SimpleCoroutineAwaiter<UnityEngine.Object> awaiter, ResourceRequest instruction)
{
yield return instruction;
awaiter.Complete(instruction.asset, null);
}
}
}

View file

@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: ba71e5544e233dd4b83d4c5a6c696d05
timeCreated: 1455373900
guid: e25e4bf7a3b2f5f4e82e2de590d2e12a
timeCreated: 1506071089
licenseType: Store
MonoImporter:
serializedVersion: 2

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 0e49c304a8a375e4fb785571f1b582c2
folderAsset: yes
timeCreated: 1506153419
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,35 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace UnityAsyncAwaitUtil
{
public class AsyncCoroutineRunner : MonoBehaviour
{
static AsyncCoroutineRunner _instance;
public static AsyncCoroutineRunner Instance
{
get
{
if (_instance == null)
{
_instance = new GameObject("AsyncCoroutineRunner")
.AddComponent<AsyncCoroutineRunner>();
}
return _instance;
}
}
void Awake()
{
// Don't show in scene hierarchy
gameObject.hideFlags = HideFlags.HideAndDontSave;
DontDestroyOnLoad(gameObject);
}
}
}

View file

@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 5da8247fbc4a4c84e96a727b44903214
timeCreated: 1455373899
guid: f11ec4617f62c224b99e34972dc917a8
timeCreated: 1506153419
licenseType: Store
MonoImporter:
serializedVersion: 2

View file

@ -0,0 +1,31 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
using UnityEngine;
namespace UnityAsyncAwaitUtil
{
public static class SyncContextUtil
{
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
static void Install()
{
UnitySynchronizationContext = SynchronizationContext.Current;
UnityThreadId = Thread.CurrentThread.ManagedThreadId;
}
public static int UnityThreadId
{
get; private set;
}
public static SynchronizationContext UnitySynchronizationContext
{
get; private set;
}
}
}

View file

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a184433eba65a614191b36436c5620cd
timeCreated: 1506158938
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,40 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Runtime.ExceptionServices;
using System.Threading.Tasks;
using UnityEngine;
public static class TaskExtensions
{
public static IEnumerator AsIEnumerator(this Task task)
{
while (!task.IsCompleted)
{
yield return null;
}
if (task.IsFaulted)
{
ExceptionDispatchInfo.Capture(task.Exception).Throw();
}
}
public static IEnumerator<T> AsIEnumerator<T>(this Task<T> task)
where T : class
{
while (!task.IsCompleted)
{
yield return null;
}
if (task.IsFaulted)
{
ExceptionDispatchInfo.Capture(task.Exception).Throw();
}
yield return task.Result;
}
}

View file

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 445df9c15261a3a4e97d1528208902e3
timeCreated: 1506110050
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using UnityEngine;
public class WaitForBackgroundThread
{
public ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter()
{
return Task.Run(() => {}).ConfigureAwait(false).GetAwaiter();
}
}

View file

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b49e8af9f6a40874191794f7bae31812
timeCreated: 1506162217
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using UnityEngine;
// This can be used as a way to return to the main unity thread when using multiple threads
// with async methods
public class WaitForUpdate : CustomYieldInstruction
{
public override bool keepWaiting
{
get { return false; }
}
}

View file

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: df6106e9f5d243e449fcef043d2d247a
timeCreated: 1506153732
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: d4308153066836c44a8313e2c20be80d
folderAsset: yes
timeCreated: 1506067485
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,247 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 8
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.37311992, g: 0.38074034, b: 0.35872713, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 9
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 0
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFiltering: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousColorSigma: 1
m_PVRFilteringAtrousNormalSigma: 1
m_PVRFilteringAtrousPositionSigma: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &872110973
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 872110978}
- component: {fileID: 872110977}
- component: {fileID: 872110976}
- component: {fileID: 872110975}
- component: {fileID: 872110974}
m_Layer: 0
m_Name: Camera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &872110974
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 872110973}
m_Enabled: 1
--- !u!92 &872110975
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 872110973}
m_Enabled: 1
--- !u!124 &872110976
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 872110973}
m_Enabled: 1
--- !u!20 &872110977
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 872110973}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!4 &872110978
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 872110973}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1790199439
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1790199441}
- component: {fileID: 1790199440}
m_Layer: 0
m_Name: Runner
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1790199440
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1790199439}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cb4f149e5fdd59e45958e5b591ca42e6, type: 3}
m_Name:
m_EditorClassIdentifier:
_buttonSettings:
NumPerColumn: 4
VerticalMargin: 55.41
VerticalSpacing: 62.9
HorizontalSpacing: 28.9
HorizontalMargin: 50
ButtonWidth: 342.4
ButtonHeight: 50
--- !u!4 &1790199441
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1790199439}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1bd0e101aab2ee24cbc1d7902b692a75
timeCreated: 1506067485
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,264 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.Networking;
using Debug = UnityEngine.Debug;
namespace UnityAsyncAwaitUtil
{
public class AsyncUtilTests : MonoBehaviour
{
const string AssetBundleSampleUrl = "http://www.stevevermeulen.com/wp-content/uploads/2017/09/teapot.unity3d";
const string AssetBundleSampleAssetName = "Teapot";
[SerializeField]
TestButtonHandler.Settings _buttonSettings = null;
TestButtonHandler _buttonHandler;
public void Awake()
{
_buttonHandler = new TestButtonHandler(_buttonSettings);
}
public void OnGUI()
{
_buttonHandler.Restart();
if (_buttonHandler.Display("Test await seconds"))
{
RunAwaitSecondsTestAsync().WrapErrors();
}
if (_buttonHandler.Display("Test return value"))
{
RunReturnValueTestAsync().WrapErrors();
}
if (_buttonHandler.Display("Test try-catch exception"))
{
RunTryCatchExceptionTestAsync().WrapErrors();
}
if (_buttonHandler.Display("Test unhandled exception"))
{
// Note: Without WrapErrors here this wouldn't log anything
RunUnhandledExceptionTestAsync().WrapErrors();
}
if (_buttonHandler.Display("Test IEnumerator"))
{
RunIEnumeratorTestAsync().WrapErrors();
}
if (_buttonHandler.Display("Test IEnumerator with return value (untyped)"))
{
RunIEnumeratorUntypedStringTestAsync().WrapErrors();
}
if (_buttonHandler.Display("Test IEnumerator with return value (typed)"))
{
RunIEnumeratorStringTestAsync().WrapErrors();
}
if (_buttonHandler.Display("Test IEnumerator unhandled exception"))
{
RunIEnumeratorUnhandledExceptionAsync().WrapErrors();
}
if (_buttonHandler.Display("Test IEnumerator try-catch exception"))
{
RunIEnumeratorTryCatchExceptionAsync().WrapErrors();
}
if (_buttonHandler.Display("Test opening notepad"))
{
RunOpenNotepadTestAsync().WrapErrors();
}
if (_buttonHandler.Display("Test Call Async from coroutine"))
{
StartCoroutine(RunAsyncFromCoroutineTest());
}
if (_buttonHandler.Display("Test multiple threads"))
{
RunMultipleThreadsTestAsync().WrapErrors();
}
}
IEnumerator RunAsyncFromCoroutineTest()
{
Debug.Log("Waiting 1 second...");
yield return new WaitForSeconds(1.0f);
Debug.Log("Waiting 1 second again...");
yield return RunAsyncFromCoroutineTest2().AsIEnumerator();
Debug.Log("Done");
}
async Task RunMultipleThreadsTestAsync()
{
PrintCurrentThreadContext("Start");
await Task.Delay(TimeSpan.FromSeconds(1.0f));
PrintCurrentThreadContext("After delay");
await new WaitForBackgroundThread();
PrintCurrentThreadContext("After WaitForBackgroundThread");
Debug.Log("Waiting 1 second...");
await Task.Delay(TimeSpan.FromSeconds(1.0f));
// We will still running from the threadpool after the delay here
PrintCurrentThreadContext("After Waiting");
// We can place any unity yield instruction here instead and it will return to the unity thread
await new WaitForUpdate();
PrintCurrentThreadContext("After WaitForUpdate");
}
async Task RunMultipleThreadsTestAsyncWait()
{
PrintCurrentThreadContext("RunMultipleThreadsTestAsyncWait1");
await new WaitForSeconds(1.0f);
PrintCurrentThreadContext("RunMultipleThreadsTestAsyncWait2");
}
void PrintCurrentThreadContext(string prefix = null)
{
Debug.Log(string.Format("{0}Current Thread: {1}, Scheduler: {2}",
prefix == null ? "" : prefix + ": ", Thread.CurrentThread.ManagedThreadId, SynchronizationContext.Current == null ? "null" : SynchronizationContext.Current.GetType().Name));
}
async Task RunAsyncFromCoroutineTest2()
{
await new WaitForSeconds(1.0f);
}
async Task RunOpenNotepadTestAsync()
{
Debug.Log("Waiting for user to close notepad...");
await Process.Start("notepad.exe");
Debug.Log("Closed notepad");
}
async Task RunUnhandledExceptionTestAsync()
{
// This should be logged when using WrapErrors
await WaitThenThrowException();
}
async Task RunTryCatchExceptionTestAsync()
{
try
{
await NestedRunAsync();
}
catch (Exception e)
{
Debug.Log("Caught exception! " + e.Message);
}
}
async Task NestedRunAsync()
{
await new WaitForSeconds(1);
throw new Exception("foo");
}
async Task WaitThenThrowException()
{
await new WaitForSeconds(1.5f);
throw new Exception("asdf");
}
async Task RunIEnumeratorTryCatchExceptionAsync()
{
try
{
await WaitThenThrow();
}
catch (Exception e)
{
Debug.Log("Caught exception! " + e.Message);
}
}
async Task RunIEnumeratorUnhandledExceptionAsync()
{
await WaitThenThrow();
}
IEnumerator WaitThenThrow()
{
yield return WaitThenThrowNested();
}
IEnumerator WaitThenThrowNested()
{
Debug.Log("Waiting 1 second...");
yield return new WaitForSeconds(1.0f);
throw new Exception("zxcv");
}
async Task RunIEnumeratorStringTestAsync()
{
Debug.Log("Waiting for ienumerator...");
Debug.Log("Done! Result: " + await WaitForString());
}
async Task RunIEnumeratorUntypedStringTestAsync()
{
Debug.Log("Waiting for ienumerator...");
string result = (string)(await WaitForStringUntyped());
Debug.Log("Done! Result: " + result);
}
async Task RunIEnumeratorTestAsync()
{
Debug.Log("Waiting for ienumerator...");
await WaitABit();
Debug.Log("Done!");
}
IEnumerator<string> WaitForString()
{
var startTime = Time.realtimeSinceStartup;
while (Time.realtimeSinceStartup - startTime < 2)
{
yield return null;
}
yield return "bsdfgas";
}
IEnumerator WaitForStringUntyped()
{
yield return WaitABit();
yield return "qwer";
}
IEnumerator WaitABit()
{
yield return new WaitForSeconds(1.5f);
}
async Task RunReturnValueTestAsync()
{
Debug.Log("Waiting to get value...");
var result = await GetValueExampleAsync();
Debug.Log("Got value: " + result);
}
async Task<string> GetValueExampleAsync()
{
await new WaitForSeconds(1.0f);
return "asdf";
}
async Task RunAwaitSecondsTestAsync()
{
Debug.Log("Waiting 1 second...");
await new WaitForSeconds(1.0f);
Debug.Log("Done!");
}
}
}

View file

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: cb4f149e5fdd59e45958e5b591ca42e6
timeCreated: 1503457821
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 55f153410442a5e448cd22e4abb9756e
folderAsset: yes
timeCreated: 1506100714
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,59 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using UnityEngine;
namespace UnityAsyncAwaitUtil
{
public class TestButtonHandler
{
readonly Settings _settings;
int _buttonVCount;
int _buttonHCount;
public TestButtonHandler(Settings settings)
{
_settings = settings;
}
public void Restart()
{
_buttonVCount = 0;
_buttonHCount = 0;
}
public bool Display(string text)
{
if (_buttonVCount > _settings.NumPerColumn)
{
_buttonHCount++;
_buttonVCount = 0;
}
var result = GUI.Button(
new Rect(
_settings.HorizontalMargin + _buttonHCount * (_settings.ButtonWidth + _settings.HorizontalSpacing),
_settings.VerticalMargin + _buttonVCount * (_settings.ButtonHeight + _settings.VerticalSpacing),
_settings.ButtonWidth, _settings.ButtonHeight), text);
_buttonVCount++;
return result;
}
[Serializable]
public class Settings
{
public int NumPerColumn = 6;
public float VerticalMargin = 50;
public float VerticalSpacing = 50;
public float HorizontalSpacing = 50;
public float HorizontalMargin = 50;
public float ButtonWidth = 50;
public float ButtonHeight = 50;
}
}
}

View file

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 9c53fa9158328e84ea9dad5658b23d52
timeCreated: 1506100715
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0a467472112afef41a04d89bb288500f
timeCreated: 1525587959
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: dfe5c979bf56f5d47af86c065ba2120b
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Plugins/Newtonsoft.Json.dll (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: eb30e0065a874324cb38d7ca7f3d1b87
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Plugins/Remotion.Linq.dll (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 7d534480cae60a94ba92788043634a76
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Plugins/RethinkDb.Driver.Linq.dll (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,100 @@
fileFormatVersion: 2
guid: a4834ab237984c34989bbc2898518295
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 0
platformData:
- first:
'': Any
second:
enabled: 0
settings:
Exclude Editor: 0
Exclude Linux: 0
Exclude Linux64: 0
Exclude LinuxUniversal: 0
Exclude OSXUniversal: 0
Exclude WebGL: 0
Exclude Win: 0
Exclude Win64: 0
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 1
settings:
CPU: x86
- first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
- first:
Standalone: LinuxUniversal
second:
enabled: 1
settings: {}
- first:
Standalone: OSXUniversal
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Win
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
WebGL: WebGL
second:
enabled: 1
settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Plugins/RethinkDb.Driver.dll (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,100 @@
fileFormatVersion: 2
guid: 800dfc6b8095d9f48975a03adc1d51fb
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 0
platformData:
- first:
'': Any
second:
enabled: 0
settings:
Exclude Editor: 0
Exclude Linux: 0
Exclude Linux64: 0
Exclude LinuxUniversal: 0
Exclude OSXUniversal: 0
Exclude WebGL: 0
Exclude Win: 0
Exclude Win64: 0
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 1
settings:
CPU: x86
- first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
- first:
Standalone: LinuxUniversal
second:
enabled: 1
settings: {}
- first:
Standalone: OSXUniversal
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Win
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
WebGL: WebGL
second:
enabled: 1
settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View file

@ -212,6 +212,7 @@ GameObject:
- component: {fileID: 519420032}
- component: {fileID: 519420031}
- component: {fileID: 519420029}
- component: {fileID: 519420030}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
@ -227,6 +228,18 @@ AudioListener:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028}
m_Enabled: 1
--- !u!114 &519420030
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c3cd207057515c4438a31a6a7b548fe7, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!20 &519420031
Camera:
m_ObjectHideFlags: 0

View file

@ -1,494 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using MessagePack;
using UniRx;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.Audio;
using static Unity.Mathematics.math;
using static Unity.Mathematics.noise;
using Object = UnityEngine.Object;
public interface IItemBehavior
{
void Update(float delta);
void FixedUpdate(float delta);
Ship Ship { get; }
Gear Item { get; }
IItemBehaviorData Data { get; }
}
public interface IActivatedItemBehavior : IItemBehavior
{
void Activate();
void Deactivate();
}
[Inspectable]
[Union(0, typeof(CannonBehaviorData))]
[Union(1, typeof(MissileBehaviorData))]
[Union(2, typeof(ReactorBehaviorData))]
// [Union(3, typeof(PlusUltraBehaviorData))]
[Union(4, typeof(AfterburnerBehaviorData))]
[Union(5, typeof(SensorBehaviorData))]
public interface IItemBehaviorData
{
IItemBehavior CreateInstance(Ship ship, Gear item);
// PerformanceStat[] DynamicStats { get; }
//Type ItemType { get; }
}
[Inspectable]
[MessagePackObject]
public class SensorBehaviorData : IItemBehaviorData
{
[Inspectable] [Key("radiance")] public PerformanceStat Radiance;
[Inspectable] [Key("masking")] public PerformanceStat RadianceMasking;
[Inspectable] [Key("sensitivity")] public PerformanceStat Sensitivity;
[Inspectable] [Key("range")] public PerformanceStat Range;
public IItemBehavior CreateInstance(Ship ship, Gear item)
{
return new SensorBehavior(this, ship, item);
}
[IgnoreMember] public PerformanceStat[] DynamicStats => new[] {Radiance, Sensitivity};
}
public class SensorBehavior : IItemBehavior
{
private SensorBehaviorData _data;
public Ship Ship { get; }
public Gear Item { get; }
public IItemBehaviorData Data => _data;
public SensorBehavior(SensorBehaviorData data, Ship ship, Gear item)
{
_data = data;
Ship = ship;
Item = item;
}
public void Update(float delta)
{
// var ship = Hardpoint.Ship.Ship.transform;
// var contacts =
// Physics.OverlapSphere(ship.position, _data.Range.Evaluate(Hardpoint)).Where(c=>c.attachedRigidbody?.GetComponent<Targetable>()!=null).Select(c=>c.attachedRigidbody.GetComponent<Targetable>());
// foreach (var contact in contacts)
// {
// var diff = (contact.transform.position - ship.position).Flatland();
// var angle = acos(dot(ship.forward.Flatland().normalized,
// diff.normalized)) / (float)PI;
// var sens = _data.Sensitivity.Evaluate(Hardpoint) *
// Hardpoint.Ship.HullData.VisibilityCurve.Evaluate(saturate(angle));
// var vis = contact.Visibility / diff.sqrMagnitude;
// if(vis > 1/sens)
// Hardpoint.Ship.Contacts[contact] = Time.time;
// }
//
// Hardpoint.Ship.VisibilitySources[this] = _data.Radiance.Evaluate(Hardpoint) / _data.RadianceMasking.Evaluate(Hardpoint);
// TODO: Handle Active Detection / Visibility From Reflected Radiance
}
public void FixedUpdate(float delta)
{
}
}
[Inspectable]
[MessagePackObject]
public class AfterburnerBehaviorData : IItemBehaviorData
{
[Inspectable] [Key("thrust")] public PerformanceStat ThrustModifier;
[Inspectable] [Key("speed")] public PerformanceStat SpeedModifier;
[Inspectable] [Key("torque")] public PerformanceStat TorqueModifier;
public IItemBehavior CreateInstance(Ship ship, Gear item)
{
return new AfterburnerBehavior(this, ship, item);
}
}
public class AfterburnerBehavior : IActivatedItemBehavior
{
private List<Dictionary<IItemBehavior,float>> _modifiers = new List<Dictionary<IItemBehavior, float>>();
private AfterburnerBehaviorData _data;
public Ship Ship { get; }
public Gear Item { get; }
public IItemBehaviorData Data => _data;
public AfterburnerBehavior(AfterburnerBehaviorData data, Ship ship, Gear item)
{
_data = data;
Ship = ship;
Item = item;
}
public void Update(float delta)
{
}
public void FixedUpdate(float delta)
{
}
public void Activate()
{
var thrustMod = (Ship.GetEquipped(HardpointType.Thruster).EquippedItemData as Thruster).Thrust.GetScaleModifiers(Ship);
_modifiers.Add(thrustMod);
thrustMod.Add(this,_data.ThrustModifier.Evaluate(Item, Ship));
var speedMod = (Ship.Hull.EquippedItemData as Hull).TopSpeed.GetScaleModifiers(Ship);
_modifiers.Add(speedMod);
speedMod.Add(this,_data.SpeedModifier.Evaluate(Item, Ship));
var torqueMod = (Ship.GetEquipped(HardpointType.Thruster).EquippedItemData as Thruster).Torque.GetScaleModifiers(Ship);
_modifiers.Add(torqueMod);
torqueMod.Add(this,_data.TorqueModifier.Evaluate(Item, Ship));
Ship.ForceThrust = true;
}
public void Deactivate()
{
Ship.ForceThrust = false;
foreach (var mod in _modifiers)
{
mod.Remove(this);
}
_modifiers.Clear();
}
}
[Inspectable]
[MessagePackObject]
public class CannonBehaviorData : IItemBehaviorData
{
[MessagePackFormatter(typeof(UnityGameObjectFormatter))]
[Inspectable] [Key("bullet")] public GameObject BulletPrefab;
// [MessagePackFormatter(typeof(ClipListFormatter))]
// [Inspectable] [Key("sounds")] public List<AudioClip> Sounds;
[Inspectable] [Key("damageType")] public ProjectileType DamageType;
[Inspectable] [Key("burstCount")] public int BurstCount;
[Inspectable] [Key("burstTime")] public PerformanceStat BurstTime;
[Inspectable] [Key("bulletRange")] public PerformanceStat Range;
[Inspectable] [Key("spread")] public PerformanceStat Spread;
[Inspectable] [Key("bulletInherit")] public float Inherit;
[Inspectable] [Key("deflection")] public float Deflection;
[Inspectable] [Key("visibility")] public PerformanceStat Visibility;
[Inspectable] [Key("visibilityDecay")]public PerformanceStat VisibilityDecay;
[Inspectable] [Key("bulletVelocity")] public PerformanceStat Velocity;
[Inspectable] [Key("cooldown")] public PerformanceStat Cooldown;
[Inspectable] [Key("damage")] public PerformanceStat Damage;
[Inspectable] [Key("heat")] public PerformanceStat Heat;
public IItemBehavior CreateInstance(Ship ship, Gear item)
{
return new CannonBehavior(this, ship, item);
}
[IgnoreMember] public PerformanceStat[] DynamicStats => new[] {BurstTime, Range, Spread, Velocity, Cooldown, Damage};
}
public class CannonBehavior : IActivatedItemBehavior
{
private bool _firing;
private float _cooldown; // normalized
private CannonBehaviorData _cannon;
public Ship Ship { get; }
public Gear Item { get; }
private float _firingVisibility;
public CannonBehavior(CannonBehaviorData c, Ship ship, Gear item)
{
_cannon = c;
Ship = ship;
Item = item;
}
public void Activate()
{
// Debug.Log("Activating Cannon");
// _firing = true;
// Observable.EveryUpdate().TakeWhile(_ => _firing).Subscribe(_ =>
// {
// // Debug.Log($"Updating Observable {_cooldown}");
// if (_cooldown < 0)
// {
// _cooldown = 1;
// Fire(0);
// if(_cannon.BurstCount>1)
// Observable.Interval(TimeSpan.FromSeconds(_cannon.BurstTime.Evaluate(Hardpoint) / (_cannon.BurstCount-1))).Take(_cannon.BurstCount-1)
// .Subscribe(l => Fire(l+1));
// }
// });
}
private void Fire(long b)
{
// _firingVisibility += _cannon.Visibility.Evaluate(Hardpoint);
// Hardpoint.Temperature += _cannon.Heat.Evaluate(Hardpoint) / Hardpoint.HeatCapacity;
// var inst = GameObject.Instantiate(_cannon.BulletPrefab).transform;
// Physics.IgnoreCollision(Hardpoint.Ship.Ship.GetComponent<Collider>(), inst.GetComponent<Collider>());
// var bullet = inst.GetComponent<Bullet>();
// bullet.Target = Hardpoint.Ship.Ship.Target;
// bullet.Source = Hardpoint.Ship.Ship.Hitpoints;
// bullet.Lifetime = _cannon.Range.Evaluate(Hardpoint) / _cannon.Velocity.Evaluate(Hardpoint);
// bullet.Damage = _cannon.Damage.Evaluate(Hardpoint);
// inst.position = Hardpoint.Proxy.position;
// inst.rotation = Hardpoint.Proxy.rotation;
// inst.GetComponent<Rigidbody>().velocity = _cannon.Velocity.Evaluate(Hardpoint) * Vector3.RotateTowards(-inst.forward, Hardpoint.Ship.Ship.Direction, _cannon.Deflection * Mathf.Deg2Rad, 1);
// Hardpoint.Ship.Ship.AudioSource.PlayOneShot(_cannon.Sounds.RandomElement());
// Debug.Log($"Firing bullet {b}");
}
public void Deactivate()
{
_firing = false;
}
public void Update(float delta)
{
_cooldown -= delta / _cannon.Cooldown.Evaluate(Item, Ship);
if (_firingVisibility < 0.01f)
{
Ship.VisibilitySources.Remove(this);
}
}
public void FixedUpdate(float delta)
{
_firingVisibility *= _cannon.VisibilityDecay.Evaluate(Item, Ship);
}
public IItemBehaviorData Data => _cannon;
}
[Inspectable]
[MessagePackObject]
public class MissileBehaviorData : IItemBehaviorData
{
// [MessagePackFormatter(typeof(UnityGameObjectFormatter))]
// [Inspectable] [Key("missile")] public GameObject MissilePrefab;
// [MessagePackFormatter(typeof(ClipListFormatter))]
// [Inspectable] [Key("sounds")] public List<AudioClip> Sounds;
// [MessagePackFormatter(typeof(UnityAudioClipFormatter))]
// [Inspectable] [Key("beepSound")] public AudioClip BeepSound;
// [Inspectable] [Key("beepCount")] public int Beeps;
[Inspectable] [Key("damageType")] public ProjectileType DamageType;
[Inspectable] [Key("burstCount")] public int BurstCount;
[Inspectable] [Key("burstTime")] public PerformanceStat BurstTime;
[Inspectable] [Key("range")] public PerformanceStat Range;
[Inspectable] [Key("guidance")] public AnimationCurve GuidanceCurve;
[Inspectable] [Key("thrustCurve")] public AnimationCurve ThrustCurve;
[Inspectable] [Key("liftCurve")] public AnimationCurve LiftCurve;
[Inspectable] [Key("thrust")] public PerformanceStat Thrust;
[Inspectable] [Key("deflection")] public float Deflection;
[Inspectable] [Key("lockOnBuffer")] public float LockOnDegrees;
[Inspectable] [Key("frequency")] public float DodgeFrequency;
[Inspectable] [Key("visibility")] public PerformanceStat Visibility;
[Inspectable] [Key("launchSpeed")] public PerformanceStat LaunchSpeed;
[Inspectable] [Key("missileSpeed")] public PerformanceStat MissileSpeed;
[Inspectable] [Key("cooldown")] public PerformanceStat Cooldown;
[Inspectable] [Key("lockOnTime")] public PerformanceStat LockOnTime;
[Inspectable] [Key("damage")] public PerformanceStat Damage;
[Inspectable] [Key("heat")] public PerformanceStat Heat;
public IItemBehavior CreateInstance(Ship ship, Gear item)
{
return new MissileBehavior(this, ship, item);
}
[IgnoreMember] public PerformanceStat[] DynamicStats => new[] {BurstTime, Range, Thrust, LaunchSpeed, MissileSpeed, Cooldown, Damage};
}
public class MissileBehavior : IActivatedItemBehavior
{
private bool _locking;
private float _lockingTimer;
private float _cooldown; // normalized
private bool _locked;
private MissileBehaviorData _missile;
public Ship Ship { get; }
public Gear Item { get; }
private float _firingVisibility;
private AudioSource _audio;
public MissileBehavior(MissileBehaviorData m, Ship ship, Gear item)
{
_missile = m;
Ship = ship;
Item = item;
// _audio = hp.Proxy.GetComponent<AudioSource>();
// if(_audio==null)
// _audio = hp.Proxy.gameObject.AddComponent<AudioSource>();
// _audio.clip = _missile.BeepSound;
// _audio.loop = true;
// _audio.volume = .5f;
}
public void Activate()
{
_locking = true;
_lockingTimer = 1;
}
private void Fire(long b)
{
// _firingVisibility += _missile.Visibility.Evaluate(Hardpoint);
// Hardpoint.Temperature += _missile.Heat.Evaluate(Hardpoint) / Hardpoint.HeatCapacity;
// var inst = GameObject.Instantiate(_missile.MissilePrefab).transform;
// var missile = inst.GetComponent<Bullet>();
// missile.Target = Hardpoint.Ship.Ship.Target;
// missile.Source = Hardpoint.Ship.Ship.Hitpoints;
// missile.Lifetime = _missile.Range.Evaluate(Hardpoint) / _missile.MissileSpeed.Evaluate(Hardpoint);
// missile.Damage = _missile.Damage.Evaluate(Hardpoint);
// inst.position = Hardpoint.Proxy.position;
// inst.rotation = Hardpoint.Proxy.rotation;
// inst.GetComponent<Rigidbody>().velocity = _missile.LaunchSpeed.Evaluate(Hardpoint) * Hardpoint.Proxy.forward;
// Physics.IgnoreCollision(Hardpoint.Ship.Ship.GetComponent<Collider>(), inst.GetComponent<Collider>());
// var proj = inst.gameObject.AddComponent<GuidedProjectile>();
// proj.GuidanceCurve = _missile.GuidanceCurve;
// proj.ThrustCurve = _missile.ThrustCurve;
// proj.LiftCurve = _missile.LiftCurve;
// proj.TopSpeed = _missile.MissileSpeed.Evaluate(Hardpoint);
// proj.Frequency = _missile.DodgeFrequency;
// proj.Target = Hardpoint.Ship.Ship.Target;
// proj.Source = Hardpoint.Ship.Ship.Hitpoints;
// proj.Thrust = _missile.Thrust.Evaluate(Hardpoint);
// _audio.PlayOneShot(_missile.Sounds.RandomElement());
// Debug.Log($"Firing bullet {b}");
}
public void Deactivate()
{
// if (_lockingTimer < 0)
// {
// Fire(0);
// if(_missile.BurstCount>1)
// Observable.Interval(TimeSpan.FromSeconds(_missile.BurstTime.Evaluate(Hardpoint) / (_missile.BurstCount-1))).Take(_missile.BurstCount-1)
// .Subscribe(l => Fire(l+1));
// _lockingTimer = _cooldown = 1;
// _locking = _locked = false;
// _audio.Stop();
// }
// _locking = false;
// _lockingTimer = 1;
}
public void Update(float delta)
{
// if (Ship.Target == null)
// return;
//
// if (_locking && _cooldown < 0)
// {
// //if the crosshair stays under a certain LockOnBuffer distance for a certain amount of time (LockOnTime)
// if (acos(Vector2.Dot(Ship.Direction, (Ship.Target.transform.position-Ship.transform.position).normalized)) * Mathf.Rad2Deg < _missile.LockOnDegrees)
// {
// var d = delta / _missile.LockOnTime.Evaluate(Hardpoint);
// _lockingTimer -= d;
// if (!_locked && _lockingTimer < 0)
// {
// _locked = true;
// _audio.Play();
// } else if(Mathf.Repeat(_lockingTimer,1.0f/(_missile.Beeps+1))-d<0)
// GameManager.Instance.InterfaceAudio.PlayOneShot(_missile.BeepSound);
// }
// else
// {
// _lockingTimer = 1;
// _audio.Stop();
// }
// }
// else
// {
// _cooldown -= delta / _missile.Cooldown.Evaluate(Hardpoint);
// }
//
//
// if (_firingVisibility > 0.01f)
// {
// Hardpoint.Ship.Visibility += _firingVisibility;
// _firingVisibility = 0;
// }
}
public void FixedUpdate(float delta)
{
}
public IItemBehaviorData Data => _missile;
}
[MessagePackObject]
public class ReactorBehaviorData : IItemBehaviorData
{
[Inspectable] [Key("charge")] public PerformanceStat Charge;
[Inspectable] [Key("capacitance")] public PerformanceStat Capacitance;
[Inspectable] [Key("efficiency")] public PerformanceStat Efficiency;
[Inspectable] [Key("overload")] public PerformanceStat OverloadEfficiency;
[Inspectable] [Key("underload")] public PerformanceStat UnderloadRecovery;
public IItemBehavior CreateInstance(Ship ship, Gear item)
{
return new ReactorBehavior(this, ship, item);
}
[IgnoreMember] public PerformanceStat[] DynamicStats => new[] {Charge, Efficiency};
}
public class ReactorBehavior : IItemBehavior
{
private ReactorBehaviorData _data;
public Ship Ship { get; }
public Gear Item { get; }
public IItemBehaviorData Data => _data;
public ReactorBehavior(ReactorBehaviorData data, Ship ship, Gear item)
{
_data = data;
Ship = ship;
Item = item;
}
public void FixedUpdate(float delta)
{
var cap = _data.Capacitance.Evaluate(Item, Ship);
var charge = _data.Charge.Evaluate(Item, Ship) * delta;
var efficiency = _data.Efficiency.Evaluate(Item, Ship);
Ship.AddHeat(charge / efficiency);
Ship.Charge += charge;
if (Ship.Charge > cap)
{
Ship.AddHeat(-(Ship.Charge - cap) / efficiency * (1 - 1 / _data.UnderloadRecovery.Evaluate(Item, Ship)));
Ship.Charge = cap;
}
if (Ship.Charge < 0)
{
Ship.AddHeat( -Ship.Charge / (_data.OverloadEfficiency.Evaluate(Item, Ship)));
Ship.Charge = 0;
}
}
public void Update(float delta)
{
}
}

View file

@ -1,25 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.UI.Extensions.ColorPicker;
public class ColorButton : MonoBehaviour {
public ColorChangedEvent OnColorChanged = new ColorChangedEvent();
// Use this for initialization
void Start () {
var colorPicker = transform.root.GetComponentInChildren<ColorPickerControl>(true);
var image = GetComponent<Image>();
GetComponent<Button>().onClick.AddListener(() =>
{
colorPicker.gameObject.SetActive(true);
colorPicker.CurrentColor = image.color;
colorPicker.onValueChanged.AddListener(col =>
{
image.color = col;
OnColorChanged.Invoke(col);
});
});
}
}

View file

@ -1,131 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using MessagePack;
using UniRx;
using UnityEditor;
using UnityEngine;
#if UNITY_EDITOR
[InitializeOnLoad]
#endif
public class Database
{
public static event Action OnDataUpdate;
private static Dictionary<Guid, IDatabaseEntry> Entries = new Dictionary<Guid, IDatabaseEntry>();
private static Dictionary<Type, Dictionary<Guid, IDatabaseEntry>> Types = new Dictionary<Type, Dictionary<Guid, IDatabaseEntry>>();
private static DirectoryInfo _dir;
private static IDatabaseEntry Load(string path)
{
var bytes = File.ReadAllBytes(path);
// Debug.Log("Deserializing item: \n" + MessagePackSerializer.ToJson(bytes));
try
{
var entry = MessagePackSerializer.Deserialize<IDatabaseEntry>(bytes);
if (entry != null)
{
Entries[entry.GetId()] = entry;
var type = entry.GetType();
var types = type.FindInterfaces((_, __) => true, null).Append(type);
foreach (var t in types)
{
if(!Types.ContainsKey(t))
Types[t] = new Dictionary<Guid, IDatabaseEntry>();
Types[t][entry.GetId()] = entry;
}
OnDataUpdate?.Invoke();
}
return entry;
}
catch (Exception e)
{
Debug.Log($"Encountered exception while reading item {path.Split('\\').Last()}:\n{MessagePackSerializer.SerializeToJson(bytes)}\n{e.StackTrace}");
return null;
}
}
public static IEnumerable<IDatabaseEntry> AllEntries => Entries.Values;
public static IDatabaseEntry Get(Guid guid)
{
IDatabaseEntry entry;
Entries.TryGetValue(guid, out entry);
return entry;
}
public static T Get<T>(Guid guid) where T : IDatabaseEntry
{
IDatabaseEntry entry;
Types[typeof(T)].TryGetValue(guid, out entry);
return (T) entry;
}
public static IEnumerable<T> GetAll<T>()
{
return Types[typeof(T)].Values.Cast<T>();
}
public static void Save(IDatabaseEntry entry)
{
// Debug.Log("Serializing item: \n" + item.ToJson());
var dir = new DirectoryInfo(Path.Combine(_dir.FullName, entry.GetType().Name));
if(!dir.Exists)
dir.Create();
File.WriteAllBytes(Path.Combine(dir.FullName, entry.GetId().ToString()), entry.Serialize());
}
public static void Duplicate(IDatabaseEntry entry)
{
var oldID = entry.Entry.ID;
entry.Entry.ID = Guid.NewGuid();
Save(entry);
var dir = new DirectoryInfo(Path.Combine(_dir.FullName, entry.GetType().Name));
Load(Path.Combine(dir.FullName, oldID.ToString()));
}
public static void SaveAll()
{
foreach (var entry in GetAll<IDatabaseEntry>())
{
Save(entry);
}
}
public static void Delete(IDatabaseEntry entry)
{
var dir = new DirectoryInfo(Path.Combine(_dir.FullName, entry.GetType().Name));
File.Delete(Path.Combine(dir.FullName,entry.GetId().ToString()));
}
static Database()
{
_dir = new DirectoryInfo(Application.dataPath).Parent.CreateSubdirectory("GameData");
Action<string> update = path => Load(path);
foreach (var file in Directory.GetFiles(_dir.FullName, "*.*", SearchOption.AllDirectories))
update(file);
var watcher = new FileSystemWatcher(_dir.FullName);
watcher.IncludeSubdirectories = true;
watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName;
watcher.Changed += (_, args) => MainThreadDispatcher.Post(__ => update(args.FullPath), null);
watcher.Created += (_, args) => MainThreadDispatcher.Post(__ => update(args.FullPath), null);
watcher.Deleted += (_, args) => MainThreadDispatcher.Post(__ =>
{
var entryGuid = Guid.Parse(args.Name.Split('\\').Last());
foreach (var entries in Types.Values)
entries.Remove(entryGuid);
Entries.Remove(entryGuid);
OnDataUpdate?.Invoke();
}, null);
watcher.EnableRaisingEvents = true;
}
}

View file

@ -1,596 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using MessagePack;
using UnityEngine;
using Unity.Mathematics;
using UnityEngine.UI.Extensions;
// TODO: USE THIS EVERYWHERE
using static Unity.Mathematics.math;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class NameAttribute : Attribute
{
public string Name;
public NameAttribute(string name)
{
Name = name;
}
}
public class UpdateOrderAttribute : Attribute
{
public int Order;
public UpdateOrderAttribute(int order)
{
Order = order;
}
}
public class GlobalData : IDatabaseEntry
{
[Inspectable] [Key("entry")] public DatabaseEntry DatabaseEntry = new DatabaseEntry();
[Inspectable] [Key("targetPersistenceDuration")]
public float TargetPersistenceDuration;
[Inspectable] [Key("heatRadiationPower")]
public float HeatRadiationPower;
[Inspectable] [Key("heatRadiationMultiplier")]
public float HeatRadiationMultiplier;
[IgnoreMember] public static GlobalData Instance => Database.GetAll<GlobalData>().FirstOrDefault();
[IgnoreMember] public DatabaseEntry Entry => DatabaseEntry;
}
[Union(5, typeof(Hull))]
[Union(6, typeof(Shield))]
[Union(9, typeof(Thruster))]
[Union(12, typeof(EquippableItem))]
public interface IEquippable : ICraftable
{
HardpointType HardpointType { get; }
EquippableData Equippable { get; }
}
[Union(5, typeof(Hull))]
[Union(6, typeof(Shield))]
[Union(9, typeof(Thruster))]
[Union(12, typeof(CraftedItem))]
[Union(13, typeof(EquippableItem))]
public interface ICraftable : IItem
{
Dictionary<Guid, int> CraftingIngredients { get; }
}
[Union(5, typeof(Hull))]
[Union(6, typeof(Shield))]
[Union(9, typeof(Thruster))]
[Union(12, typeof(ItemData))]
[Union(13, typeof(CraftedItem))]
[Union(14, typeof(EquippableItem))]
public interface IItem : IDatabaseEntry
{
ItemData Data { get; }
}
[Union(5, typeof(Hull))]
[Union(6, typeof(Shield))]
[Union(9, typeof(Thruster))]
[Union(12, typeof(ItemData))]
[Union(13, typeof(CraftedItem))]
[Union(14, typeof(LoadoutDefinition))]
[Union(15, typeof(ZoneData))]
[Union(16, typeof(SimpleCommodity))]
[Union(17, typeof(CompoundCommodity))]
[Union(18, typeof(Gear))]
[Union(19, typeof(EquippableItem))]
//[Union(21, typeof(ContractData))]
//[Union(22, typeof(Station))]
[Union(23, typeof(Corporation))]
[Union(24, typeof(Player))]
[Union(25, typeof(GlobalData))]
public interface IDatabaseEntry
{
DatabaseEntry Entry { get; }
}
[Union(0, typeof(SimpleCommodity))]
[Union(1, typeof(CompoundCommodity))]
[Union(2, typeof(Gear))]
public interface IItemInstance : IDatabaseEntry
{
Guid ItemGuid { get; }
IItem ItemData { get; }
float Mass { get; }
}
[Union(0, typeof(Gear))]
[Union(1, typeof(CompoundCommodity))]
public interface ICraftedItemInstance : IItemInstance
{
float CraftedQuality { get; }
IEnumerable<IItemInstance> CraftedIngredients { get; }
}
[Inspectable]
[MessagePackObject]
public class DatabaseEntry
{
[Key("id")] public Guid ID = Guid.NewGuid();
[Inspectable] [Key("name")] public string Name;
[Inspectable] [Key("description")] public string Description;
}
[Inspectable]
[MessagePackObject]
[Name("Simple Commodity")]
public class ItemData : IItem
{
[Inspectable] [Key("entry")] public DatabaseEntry DatabaseEntry = new DatabaseEntry();
[Inspectable] [Key("mass")] public float Mass;
[Inspectable] [Key("size")] public float Size;
[RangedIntInspectable(0, 20)] [Key("level")] public int TechLevel;
[IgnoreMember] public ItemData Data => this;
[IgnoreMember] public DatabaseEntry Entry => DatabaseEntry;
}
[MessagePackObject]
public class EquippableItem : IEquippable
{
[Inspectable] [Key("hardpointType")] public HardpointType Hardpoint;
[Inspectable] [Key("itemData")] public ItemData ItemData = new ItemData();
[Inspectable] [Key("equippableData")] public EquippableData EquippableData = new EquippableData();
[Inspectable] [Key("ingredients")] public Dictionary<Guid, int> Ingredients = new Dictionary<Guid, int>();
[IgnoreMember] public HardpointType HardpointType => Hardpoint;
[IgnoreMember] public EquippableData Equippable => EquippableData;
[IgnoreMember] public ItemData Data => ItemData;
[IgnoreMember] public Dictionary<Guid, int> CraftingIngredients => Ingredients;
[IgnoreMember] public DatabaseEntry Entry => ItemData.Entry;
}
[Inspectable]
[MessagePackObject]
public class EquippableData
{
[Inspectable] [Key("draw")] public PerformanceStat EnergyDraw;
// [Inspectable] [Key("conductivity")] public float ThermalConductivity;
// [Inspectable] [Key("specificHeat")] public float SpecificHeat;
[Inspectable] [Key("performance")] public AnimationCurve HeatPerformanceCurve;
[TemperatureInspectable] [Key("minTemp")] public float MinimumTemperature;
[TemperatureInspectable] [Key("maxTemp")] public float MaximumTemperature;
[Inspectable] [Key("ruggedness")] public float Ruggedness;
[Inspectable] [Key("durability")] public float Durability;
[Inspectable] [Key("durabilityExponent")] public PerformanceStat DurabilityExponent;
[Inspectable] [Key("heatExponent")] public PerformanceStat HeatExponent;
[Inspectable] [Key("behaviors")] public List<IItemBehaviorData> Behaviors = new List<IItemBehaviorData>();
[IgnoreMember] private const int STEPS = 64;
[IgnoreMember] private float? _optimum;
[IgnoreMember]
public float OptimalTemperature
{
get
{
if (_optimum==null)
{
var samples = Enumerable.Range(0, STEPS).Select(i => (float) i / STEPS).ToArray();
float max = 0;
_optimum = 0;
foreach (var f in samples)
{
var p = HeatPerformanceCurve?.Evaluate(f)??0;
if (p > max)
{
max = p;
_optimum = f;
}
}
}
return (float) (MinimumTemperature + _optimum * (MaximumTemperature - MinimumTemperature));
}
}
}
[MessagePackObject]
[Name("Compound Commodity")]
public class CraftedItem : ICraftable
{
[Inspectable] [Key("itemData")] public ItemData ItemData = new ItemData();
[Inspectable] [Key("ingredients")] public Dictionary<Guid, int> Ingredients = new Dictionary<Guid, int>();
[IgnoreMember] public ItemData Data => ItemData;
[IgnoreMember] public Dictionary<Guid, int> CraftingIngredients => Ingredients;
[IgnoreMember] public DatabaseEntry Entry => ItemData.Entry;
}
[MessagePackObject]
public class Hull : IEquippable
{
[Inspectable] [Key("itemData")] public ItemData ItemData = new ItemData();
[Inspectable] [Key("equippableData")] public EquippableData EquippableData = new EquippableData();
[Inspectable] [Key("ingredients")] public Dictionary<Guid, int> Ingredients = new Dictionary<Guid, int>();
[Inspectable] [Key("hullCapacity")] public PerformanceStat Capacity;
[Inspectable] [Key("traction")] public PerformanceStat Traction;
[Inspectable] [Key("topSpeed")] public PerformanceStat TopSpeed;
[Inspectable] [Key("emissivity")] public PerformanceStat Emissivity;
[Inspectable] [Key("crossSection")] public PerformanceStat CrossSection;
[Key("schemaSprite")] [MessagePackFormatter(typeof(UnitySpriteFormatter))]
public Sprite Schematic;
[Inspectable] [Key("hardpoints")] public List<HardpointData> Hardpoints = new List<HardpointData>();
[Inspectable] [Key("visibility")] public AnimationCurve VisibilityCurve;
[MessagePackFormatter(typeof(UnityGameObjectFormatter))]
[Inspectable] [Key("prefab")] public GameObject Prefab;
[IgnoreMember] public HardpointType HardpointType => HardpointType.Hull;
[IgnoreMember] public EquippableData Equippable => EquippableData;
[IgnoreMember] public ItemData Data => ItemData;
[IgnoreMember] public Dictionary<Guid, int> CraftingIngredients => Ingredients;
[IgnoreMember] public DatabaseEntry Entry => ItemData.Entry;
}
//[MessagePackObject]
//public class Sensor : IEquippable
//{
// [Key("itemData")] public ItemData ItemData = new ItemData();
// [Key("equippableData")] public EquippableData EquippableData = new EquippableData();
// [Key("ingredients")] public Dictionary<Guid, int> Ingredients = new Dictionary<Guid, int>();
// [Key("radiance")] public PerformanceStat Radiance;
// [Key("masking")] public PerformanceStat RadianceMasking;
// [Key("sensitivity")] public PerformanceStat Sensitivity;
//
// [IgnoreMember] public HardpointType HardpointType => HardpointType.Sensors;
// [IgnoreMember] public EquippableData Equippable => EquippableData;
// [IgnoreMember] public ItemData Data => ItemData;
// [IgnoreMember] public Dictionary<Guid, int> CraftingIngredients => Ingredients;
// [IgnoreMember] public DatabaseEntry Entry => ItemData.Entry;
//}
//
[MessagePackObject]
public class Shield : IEquippable
{
[Inspectable] [Key("itemData")]
public ItemData ItemData = new ItemData();
[Inspectable] [Key("equippableData")]
public EquippableData EquippableData = new EquippableData();
[Inspectable] [Key("ingredients")]
public Dictionary<Guid, int> Ingredients = new Dictionary<Guid, int>();
[Inspectable] [Key("efficiency")]
public PerformanceStat Efficiency;
[Inspectable] [Key("shielding")]
public PerformanceStat Shielding;
[IgnoreMember] public HardpointType HardpointType => HardpointType.Shield;
[IgnoreMember] public EquippableData Equippable => EquippableData;
[IgnoreMember] public ItemData Data => ItemData;
[IgnoreMember] public Dictionary<Guid, int> CraftingIngredients => Ingredients;
[IgnoreMember] public DatabaseEntry Entry => ItemData.Entry;
}
[MessagePackObject]
public class Thruster : IEquippable
{
[Inspectable] [Key("itemData")] public ItemData ItemData = new ItemData();
[Inspectable] [Key("equippableData")] public EquippableData EquippableData = new EquippableData();
[Inspectable] [Key("ingredients")] public Dictionary<Guid, int> Ingredients = new Dictionary<Guid, int>();
[Inspectable] [Key("thrust")] public PerformanceStat Thrust;
[Inspectable] [Key("torque")] public PerformanceStat Torque;
[Inspectable] [Key("visibility")] public PerformanceStat Visibility;
[Inspectable] [Key("thrusterHeat")] public PerformanceStat Heat;
// [Inspectable] [Key("minSound")] public GranularEmitterStats MinSound;
// [Inspectable] [Key("maxSound")] public GranularEmitterStats MaxSound;
// [Inspectable] [Key("time")] public float SoundTransitionTime;
// [Inspectable] [Key("perlin")] public bool OscillatorPerlin;
// [MessagePackFormatter(typeof(UnityAudioClipFormatter))]
// [Inspectable] [Key("clip")] public AudioClip Clip;
[IgnoreMember] public HardpointType HardpointType => HardpointType.Thruster;
[IgnoreMember] public EquippableData Equippable => EquippableData;
[IgnoreMember] public ItemData Data => ItemData;
[IgnoreMember] public Dictionary<Guid, int> CraftingIngredients => Ingredients;
[IgnoreMember] public DatabaseEntry Entry => ItemData.Entry;
}
//[MessagePackObject]
//public class Launcher : IEquippable
//{
// [Key("itemData")] public ItemData ItemData = new ItemData();
// [Key("equippableData")] public EquippableData EquippableData = new EquippableData();
//// [Key("weaponData")] public WeaponData WeaponData = new WeaponData();
// [Key("ingredients")] public Dictionary<Guid, int> Ingredients = new Dictionary<Guid, int>();
// [MessagePackFormatter(typeof(UnityGameObjectFormatter))]
// [Key("projectile")] public GameObject ProjectilePrefab;
// [Key("launcherCaliber")] public LauncherCaliber Caliber;
// [Key("salvoDuration")] public PerformanceStat SalvoDuration;
// [Key("salvoSize")] public int SalvoSize;
//
// [IgnoreMember] public HardpointType HardpointType => HardpointType.Launcher;
// [IgnoreMember] public EquippableData Equippable => EquippableData;
// [IgnoreMember] public ItemData Data => ItemData;
// [IgnoreMember] public Dictionary<Guid, int> CraftingIngredients => Ingredients;
//// [IgnoreMember] public WeaponData Weapon => WeaponData;
// [IgnoreMember] public DatabaseEntry Entry => ItemData.Entry;
//}
//[MessagePackObject]
//public class Beam : IEquippable
//{
// [Key("itemData")] public ItemData ItemData = new ItemData();
// [Key("equippableData")] public EquippableData EquippableData = new EquippableData();
//// [Key("weaponData")] public WeaponData WeaponData = new WeaponData();
// [Key("ingredients")] public Dictionary<Guid, int> Ingredients = new Dictionary<Guid, int>();
// [Key("duration")] public PerformanceStat Duration;
// [Key("diameter")] public PerformanceStat Diameter;
// [Key("amplitude")] public AnimationCurve Amplitude;
// [MessagePackFormatter(typeof(UnityMaterialFormatter))]
// [Key("material")] public Material BeamMaterial;
// [Key("damageType")] public ProjectileType DamageType;
//
// [IgnoreMember] public HardpointType HardpointType => DamageType==ProjectileType.Physical?HardpointType.Ballistic:HardpointType.Energy;
// [IgnoreMember] public EquippableData Equippable => EquippableData;
// [IgnoreMember] public ItemData Data => ItemData;
// [IgnoreMember] public Dictionary<Guid, int> CraftingIngredients => Ingredients;
//// [IgnoreMember] public WeaponData Weapon => WeaponData;
// [IgnoreMember] public DatabaseEntry Entry => ItemData.Entry;
//}
[MessagePackObject]
public struct PerformanceStat
{
[Key("min")]
public float Min;
[Key("max")]
public float Max;
[Key("durabilityDependent")]
public bool DurabilityDependent;
[Key("heatDependent")]
public bool HeatDependent;
[Key("qualityExponent")]
public float QualityExponent;
[Key("ingredient")]
public Guid Ingredient;
[IgnoreMember] private Dictionary<Ship,Dictionary<IItemBehavior,float>> _scaleModifiers;
[IgnoreMember] private Dictionary<Ship,Dictionary<IItemBehavior,float>> _constantModifiers;
[IgnoreMember]
private Dictionary<Ship,Dictionary<IItemBehavior, float>> ScaleModifiers
{
get { return _scaleModifiers ?? (_scaleModifiers = new Dictionary<Ship,Dictionary<IItemBehavior, float>>()); }
}
[IgnoreMember]
private Dictionary<Ship,Dictionary<IItemBehavior, float>> ConstantModifiers
{
get { return _constantModifiers ?? (_constantModifiers = new Dictionary<Ship,Dictionary<IItemBehavior, float>>()); }
}
public Dictionary<IItemBehavior, float> GetScaleModifiers(Ship ship)
{
if(!ScaleModifiers.ContainsKey(ship))
ScaleModifiers[ship] = new Dictionary<IItemBehavior, float>();
return ScaleModifiers[ship];
}
public Dictionary<IItemBehavior, float> GetConstantModifiers(Ship ship)
{
if(!ConstantModifiers.ContainsKey(ship))
ConstantModifiers[ship] = new Dictionary<IItemBehavior, float>();
return ConstantModifiers[ship];
}
// Determine quality of either the item itself or the specific ingredient this stat depends on
public float Quality(Gear item)
{
Guid ingredientID = Ingredient;
float quality;
if (ingredientID == Guid.Empty)
quality = item.CompoundQuality();
else
{
var ingredientInstance =
item.CraftedIngredients.FirstOrDefault(i => i.ItemGuid == ingredientID) as ICraftedItemInstance;
if (ingredientInstance == null)
throw new InvalidOperationException(
$"Item {item.Entry.Name} has invalid crafting ingredient set for performance stat.");
quality = ingredientInstance.CompoundQuality();
}
return quality;
}
// Returns stat when not equipped
public float Evaluate(Gear item)
{
var quality = pow(Quality(item), QualityExponent);
var result = lerp(Min, Max, quality);
if (float.IsNaN(result))
return Min;
return result;
}
// Returns stat using ship temperature and modifiers
public float Evaluate(Gear item, Ship ship)
{
var itemData = item.EquippedItemData;
var heat = !HeatDependent ? 1 : pow(itemData.Performance(ship.Temperature), itemData.Equippable.HeatExponent.Evaluate(item));
var durability = !DurabilityDependent ? 1 : pow(item.Durability / itemData.Equippable.Durability, itemData.Equippable.DurabilityExponent.Evaluate(item));
var quality = pow(Quality(item), QualityExponent);
var scaleModifier = 1.0f;
if (_scaleModifiers != null && _scaleModifiers.ContainsKey(ship))
{
foreach (var mod in _scaleModifiers[ship].Values)
{
scaleModifier *= mod;
}
}
var constantModifier = 0.0f;
if (_constantModifiers != null && _constantModifiers.ContainsKey(ship))
{
foreach (var mod in _constantModifiers[ship].Values)
{
scaleModifier += mod;
}
}
var result = lerp(Min, Max, heat * durability * quality) * scaleModifier + constantModifier;
if (float.IsNaN(result))
return Min;
return result;
}
}
[MessagePackObject]
public class Hardpoint
{
[Key("item")] public Gear Item;
// [IgnoreMember] public Ship Ship;
[IgnoreMember] public HardpointData HardpointData;
// [IgnoreMember]
// public float HeatCapacity => Item != null
// ? Item.EquippedItemData.Data.Mass * Item.EquippedItemData.Equippable.SpecificHeat
// : Ship.Hull.EquippedItemData.Data.Mass * Ship.Hull.EquippedItemData.Equippable.SpecificHeat / Ship.HullHardpointCount;
}
[Name("Loadout")]
[MessagePackObject]
public class LoadoutDefinition : IDatabaseEntry
{
[Inspectable] [Key("entry")] public DatabaseEntry DatabaseEntry = new DatabaseEntry();
[InspectableDatabaseLink(typeof(Hull))] [Key("hull")] public Guid Hull;
[Key("items")] public List<Guid> Items = new List<Guid>();
[IgnoreMember] public DatabaseEntry Entry => DatabaseEntry;
}
[MessagePackObject]
public class Player : IDatabaseEntry
{
[Inspectable] [Key("entry")] public DatabaseEntry DatabaseEntry = new DatabaseEntry();
[Key("email")] public string Email;
[Key("password")] public string Password;
[IgnoreMember] public DatabaseEntry Entry => DatabaseEntry;
}
[MessagePackObject]
public class HardpointData
{
[Key("type")] public HardpointType Type;
}
[MessagePackObject]
public class ZoneData : IDatabaseEntry
{
[Inspectable] [Key("entry")] public DatabaseEntry DatabaseEntry = new DatabaseEntry();
[Inspectable] [Key("radius")] public float Radius = 500;
[Inspectable] [Key("radiusPower")] public float RadiusPower = 1.75f;
[Inspectable] [Key("mass")] public float Mass = 100000;
[Inspectable] [Key("massFloor")] public float MassFloor = 1;
[Inspectable] [Key("sunMass")] public float SunMass = 10000;
[Inspectable] [Key("gasGiantMass")] public float GasGiantMass = 2000;
[Inspectable] [Key("stations")] public List<Station> Stations = new List<Station>();
[InspectableDatabaseLink(typeof(ZoneData))] [Key("wormholes")]
public List<Guid> Wormholes = new List<Guid>();
[IgnoreMember] public DatabaseEntry Entry => DatabaseEntry;
}
[Inspectable]
[MessagePackObject]
public class Station
{
[Inspectable] [Key("name")] public string Name;
[InspectableDatabaseLink(typeof(Corporation))] [Key("faction")] public Guid Faction;
[Inspectable] [Key("dockingDistance")] public float DockingDistance = 10;
[Inspectable] [Key("buying")] public Dictionary<Guid, float> BuyPrices = new Dictionary<Guid, float>();
[Inspectable] [Key("selling")] public Dictionary<Guid, float> SellPrices = new Dictionary<Guid, float>();
[MessagePackFormatter(typeof(UnityGameObjectFormatter))] [Inspectable] [Key("prefab")] public GameObject Prefab;
}
[MessagePackObject]
public class Corporation : IDatabaseEntry
{
[Inspectable] [Key("entry")] public DatabaseEntry DatabaseEntry = new DatabaseEntry();
[InspectableDatabaseLink(typeof(Corporation))] [Key("parent")] public Guid ParentCorporation;
[Inspectable] [MessagePackFormatter(typeof(UnitySpriteFormatter))] [Key("logo")] public Sprite Logo;
[Inspectable] [Key("livery")] public Skin Livery = new Skin();
[IgnoreMember] public DatabaseEntry Entry => DatabaseEntry;
}
[Inspectable]
[MessagePackObject]
public class Skin
{
[Inspectable] [MessagePackFormatter(typeof(UnityMaterialFormatter))] [Key("primary")] public Material Primary;
[Inspectable] [MessagePackFormatter(typeof(UnityMaterialFormatter))] [Key("secondary")] public Material Secondary;
[Inspectable] [MessagePackFormatter(typeof(UnityMaterialFormatter))] [Key("trim")] public Material Trim;
[Inspectable] [MessagePackFormatter(typeof(UnityMaterialFormatter))] [Key("windshield")] public Material Windshield;
}
public enum ProjectileType
{
Physical,
Energy
}
public enum LauncherCaliber
{
Missile,
Torpedo,
Fighter
}
public enum HardpointType
{
Hull,
Thruster,
WarpThruster,
Reactor,
Radiator,
Shield,
Cooler,
Sensors,
Tool,
Energy,
Ballistic,
Launcher
}
public enum DamageType
{
Kinetic,
Energy,
Thermal,
Optical,
Ionizing
}

View file

@ -3,308 +3,17 @@ using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using UniRx;
using Unity.Mathematics;
using UnityEditor;
using UnityEngine;
using UnityEngine.Serialization;
// TODO: USE THIS EVERYWHERE
using static Unity.Mathematics.math;
using Object = UnityEngine.Object;
public class DatabaseListView : EditorWindow
{
// Singleton to avoid multiple instances of window.
private static DatabaseListView _instance;
public Guid SelectedItem;
public GUIStyle SelectedStyle;
private bool[] _gearFoldouts;
private bool _itemsFoldout;
private bool _compoundFoldout;
private bool _simpleFoldout;
private bool _commoditiesFoldout;
//private bool _consumablesFoldout;
private Type[] _itemTypes;
private bool _listItemStyle;
private GUIStyle _listStyleOdd;
private GUIStyle _listStyleEven;
private static DatabaseInspector _inspector;
private Type[] _entryTypes;
private bool[] _entryFoldouts;
private const float LineHeight = 20;
// Set instance on reloading the window, else it gets lost after script reload (due to PlayMode changes, ...).
public DatabaseListView()
{
_instance = this;
}
public static DatabaseListView ShowWindow()
{
if (_instance == null)
{
// "Get existing open window or if none, make a new one:" says documentation.
// But if called after script reloads a second instance will be opened! => Custom singleton required.
DatabaseListView window = EditorWindow.GetWindow<DatabaseListView>();
window.titleContent = new GUIContent("DB List");
_instance = window;
_instance.InitStyles();
window.Show();
}
else
_instance.Focus();
return _instance;
}
public GUIStyle ListItemStyle =>
(_listItemStyle = !_listItemStyle) ? _listStyleEven : _listStyleOdd;
[MenuItem("Window/Aetheria Database Tools")]
static void Init()
{
ShowWindow();
}
void OnEnable()
{
_inspector = DatabaseInspector.ShowWindow();
_itemTypes = typeof(IItem).GetAllInterfaceClasses();
_entryTypes = typeof(IDatabaseEntry).GetAllInterfaceClasses().Where(t => !t.GetInterfaces().Contains(typeof(IItem))&& !t.GetInterfaces().Contains(typeof(IItemInstance))).ToArray();
_gearFoldouts = new bool[_itemTypes.Length];
_entryFoldouts = new bool[_entryTypes.Length];
InitStyles();
Database.OnDataUpdate += Repaint;
}
private void InitStyles()
{
_listStyleOdd = new GUIStyle
{
normal = {background = XKCDColors.LightGrey.ToTexture()},
margin = new RectOffset(0, 0, 0, 0)
};
_listStyleEven = new GUIStyle
{
normal = {background = Color.Lerp(XKCDColors.LightGrey,Color.white,.5f).ToTexture()},
margin = new RectOffset(0, 0, 0, 0)
};
SelectedStyle = new GUIStyle
{
normal = {background = XKCDColors.Greyblue.ToTexture()},
margin = new RectOffset(0, 0, 0, 0)
};
}
public void OnGUI()
{
Event currentEvent = Event.current;
EventType currentEventType = currentEvent.type;
if (currentEventType == EventType.DragUpdated)
// Indicate that we don't accept drags ourselves
DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;
Action<IDatabaseEntry> select = item =>
{
SelectedItem = item.GetId();
Repaint();
_inspector.entry = Database.Get(SelectedItem);
_inspector.Repaint();
};
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
_itemsFoldout = EditorGUILayout.Foldout(_itemsFoldout, "Items", true);
}
if (_itemsFoldout)
{
var items = Database.AllEntries.Where(item => item is IItem).Cast<IItem>().ToArray();
for (var i = 0; i < _itemTypes.Length; i++)
{
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
GUILayout.Space(10);
_gearFoldouts[i] = EditorGUILayout.Foldout(_gearFoldouts[i],
((NameAttribute) _itemTypes[i].GetCustomAttribute(typeof(NameAttribute)))?.Name ?? _itemTypes[i].Name,
true);
}
if (_gearFoldouts[i])
{
foreach (var item in items.Where(e=>e.GetType()==_itemTypes[i]))
{
var style = ListItemStyle;
var selected = SelectedItem == item.GetId();
using (var h = new EditorGUILayout.HorizontalScope(selected?SelectedStyle:style))
{
if (h.rect.Contains(currentEvent.mousePosition))
{
if (currentEventType == EventType.MouseDrag)
{
DragAndDrop.PrepareStartDrag();
DragAndDrop.SetGenericData("Item", item.GetId());
DragAndDrop.StartDrag("Database Item");
}
else if (currentEventType == EventType.MouseUp)
select(item);
}
GUILayout.Space(20);
GUILayout.Label(item.Entry.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label);
}
}
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
CreateItem(_itemTypes[i]);
GUILayout.Space(20);
GUILayout.Label("New " + _itemTypes[i].Name);
var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
}
}
}
}
var entries = Database.AllEntries.Where(item => !(item is IItem)).ToArray();
for (var i = 0; i < _entryTypes.Length; i++)
{
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
_entryFoldouts[i] = EditorGUILayout.Foldout(_entryFoldouts[i],
((NameAttribute) _entryTypes[i].GetCustomAttribute(typeof(NameAttribute)))?.Name ?? _entryTypes[i].Name,
true);
}
if (_entryFoldouts[i])
{
foreach (var entry in entries.Where(e=>e.GetType()==_entryTypes[i]))
{
var style = ListItemStyle;
var selected = SelectedItem == entry.GetId();
using (var h = new EditorGUILayout.HorizontalScope(selected?SelectedStyle:style))
{
if (h.rect.Contains(currentEvent.mousePosition))
{
if (currentEventType == EventType.MouseDrag)
{
DragAndDrop.PrepareStartDrag();
DragAndDrop.SetGenericData("Item", entry.GetId());
DragAndDrop.StartDrag("Database Item");
}
else if (currentEventType == EventType.MouseUp)
select(entry);
}
GUILayout.Space(10);
GUILayout.Label(entry.Entry.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label);
}
}
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
CreateItem(_entryTypes[i]);
GUILayout.Space(10);
GUILayout.Label("New " + _entryTypes[i].Name);
var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
}
}
}
// EditorGUILayout.BeginHorizontal(ListItemStyle);
// _commoditiesFoldout = EditorGUILayout.Foldout(_commoditiesFoldout, "Commodities", true);
// EditorGUILayout.EndHorizontal();
// if (_commoditiesFoldout)
// {
// using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
// {
// GUILayout.Space(10);
// _simpleFoldout = EditorGUILayout.Foldout(_simpleFoldout, "Simple", true);
// }
// if (_simpleFoldout)
// {
// foreach (var item in Database.Items.Values.Where(e=>e.GetType()==typeof(ItemData)).Cast<ItemData>())
// {
// var style = ListItemStyle;
// var selected = SelectedItem == item.ID;
// using (var h = new EditorGUILayout.HorizontalScope(selected?_selectedStyle:style))
// {
// if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
// select(item);
// GUILayout.Space(20);
// GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label);
// }
// }
//
// using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
// {
// if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
// CreateItem(typeof(ItemData));
// GUILayout.Space(20);
// var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
// GUI.DrawTexture(rect, GlobalData.Instance.plus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
// GUILayout.Label("New Simple Commodity");
// }
// }
//
// using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
// {
// GUILayout.Space(10);
// _compoundFoldout = EditorGUILayout.Foldout(_compoundFoldout, "Compound", true);
// }
// if (_compoundFoldout)
// {
// foreach (var item in Database.Items.Values.Where(e=>e.GetType()==typeof(CraftedItem)).Cast<CraftedItem>())
// {
// var style = ListItemStyle;
// var selected = SelectedItem == item.GetId();
// using (var h = new EditorGUILayout.HorizontalScope(selected?_selectedStyle:style))
// {
// if (GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
// select(item);
// GUILayout.Space(20);
// GUILayout.Label(item.Item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label);
// }
// }
//
// using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
// {
// if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
// CreateItem(typeof(CraftedItem));
// GUILayout.Space(20);
// var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
// GUI.DrawTexture(rect, GlobalData.Instance.plus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
// GUILayout.Label("New Compound Commodity");
// }
// }
// }
// EditorGUILayout.BeginHorizontal(ListItemStyle);
// _consumablesFoldout = EditorGUILayout.Foldout(_consumablesFoldout, "Consumables", true);
// EditorGUILayout.EndHorizontal();
// if (_consumablesFoldout)
// {
//
// }
// HACK: This ensures none of the controls in this window can be focused (usually from clicking foldouts)
GUI.SetNextControlName("");
GUI.FocusControl("");
}
private void CreateItem(Type type)
{
var newEntry = (IDatabaseEntry) Activator.CreateInstance(type);
SelectedItem = newEntry.GetId();
newEntry.Entry.Name = $"New {type.Name}";
Database.Save(newEntry);
}
}
using static Unity.Mathematics.math;
public class DatabaseInspector : EditorWindow
{
public IDatabaseEntry entry;
public static DatabaseCache DatabaseCache;
public DatabaseEntry entry;
// Singleton to avoid multiple instances of window.
private static DatabaseInspector _instance;
@ -313,7 +22,7 @@ public class DatabaseInspector : EditorWindow
private GUIStyle _labelStyle;
private Vector2 _view;
private const float IconSize = 1.0f / 16;
private static HardpointData _hardpoint;
// private static HardpointData _hardpoint;
private static float2 _dragOffset;
private bool _ctrlDown;
private string[] _hardpointTypes;
@ -346,23 +55,23 @@ public class DatabaseInspector : EditorWindow
void OnEnable()
{
_list = DatabaseListView.ShowWindow();
Database.OnDataUpdate += Repaint;
DatabaseCache.OnDataUpdateLocal += _ => Repaint();
DatabaseCache.OnDataUpdateRemote += _ => EditorDispatcher.Dispatch(Repaint);
wantsMouseMove = true;
_hardpoint = null;
_hardpointTypes = Enum.GetNames(typeof(HardpointType));
}
public void Inspect(object obj, bool inspectablesOnly = false, ICraftable craftable = null)
public void Inspect(object obj, bool inspectablesOnly = false)
{
foreach (var field in obj.GetType().GetFields())
{
Inspect(obj, field, inspectablesOnly, craftable);
Inspect(obj, field, inspectablesOnly);
}
}
public void Inspect(object obj, FieldInfo field, bool inspectablesOnly = false, ICraftable craftable = null)
public void Inspect(object obj, FieldInfo field, bool inspectablesOnly = false)
{
var inspectable = field.GetCustomAttribute<InspectableAttribute>();
var inspectable = field.GetCustomAttribute<InspectableFieldAttribute>();
if (inspectable == null && inspectablesOnly) return;
var type = field.FieldType;
@ -381,6 +90,10 @@ public class DatabaseInspector : EditorWindow
else
field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (float) value));
}
else if (type == typeof(float4[]) && inspectable is InspectableAnimationCurveAttribute)
{
field.SetValue(obj, InspectAnimationCurve(field.Name.SplitCamelCase(), (float4[]) value));
}
else if (type == typeof(int))
{
if (inspectable is RangedIntInspectableAttribute)
@ -394,10 +107,16 @@ public class DatabaseInspector : EditorWindow
else if (type.IsEnum) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (int) field.GetValue(obj), Enum.GetNames(field.FieldType)));
//else if (field.FieldType == typeof(Color)) Inspect(field.Name, () => (Color) field.GetValue(obj), c => field.SetValue(obj, c));
else if (type == typeof(bool)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (bool) value));
else if (type == typeof(string)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (string) value, inspectable is InspectableTextAttribute));
else if (type == typeof(string))
{
if(inspectable is InspectablePrefabAttribute)
field.SetValue(obj, InspectGameObject(field.Name.SplitCamelCase(), (string) value));
else
field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (string) value, inspectable is InspectableTextAttribute));
}
else if (type == typeof(GameObject)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (GameObject) value));
else if (type == typeof(AnimationCurve)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (AnimationCurve) value));
else if (type == typeof(PerformanceStat)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (PerformanceStat) value, craftable));
else if (type == typeof(PerformanceStat)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (PerformanceStat) value, obj as CraftedItemData));
else if (type == typeof(PerformanceStat[]))
{
EditorGUILayout.LabelField(field.Name.SplitCamelCase(), EditorStyles.boldLabel);
@ -409,7 +128,7 @@ public class DatabaseInspector : EditorWindow
stats = new PerformanceStat[damageTypes.Length];
for (var i = 0; i < stats.Length; i++)
{
stats[i] = Inspect(damageTypes[i].SplitCamelCase(), stats[i], craftable);
stats[i] = Inspect(damageTypes[i].SplitCamelCase(), stats[i], obj as CraftedItemData);
}
field.SetValue(obj, stats);
}
@ -431,7 +150,7 @@ public class DatabaseInspector : EditorWindow
Inspect(field.Name.SplitCamelCase(), ref list, link.EntryType);
}
else if (type == typeof(Guid) && link != null) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (Guid) value, link.EntryType));
else if (type.GetCustomAttribute<InspectableAttribute>() != null)
else if (type.GetCustomAttribute<InspectableFieldAttribute>() != null)
{
EditorGUILayout.Space();
using (new EditorGUILayout.HorizontalScope())
@ -447,12 +166,12 @@ public class DatabaseInspector : EditorWindow
field.SetValue(obj, value = newSelection==0?null:Activator.CreateInstance(subTypes[newSelection-1]));
} else if(value == null) field.SetValue(obj, value = Activator.CreateInstance(type));
}
if(value != null) Inspect(field.GetValue(obj), inspectablesOnly, craftable);
if(value != null) Inspect(field.GetValue(obj), inspectablesOnly);
}
else if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))
{
var listType = field.FieldType.GenericTypeArguments[0];
if (listType.GetCustomAttribute<InspectableAttribute>() != null)
if (listType.GetCustomAttribute<InspectableFieldAttribute>() != null)
{
EditorGUILayout.Space();
using (new EditorGUILayout.VerticalScope(GUI.skin.box))
@ -484,7 +203,7 @@ public class DatabaseInspector : EditorWindow
EditorGUILayout.Space();
Inspect(o, inspectablesOnly, craftable);
Inspect(o, inspectablesOnly);
}
}
using (new EditorGUILayout.HorizontalScope(_list.ListItemStyle))
@ -502,7 +221,7 @@ public class DatabaseInspector : EditorWindow
menu.AddItem(new GUIContent(behaviorType.Name), false, () =>
{
list.Add(Activator.CreateInstance(behaviorType));
Database.Save(entry);
DatabaseCache.Add(entry);
});
}
menu.ShowAsContext();
@ -670,6 +389,15 @@ public class DatabaseInspector : EditorWindow
}
}
public string InspectGameObject(string label, string value)
{
using (var h = new EditorGUILayout.HorizontalScope())
{
GUILayout.Label(label, GUILayout.Width(width));
return AssetDatabase.GetAssetPath(EditorGUILayout.ObjectField(AssetDatabase.LoadAssetAtPath<GameObject>(value), typeof(GameObject), false));
}
}
public GameObject Inspect(string label, GameObject value)
{
using (var h = new EditorGUILayout.HorizontalScope())
@ -679,6 +407,20 @@ public class DatabaseInspector : EditorWindow
}
}
public float4[] InspectAnimationCurve(string label, float4[] value)
{
var val = value != null && value.Length > 0
? new AnimationCurve(value.Select(v => new Keyframe(v.x, v.y, v.z, v.w)).ToArray())
: new AnimationCurve();
using (var h = new EditorGUILayout.HorizontalScope())
{
GUILayout.Label(label, GUILayout.Width(width));
val = EditorGUILayout.CurveField(val, Color.yellow, new Rect(0, 0, 1, 1));
}
return val.keys.Select(k => float4(k.time, k.value, k.inTangent, k.outTangent)).ToArray();
}
public AnimationCurve Inspect(string label, AnimationCurve value)
{
using (var h = new EditorGUILayout.HorizontalScope())
@ -695,15 +437,15 @@ public class DatabaseInspector : EditorWindow
public Guid Inspect(string label, Guid value, Type entryType)
{
EditorGUILayout.LabelField(label, EditorStyles.boldLabel);
var valueEntry = Database.Get(value);
var valueEntry = DatabaseCache.Get(value);
using (var h = new EditorGUILayout.HorizontalScope(GUI.skin.box))
{
GUILayout.Label(valueEntry?.Entry.Name ?? $"Assign a {entryType.Name} by dragging from the list panel.");
GUILayout.Label((valueEntry as INamedEntry)?.EntryName ?? valueEntry?.ID.ToString() ?? $"Assign a {entryType.Name} by dragging from the list panel.");
if (h.rect.Contains(Event.current.mousePosition) && (Event.current.type == EventType.DragUpdated || Event.current.type == EventType.DragPerform))
{
var guid = (Guid) DragAndDrop.GetGenericData("Item");
var dragEntry = Database.Get(guid);
var dragEntry = DatabaseCache.Get(guid);
if(Event.current.type == EventType.DragUpdated)
DragAndDrop.visualMode = dragEntry != null && dragEntry.GetType()==entryType ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected;
else if(Event.current.type == EventType.DragPerform)
@ -739,7 +481,7 @@ public class DatabaseInspector : EditorWindow
{
using (var h = new EditorGUILayout.HorizontalScope(_list.ListItemStyle))
{
GUILayout.Label(Database.Get(ingredient.Key).Entry.Name);
GUILayout.Label(DatabaseCache.Get<ItemData>(ingredient.Key).Name);
value[ingredient.Key] = EditorGUILayout.DelayedIntField(value[ingredient.Key], GUILayout.Width(50));
var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
@ -785,7 +527,7 @@ public class DatabaseInspector : EditorWindow
{
using (var h = new EditorGUILayout.HorizontalScope(_list.ListItemStyle))
{
GUILayout.Label(Database.Get(ingredient.Key).Entry.Name);
GUILayout.Label(DatabaseCache.Get(ingredient.Key).ID.ToString());
value[ingredient.Key] = EditorGUILayout.DelayedFloatField(value[ingredient.Key], GUILayout.Width(50));
var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
@ -831,7 +573,7 @@ public class DatabaseInspector : EditorWindow
{
using (var h = new EditorGUILayout.HorizontalScope(_list.ListItemStyle))
{
GUILayout.Label(Database.Get(ingredient).Entry.Name);
GUILayout.Label((DatabaseCache.Get(ingredient) as INamedEntry)?.EntryName ?? DatabaseCache.Get(ingredient).ID.ToString());
var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
@ -843,7 +585,7 @@ public class DatabaseInspector : EditorWindow
if (v.rect.Contains(Event.current.mousePosition))
{
var guid = DragAndDrop.GetGenericData("Item");
var dragObj = DragAndDrop.GetGenericData("Item") is Guid ? ((Guid) guid).Get() : null;
var dragObj = DragAndDrop.GetGenericData("Item") is Guid ? DatabaseCache.Get((Guid) guid) : null;
if(Event.current.type == EventType.DragUpdated)
DragAndDrop.visualMode = entryType.IsInstanceOfType(dragObj) ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected;
else if(Event.current.type == EventType.DragPerform)
@ -859,7 +601,7 @@ public class DatabaseInspector : EditorWindow
}
}
public PerformanceStat Inspect(string label, PerformanceStat value, ICraftable craftable)
public PerformanceStat Inspect(string label, PerformanceStat value, CraftedItemData crafted)
{
using (new EditorGUILayout.VerticalScope())
{
@ -887,14 +629,14 @@ public class DatabaseInspector : EditorWindow
{
GUILayout.Label("", GUILayout.Width(width));
GUILayout.Label("Ingredient", GUILayout.ExpandWidth(false));
var ingredients = craftable.CraftingIngredients.Keys.Select(Database.Get).Where(i => i is CraftedItem).Cast<CraftedItem>().ToList();
var ingredient = Database.Get(value.Ingredient) as CraftedItem;
var names = ingredients.Select(i => i.Entry.Name).Append("None").ToArray();
var selected = value.Ingredient == Guid.Empty || !craftable.CraftingIngredients.ContainsKey(value.Ingredient)
var ingredients = crafted.Ingredients.Keys.Select(DatabaseCache.Get).Where(i => i is CraftedItemData).Cast<CraftedItemData>().ToList();
var ingredient = value.Ingredient != null ? DatabaseCache.Get(value.Ingredient.Value) as CraftedItemData : null;
var names = ingredients.Select(i => i.Name).Append("None").ToArray();
var selected = value.Ingredient == null || !crafted.Ingredients.ContainsKey(value.Ingredient.Value)
? names.Length - 1
: ingredients.IndexOf(ingredient);
var selection = EditorGUILayout.Popup(selected, names);
value.Ingredient = selection == names.Length - 1 ? Guid.Empty : ingredients[selection].GetId();
value.Ingredient = selection == names.Length - 1 ? (Guid?) null : ingredients[selection].ID;
}
EditorGUILayout.Space();
@ -932,22 +674,22 @@ public class DatabaseInspector : EditorWindow
EditorGUI.BeginChangeCheck();
var dataEntry = entry.Entry;
var dataEntry = entry;
using (new EditorGUILayout.HorizontalScope())
{
if(GUILayout.Button("Print JSON"))
Debug.Log(entry.ToJson());
if (GUILayout.Button("Duplicate"))
{
Database.Duplicate(entry);
}
if (GUILayout.Button("Delete Entry"))
{
Database.Delete(entry);
entry = null;
return;
}
// if (GUILayout.Button("Duplicate"))
// {
// DatabaseCache.Duplicate(entry);
// }
// if (GUILayout.Button("Delete Entry"))
// {
// DatabaseCache.Delete(entry);
// entry = null;
// return;
// }
}
using (var h = new EditorGUILayout.HorizontalScope())
@ -956,10 +698,10 @@ public class DatabaseInspector : EditorWindow
EditorGUILayout.LabelField(dataEntry.ID.ToString());
}
Inspect(entry, true, entry as ICraftable);
Inspect(entry, true);
#region Hull
var hull = entry as Hull;
var hull = entry as HullData;
if (hull != null)
{
EditorGUILayout.Space();
@ -969,121 +711,121 @@ public class DatabaseInspector : EditorWindow
}
#endregion
#region Loadout
var loadout = entry as LoadoutDefinition;
if (loadout != null)
{
EditorGUILayout.Space();
EditorGUILayout.LabelField("Loadout Hull", EditorStyles.boldLabel);
var loadoutHull = Database.Get(loadout.Hull) as Hull;
if (loadoutHull != null)
{
// Reserve slots in the loadout for all equippable (non-hull) hardpoints
var hardpoints = loadoutHull.Hardpoints.Where(h => h.Type != HardpointType.Hull).ToArray();
if (loadout.Items.Count < hardpoints.Length)
loadout.Items.AddRange(Enumerable.Repeat(Guid.Empty, hardpoints.Length - loadout.Items.Count));
EditorGUILayout.Space();
using (var h = new EditorGUILayout.HorizontalScope())
{
GUILayout.Label($"Equipped Items: {loadout.Items.Sum(i=>((IItem) Database.Get(i))?.Data.Size ?? 0)}/{loadoutHull.Capacity.Min}", EditorStyles.boldLabel);
GUILayout.Label($"Mass: {loadout.Items.Sum(i=>((IItem) Database.Get(i))?.Data.Mass ?? 0)}", EditorStyles.boldLabel, GUILayout.ExpandWidth(false));
}
int itemIndex = 0;
using (var v = new EditorGUILayout.VerticalScope(GUI.skin.box))
{
for (; itemIndex < hardpoints.Length; itemIndex++)
{
var hp = hardpoints[itemIndex];
var loadoutItem = Database.Get(loadout.Items[itemIndex]) as IEquippable;
if (loadoutItem != null && loadoutItem.HardpointType != hp.Type)
{
loadout.Items[itemIndex] = Guid.Empty;
Debug.Log($"Invalid Item \"{loadoutItem.Entry.Name}\" in {Enum.GetName(typeof(HardpointType),hp.Type)} hardpoint for loadout \"{loadout.Entry.Name}\"");
Database.Save(entry);
}
using (var h = new EditorGUILayout.HorizontalScope(_list.ListItemStyle))
{
if (h.rect.Contains(current.mousePosition) &&
(currentEventType == EventType.DragUpdated || currentEventType == EventType.DragPerform))
{
var guid = (Guid) DragAndDrop.GetGenericData("Item");
var draggedEquippable = Database.Get(guid) as IEquippable;
var good = draggedEquippable != null && draggedEquippable.HardpointType == hp.Type;
if (currentEventType == EventType.DragUpdated)
DragAndDrop.visualMode = good ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected;
else if (currentEventType == EventType.DragPerform && good)
{
DragAndDrop.AcceptDrag();
loadout.Items[itemIndex] = guid;
Database.Save(entry);
}
}
GUILayout.Label(Enum.GetName(typeof(HardpointType), hp.Type));
if (loadoutItem == null || loadoutItem.HardpointType != hp.Type)
GUILayout.Label("Empty Hardpoint", GUILayout.ExpandWidth(false));
else
{
GUILayout.Label(loadoutItem.Entry.Name, GUILayout.ExpandWidth(false));
var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
if (GUI.Button(rect, GUIContent.none, GUIStyle.none))
loadout.Items[itemIndex] = Guid.Empty;
}
}
}
}
EditorGUILayout.Space();
EditorGUILayout.LabelField("Cargo", EditorStyles.boldLabel);
using (var v = new EditorGUILayout.VerticalScope(GUI.skin.box))
{
if (v.rect.Contains(current.mousePosition) &&
(currentEventType == EventType.DragUpdated || currentEventType == EventType.DragPerform))
{
var guid = (Guid) DragAndDrop.GetGenericData("Item");
var dragItem = Database.Get(guid) as IItem;
if (currentEventType == EventType.DragUpdated)
DragAndDrop.visualMode = dragItem != null ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected;
else if (currentEventType == EventType.DragPerform && dragItem != null)
{
DragAndDrop.AcceptDrag();
loadout.Items.Add(guid);
Database.Save(entry);
}
}
if(itemIndex == loadout.Items.Count)
GUILayout.Label("Nothing Here!");
for (; itemIndex < loadout.Items.Count; itemIndex++)
{
var loadoutItem = Database.Get(loadout.Items[itemIndex]) as IItem;
using (var h = new EditorGUILayout.HorizontalScope(_list.ListItemStyle))
{
GUILayout.Label(loadoutItem?.Entry.Name ?? "Invalid Item");
var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
if (GUI.Button(rect, GUIContent.none, GUIStyle.none))
loadout.Items.RemoveAt(itemIndex--);
}
}
}
}
}
#endregion
// #region Loadout
// var loadout = entry as LoadoutData;
// if (loadout != null)
// {
// EditorGUILayout.Space();
// EditorGUILayout.LabelField("Loadout Hull", EditorStyles.boldLabel);
//
// var loadoutHull = Database.Get(loadout.Hull) as HullData;
//
// if (loadoutHull != null)
// {
// // Reserve slots in the loadout for all equippable (non-hull) hardpoints
// var hardpoints = loadoutHull.Hardpoints.Where(h => h.Type != HardpointType.Hull).ToArray();
// if (loadout.Items.Count < hardpoints.Length)
// loadout.Items.AddRange(Enumerable.Repeat(Guid.Empty, hardpoints.Length - loadout.Items.Count));
//
// // EditorGUILayout.Space();
// // using (var h = new EditorGUILayout.HorizontalScope())
// // {
// // GUILayout.Label($"Equipped Items: {loadout.Items.Sum(i=>((ItemData) Database.Get(i))?.Data.Size ?? 0)}/{loadoutHull.Capacity.Min}", EditorStyles.boldLabel);
// // GUILayout.Label($"Mass: {loadout.Items.Sum(i=>((ItemData) Database.Get(i))?.Data.Mass ?? 0)}", EditorStyles.boldLabel, GUILayout.ExpandWidth(false));
// // }
//
// int itemIndex = 0;
// using (var v = new EditorGUILayout.VerticalScope(GUI.skin.box))
// {
// for (; itemIndex < hardpoints.Length; itemIndex++)
// {
// var hp = hardpoints[itemIndex];
//
// var loadoutItem = Database.Get(loadout.Items[itemIndex]) as EquippableItemData;
//
// if (loadoutItem != null && loadoutItem.HardpointType != hp.Type)
// {
// loadout.Items[itemIndex] = Guid.Empty;
// Debug.Log($"Invalid Item \"{loadoutItem.Name}\" in {Enum.GetName(typeof(HardpointType),hp.Type)} hardpoint for loadout \"{loadout.Name}\"");
// Database.Save(entry);
// }
//
// using (var h = new EditorGUILayout.HorizontalScope(_list.ListItemStyle))
// {
// if (h.rect.Contains(current.mousePosition) &&
// (currentEventType == EventType.DragUpdated || currentEventType == EventType.DragPerform))
// {
// var guid = (Guid) DragAndDrop.GetGenericData("Item");
// var draggedEquippable = Database.Get(guid) as EquippableItemData;
// var good = draggedEquippable != null && draggedEquippable.HardpointType == hp.Type;
// if (currentEventType == EventType.DragUpdated)
// DragAndDrop.visualMode = good ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected;
// else if (currentEventType == EventType.DragPerform && good)
// {
// DragAndDrop.AcceptDrag();
// loadout.Items[itemIndex] = guid;
//
// Database.Save(entry);
// }
// }
//
// GUILayout.Label(Enum.GetName(typeof(HardpointType), hp.Type));
// if (loadoutItem == null || loadoutItem.HardpointType != hp.Type)
// GUILayout.Label("Empty Hardpoint", GUILayout.ExpandWidth(false));
// else
// {
// GUILayout.Label(loadoutItem.Name, GUILayout.ExpandWidth(false));
// var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
// GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
// if (GUI.Button(rect, GUIContent.none, GUIStyle.none))
// loadout.Items[itemIndex] = Guid.Empty;
// }
// }
// }
// }
//
// EditorGUILayout.Space();
// EditorGUILayout.LabelField("Cargo", EditorStyles.boldLabel);
//
// using (var v = new EditorGUILayout.VerticalScope(GUI.skin.box))
// {
// if (v.rect.Contains(current.mousePosition) &&
// (currentEventType == EventType.DragUpdated || currentEventType == EventType.DragPerform))
// {
// var guid = (Guid) DragAndDrop.GetGenericData("Item");
// var dragItem = Database.Get(guid) as ItemData;
// if (currentEventType == EventType.DragUpdated)
// DragAndDrop.visualMode = dragItem != null ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected;
// else if (currentEventType == EventType.DragPerform && dragItem != null)
// {
// DragAndDrop.AcceptDrag();
//
// loadout.Items.Add(guid);
// Database.Save(entry);
// }
// }
// if(itemIndex == loadout.Items.Count)
// GUILayout.Label("Nothing Here!");
// for (; itemIndex < loadout.Items.Count; itemIndex++)
// {
// var loadoutItem = Database.Get(loadout.Items[itemIndex]) as ItemData;
// using (var h = new EditorGUILayout.HorizontalScope(_list.ListItemStyle))
// {
// GUILayout.Label(loadoutItem?.Name ?? "Invalid Item");
// var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
// GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
// if (GUI.Button(rect, GUIContent.none, GUIStyle.none))
// loadout.Items.RemoveAt(itemIndex--);
// }
// }
// }
// }
// }
// #endregion
if (EditorGUI.EndChangeCheck())
{
Database.Save(entry);
DatabaseCache.Add(entry);
}
EditorGUILayout.EndScrollView();

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 017a6733a6cd4ee4b99d7c53f15d21da
guid: 30b612dc279f724418b8a7a5426287c2
MonoImporter:
externalObjects: {}
serializedVersion: 2

View file

@ -0,0 +1,378 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using RethinkDb.Driver;
using RethinkDb.Driver.Net;
using UniRx;
using Unity.Mathematics;
using UnityEditor;
using UnityEngine;
using UnityEngine.Serialization;
// TODO: USE THIS EVERYWHERE
using static Unity.Mathematics.math;
using Object = UnityEngine.Object;
public class DatabaseListView : EditorWindow
{
// Singleton to avoid multiple instances of window.
private static DatabaseListView _instance;
public Guid SelectedItem;
public GUIStyle SelectedStyle;
public static RethinkDB R = RethinkDB.R;
private Connection _connection;
private DatabaseCache _databaseCache;
private bool[] _gearFoldouts;
private bool _itemsFoldout;
private bool _compoundFoldout;
private bool _simpleFoldout;
private bool _commoditiesFoldout;
//private bool _consumablesFoldout;
private Type[] _itemTypes;
private bool _listItemStyle;
private GUIStyle _listStyleOdd;
private GUIStyle _listStyleEven;
private static DatabaseInspector _inspector;
private Type[] _entryTypes;
private bool[] _entryFoldouts;
private string _connectionString;
private const float LineHeight = 20;
// Set instance on reloading the window, else it gets lost after script reload (due to PlayMode changes, ...).
public DatabaseListView()
{
_instance = this;
}
public static DatabaseListView ShowWindow()
{
if (_instance == null)
{
// "Get existing open window or if none, make a new one:" says documentation.
// But if called after script reloads a second instance will be opened! => Custom singleton required.
DatabaseListView window = EditorWindow.GetWindow<DatabaseListView>();
window.titleContent = new GUIContent("DB List");
_instance = window;
_instance.InitStyles();
window.Show();
}
else
_instance.Focus();
return _instance;
}
public GUIStyle ListItemStyle =>
(_listItemStyle = !_listItemStyle) ? _listStyleEven : _listStyleOdd;
[MenuItem("Window/Aetheria Database Tools")]
static void Init()
{
ShowWindow();
}
void OnEnable()
{
// Create database cache
_databaseCache = new DatabaseCache();
_databaseCache.OnDataUpdateLocal += _ => Repaint();
_databaseCache.OnDataUpdateRemote += _ => EditorDispatcher.Dispatch(Repaint);
DatabaseInspector.DatabaseCache = _databaseCache;
_inspector = DatabaseInspector.ShowWindow();
_itemTypes = typeof(ItemData).GetAllChildClasses()
.Where(t => t.GetCustomAttribute<InspectableAttribute>() != null).ToArray();
_entryTypes = typeof(DatabaseEntry).GetAllChildClasses()
.Where(t => t.GetCustomAttribute<InspectableAttribute>() != null && !typeof(ItemData).IsAssignableFrom(t)).ToArray();
_gearFoldouts = new bool[_itemTypes.Length];
_entryFoldouts = new bool[_entryTypes.Length];
if (EditorPrefs.HasKey("RethinkDB.URL"))
_connectionString = EditorPrefs.GetString("RethinkDB.URL");
else
_connectionString = "Enter DB URL";
InitStyles();
}
private void InitStyles()
{
var isDark = EditorGUIUtility.isProSkin;
_listStyleOdd = new GUIStyle
{
normal = {background = isDark ? XKCDColors.DarkGrey.ToTexture() : XKCDColors.LightGrey.ToTexture()},
margin = new RectOffset(0, 0, 0, 0)
};
_listStyleEven = new GUIStyle
{
normal = {background = isDark ? Color.Lerp(XKCDColors.DarkGrey,Color.black,.5f).ToTexture() : Color.Lerp(XKCDColors.LightGrey,Color.white,.5f).ToTexture()},
margin = new RectOffset(0, 0, 0, 0)
};
SelectedStyle = new GUIStyle
{
normal = {background = isDark ? XKCDColors.DarkGreyBlue.ToTexture() : XKCDColors.Greyblue.ToTexture()},
margin = new RectOffset(0, 0, 0, 0)
};
}
public void OnGUI()
{
Event currentEvent = Event.current;
EventType currentEventType = currentEvent.type;
if (currentEventType == EventType.DragUpdated)
// Indicate that we don't accept drags ourselves
DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;
using (var h = new EditorGUILayout.HorizontalScope())
{
_connectionString = EditorGUILayout.TextField(_connectionString);
if (GUILayout.Button("Connect"))
{
EditorPrefs.SetString("RethinkDB.URL", _connectionString);
_connection = R.Connection().Hostname(_connectionString).Port(RethinkDBConstants.DefaultPort).Timeout(60).Connect();
Debug.Log("Connected to RethinkDB");
// When entries are changed locally, push the changes to RethinkDB
_databaseCache.OnDataUpdateLocal +=
entry =>
{
Debug.Log($"Uploading entry to RethinkDB: {entry.ID}");
R.Db("Aetheria").Table("Items").Replace(entry).RunAsync(_connection);
};
// Get all item data from RethinkDB
Task.Run(async () =>
{
var result = await R.Db("Aetheria").Table("Items").RunCursorAsync<DatabaseEntry>(_connection);
while (await result.MoveNextAsync())
{
var entry = result.Current;
Debug.Log($"Received entry from RethinkDB: {entry.ID}");
_databaseCache.Add(entry, true);
}
}).WrapErrors();
// Subscribe to changes from RethinkDB
Task.Run(async () =>
{
var result = await R.Db("Aetheria").Table("Items").Changes()
.RunChangesAsync<DatabaseEntry>(_connection);
while (await result.MoveNextAsync())
{
var change = result.Current;
var entry = change.NewValue;
Debug.Log($"Received change to entry from RethinkDB: {entry.ID}");
_databaseCache.Add(entry, true);
}
}).WrapErrors();
}
}
GUILayout.Space(5);
Action<DatabaseEntry> select = item =>
{
SelectedItem = item.ID;
Repaint();
_inspector.entry = _databaseCache.Get(SelectedItem);
_inspector.Repaint();
};
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
_itemsFoldout = EditorGUILayout.Foldout(_itemsFoldout, "Items", true);
}
if (_itemsFoldout)
{
var items = _databaseCache.AllEntries.Where(item => item is ItemData).Cast<ItemData>().ToArray();
for (var i = 0; i < _itemTypes.Length; i++)
{
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
GUILayout.Space(10);
_gearFoldouts[i] = EditorGUILayout.Foldout(_gearFoldouts[i],
((NameAttribute) _itemTypes[i].GetCustomAttribute(typeof(NameAttribute)))?.Name ?? _itemTypes[i].Name,
true);
}
if (_gearFoldouts[i])
{
foreach (var item in items.Where(e=>e.GetType()==_itemTypes[i]))
{
var style = ListItemStyle;
var selected = SelectedItem == item.ID;
using (var h = new EditorGUILayout.HorizontalScope(selected?SelectedStyle:style))
{
if (h.rect.Contains(currentEvent.mousePosition))
{
if (currentEventType == EventType.MouseDrag)
{
DragAndDrop.PrepareStartDrag();
DragAndDrop.SetGenericData("Item", item.ID);
DragAndDrop.StartDrag("Database Item");
}
else if (currentEventType == EventType.MouseUp)
select(item);
}
GUILayout.Space(20);
GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label);
}
}
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
CreateItem(_itemTypes[i]);
GUILayout.Space(20);
GUILayout.Label("New " + _itemTypes[i].Name);
var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
}
}
}
}
var entries = _databaseCache.AllEntries.Where(item => !(item is ItemData)).ToArray();
for (var i = 0; i < _entryTypes.Length; i++)
{
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
_entryFoldouts[i] = EditorGUILayout.Foldout(_entryFoldouts[i],
((NameAttribute) _entryTypes[i].GetCustomAttribute(typeof(NameAttribute)))?.Name ?? _entryTypes[i].Name,
true);
}
if (_entryFoldouts[i])
{
int index = 0;
foreach (var entry in entries.Where(e=>e.GetType()==_entryTypes[i]))
{
index++;
var style = ListItemStyle;
var selected = SelectedItem == entry.ID;
using (var h = new EditorGUILayout.HorizontalScope(selected?SelectedStyle:style))
{
if (h.rect.Contains(currentEvent.mousePosition))
{
if (currentEventType == EventType.MouseDrag)
{
DragAndDrop.PrepareStartDrag();
DragAndDrop.SetGenericData("Item", entry.ID);
DragAndDrop.StartDrag("Database Item");
}
else if (currentEventType == EventType.MouseUp)
select(entry);
}
GUILayout.Space(10);
GUILayout.Label((entry as INamedEntry)?.EntryName ?? index.ToString(), selected ? EditorStyles.whiteLabel : GUI.skin.label);
}
}
using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
{
if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
CreateItem(_entryTypes[i]);
GUILayout.Space(10);
GUILayout.Label("New " + _entryTypes[i].Name);
var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
}
}
}
// EditorGUILayout.BeginHorizontal(ListItemStyle);
// _commoditiesFoldout = EditorGUILayout.Foldout(_commoditiesFoldout, "Commodities", true);
// EditorGUILayout.EndHorizontal();
// if (_commoditiesFoldout)
// {
// using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
// {
// GUILayout.Space(10);
// _simpleFoldout = EditorGUILayout.Foldout(_simpleFoldout, "Simple", true);
// }
// if (_simpleFoldout)
// {
// foreach (var item in Database.Items.Values.Where(e=>e.GetType()==typeof(ItemData)).Cast<ItemData>())
// {
// var style = ListItemStyle;
// var selected = SelectedItem == item.ID;
// using (var h = new EditorGUILayout.HorizontalScope(selected?_selectedStyle:style))
// {
// if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
// select(item);
// GUILayout.Space(20);
// GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label);
// }
// }
//
// using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
// {
// if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
// CreateItem(typeof(ItemData));
// GUILayout.Space(20);
// var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
// GUI.DrawTexture(rect, GlobalData.Instance.plus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
// GUILayout.Label("New Simple Commodity");
// }
// }
//
// using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
// {
// GUILayout.Space(10);
// _compoundFoldout = EditorGUILayout.Foldout(_compoundFoldout, "Compound", true);
// }
// if (_compoundFoldout)
// {
// foreach (var item in Database.Items.Values.Where(e=>e.GetType()==typeof(CraftedItem)).Cast<CraftedItem>())
// {
// var style = ListItemStyle;
// var selected = SelectedItem == item.GetId();
// using (var h = new EditorGUILayout.HorizontalScope(selected?_selectedStyle:style))
// {
// if (GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
// select(item);
// GUILayout.Space(20);
// GUILayout.Label(item.Item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label);
// }
// }
//
// using (var h = new EditorGUILayout.HorizontalScope(ListItemStyle))
// {
// if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none))
// CreateItem(typeof(CraftedItem));
// GUILayout.Space(20);
// var rect = EditorGUILayout.GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight));
// GUI.DrawTexture(rect, GlobalData.Instance.plus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0);
// GUILayout.Label("New Compound Commodity");
// }
// }
// }
// EditorGUILayout.BeginHorizontal(ListItemStyle);
// _consumablesFoldout = EditorGUILayout.Foldout(_consumablesFoldout, "Consumables", true);
// EditorGUILayout.EndHorizontal();
// if (_consumablesFoldout)
// {
//
// }
// HACK: This ensures none of the controls in this window can be focused (usually from clicking foldouts)
//GUI.SetNextControlName("");
//GUI.FocusControl("");
}
private void CreateItem(Type type)
{
var newEntry = (DatabaseEntry) Activator.CreateInstance(type);
SelectedItem = newEntry.ID;
if(newEntry is INamedEntry entry)
entry.EntryName = $"New {type.Name}";
_databaseCache.Add(newEntry);
}
}

View file

@ -0,0 +1,81 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEditor;
using UnityEngine;
public static class EditorDispatcher
{
private static readonly Queue<Action> dispatchQueue = new Queue<Action>();
private static double timeSliceLimit = 10.0; // in miliseconds
private static Stopwatch timer;
static EditorDispatcher()
{
EditorApplication.update += Update;
timer = new Stopwatch();
}
private static void Update ()
{
lock (dispatchQueue)
{
int dispatchCount = 0;
timer.Reset();
timer.Start();
while (dispatchQueue.Count > 0 && (timer.Elapsed.TotalMilliseconds <= timeSliceLimit))
{
dispatchQueue.Dequeue().Invoke();
dispatchCount++;
}
timer.Stop();
if (dispatchCount > 0)
UnityEngine.Debug.Log(string.Format("[EditorDispatcher] Dispatched {0} calls in {1}ms", dispatchCount, timer.Elapsed.TotalMilliseconds));
// todo some logic for disconnecting update when the queue is empty
}
}
/// <summary>
/// Send an Action Delegate to be run on the main thread. See EditorDispatchActions for some common usecases.
/// </summary>
/// <param name="task">An action delegate to run on the main thread</param>
/// <returns>An AsyncDispatch that can be used to track if the dispatch has completed.</returns>
public static AsyncDispatch Dispatch(Action task)
{
lock (dispatchQueue)
{
AsyncDispatch dispatch = new AsyncDispatch();
// enqueue a new task that runs the supplied task and completes the dispatcher
dispatchQueue.Enqueue(() => { task(); dispatch.FinishedDispatch(); });
return dispatch;
}
}
}
/// <summary>
/// Represents the progress of the dispatched action. Can be yielded to in a coroutine.
/// If not using coroutines, look at the IsDone property to find out when its okay to proceed.
/// </summary>
public class AsyncDispatch : CustomYieldInstruction
{
public bool IsDone { get; private set; }
public override bool keepWaiting { get { return !IsDone; } }
/// <summary>
/// Flags this dispatch as completed.
/// </summary>
internal void FinishedDispatch()
{
IsDone = true;
}
}

View file

@ -1,8 +1,7 @@
fileFormatVersion: 2
guid: b7b84624f1ba7bd49b6cfc63b25f4b7c
timeCreated: 1485671367
licenseType: Pro
guid: b7269ba738c469a4ea5b50811ef07f11
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0

View file

@ -0,0 +1,79 @@
using System;
using MessagePack;
using MessagePack.Formatters;
using Newtonsoft.Json;
using RethinkDb.Driver;
using RethinkDb.Driver.Net;
using UnityEditor;
using UnityEngine;
using Object = UnityEngine.Object;
public class SerializerTestWindow : EditorWindow
{
// Singleton to avoid multiple instances of window.
private static SerializerTestWindow _instance;
private static readonly RethinkDB R = RethinkDB.R;
private Connection _connection;
private Object _object;
private void OnEnable()
{
_connection = R.Connection().Hostname("asgard.gamecult.games").Port(RethinkDBConstants.DefaultPort).Timeout(60).Connect();
}
public void OnGUI()
{
var obj = new ShieldData() {ID = Guid.NewGuid(), Name = "Foo"} as DatabaseEntry;
// This button serializes the texture reference and print the JSON representation
if (GUILayout.Button("Print MsgPack JSON"))
Debug.Log(MessagePackSerializer.SerializeToJson(obj));
if (GUILayout.Button("Print Newtonsoft JSON"))
Debug.Log(JsonConvert.SerializeObject(obj));
if (GUILayout.Button("Create Database"))
R.DbCreate("Aetheria").Run(_connection);
if (GUILayout.Button("Create Table"))
R.Db("Aetheria").TableCreate("Items").Run(_connection);
if (GUILayout.Button("Send to RethinkDB"))
R.Db("Aetheria").Table("Items").Insert(obj).Run(_connection);
}
#region EditorWindow Boilerplate
public SerializerTestWindow()
{
_instance = this;
}
static SerializerTestWindow ShowWindow()
{
if (_instance == null)
{
SerializerTestWindow window = EditorWindow.GetWindow<SerializerTestWindow>();
window.titleContent = new GUIContent("Serializer Test");
_instance = window;
window.Show();
}
else
_instance.Focus();
return _instance;
}
[MenuItem("Window/Serializer Test Tool")]
static void Init()
{
ShowWindow();
}
#endregion
}

View file

@ -1,8 +1,7 @@
fileFormatVersion: 2
guid: 8445204f2ee16e0408274b8400deef53
timeCreated: 1485929052
licenseType: Pro
guid: c18f225a1e4e8bc42bce3782701c9a6b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0

View file

@ -1,134 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using MessagePack;
using Unity.Mathematics;
using UnityEngine;
using Random = UnityEngine.Random;
using static Unity.Mathematics.math;
public static class Extensions
{
public static void BroadcastMessageExt<T>(this GameObject go, string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver)
{
var monoList = new List<T>();
go.GetComponentsInChildren(true, monoList);
foreach (var component in monoList)
{
try
{
Type type = component.GetType();
MethodInfo method = type.GetMethod(methodName, BindingFlags.Instance |
BindingFlags.NonPublic |
BindingFlags.Public |
BindingFlags.Static);
method.Invoke(component, new[] { value });
}
catch (Exception e)
{
//Re-create the Error thrown by the original SendMessage function
if (options == SendMessageOptions.RequireReceiver)
Debug.LogError("SendMessage " + methodName + " has no receiver!");
//Debug.LogError(e.Message);
}
}
}
private static Dictionary<Type,Type[]> InterfaceClasses = new Dictionary<Type, Type[]>();
public static Type[] GetAllInterfaceClasses(this Type type)
{
if (InterfaceClasses.ContainsKey(type))
return InterfaceClasses[type];
return InterfaceClasses[type] = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(ass => ass.GetTypes()).Where(t => t.IsClass && t.GetInterfaces().Contains(type)).ToArray();
}
public static bool IsDefault<T>(this T value) where T : struct
{
bool isDefault = value.Equals(default(T));
return isDefault;
}
public static Texture2D ToTexture(this Color c)
{
Texture2D result = new Texture2D(1, 1);
result.SetPixels(new[]{c});
result.Apply();
return result;
}
public static string SplitCamelCase( this string str )
{
return Regex.Replace(
Regex.Replace(
str,
@"(\P{Ll})(\P{Ll}\p{Ll})",
"$1 $2"
),
@"(\p{Ll})(\P{Ll})",
"$1 $2"
);
}
public static T RandomElement<T>(this IEnumerable<T> enumerable) => enumerable.ElementAt(Random.Range(0, enumerable.Count()));
public static float2 ToFloat2(this Vector2 v) => new float2(v.x, v.y);
public static float3 ToFloat3(this Vector3 v) => new float3(v.x, v.y, v.z);
public static Vector2 ToVector2(this float2 v) => new Vector2(v.x, v.y);
public static Vector3 ToVector3(this float3 v) => new Vector3(v.x, v.y, v.z);
public static IDatabaseEntry Get(this Guid entry) => Database.Get(entry);
public static T Get<T>(this Guid entry) where T : class, IDatabaseEntry => Database.Get(entry) as T;
public static Guid GetId(this IDatabaseEntry entry) => entry.Entry.ID;
public static string ToJson(this IDatabaseEntry entry) => MessagePackSerializer.SerializeToJson(entry);
public static byte[] Serialize(this IDatabaseEntry entry) => MessagePackSerializer.Serialize(entry);
public static bool IsImplementationOf(this Type baseType, Type interfaceType)
{
return baseType.GetInterfaces().Any(interfaceType.Equals);
}
private static readonly Dictionary<ICraftedItemInstance, float> Quality = new Dictionary<ICraftedItemInstance, float>();
public static float CompoundQuality(this ICraftedItemInstance item)
{
if (Quality.ContainsKey(item)) return Quality[item];
var quality = item.CraftedQuality;
var craftedIngredients = item.CraftedIngredients.Where(i => i is ICraftedItemInstance).ToArray();
if (craftedIngredients.Length > 0)
{
quality *= craftedIngredients.Cast<ICraftedItemInstance>().Average(CompoundQuality);
}
Quality[item] = quality;
return Quality[item];
}
private static readonly Dictionary<ICraftable, int> Tier = new Dictionary<ICraftable, int>();
public static int ItemTier(this ICraftable item)
{
if (Tier.ContainsKey(item)) return Tier[item];
Tier[item] = item.CraftingIngredients.Keys.Max(ci => (Database.Get<IItem>(ci) as ICraftable)?.ItemTier() ?? 0);
return Tier[item];
}
public static float Performance(this IEquippable item, float temperature)
{
return saturate(item.Equippable.HeatPerformanceCurve.Evaluate(saturate(
(temperature - item.Equippable.MinimumTemperature) /
(item.Equippable.MaximumTemperature - item.Equippable.MinimumTemperature))));
}
}

Some files were not shown because too many files have changed in this diff Show more