Browse Source

Basic layout, create and inject engine

tags/v0.0.1
NorbiPeti 4 years ago
commit
425e3247d3
Signed by: NorbiPeti <szatmari.norbert.peter@gmail.com> GPG Key ID: DBA4C4549A927E56
9 changed files with 379 additions and 0 deletions
  1. +3
    -0
      .gitignore
  2. +0
    -0
      .idea/.gitignore
  3. +16
    -0
      GCDC.sln
  4. +34
    -0
      GCDC/DiscordEngineInjectionPatch.cs
  5. +226
    -0
      GCDC/GCDC.csproj
  6. +40
    -0
      GCDC/GCDCPlugin.cs
  7. BIN
      GCDC/IllusionPlugin.dll
  8. +35
    -0
      GCDC/Properties/AssemblyInfo.cs
  9. +25
    -0
      GCDC/TextBlockUpdateEngine.cs

+ 3
- 0
.gitignore View File

@@ -0,0 +1,3 @@
bin/
obj/
/packages/

+ 0
- 0
.idea/.gitignore View File


+ 16
- 0
GCDC.sln View File

@@ -0,0 +1,16 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GCDC", "GCDC\GCDC.csproj", "{65169A16-0FFD-4769-ACAB-4C15A4C74C3D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{65169A16-0FFD-4769-ACAB-4C15A4C74C3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65169A16-0FFD-4769-ACAB-4C15A4C74C3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65169A16-0FFD-4769-ACAB-4C15A4C74C3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65169A16-0FFD-4769-ACAB-4C15A4C74C3D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

+ 34
- 0
GCDC/DiscordEngineInjectionPatch.cs View File

@@ -0,0 +1,34 @@
using System;
using System.Reflection;
using Harmony;
using RobocraftX;
using RobocraftX.GUI.CommandLine;
using RobocraftX.Multiplayer;
using Svelto.Context;
using Svelto.ECS;
using Unity.Entities;
using UnityEngine;

namespace GCDC
{
[HarmonyPatch]
public class DiscordEngineInjectionPatch
{
static void Postfix(UnityContext<FullGameCompositionRoot> contextHolder, EnginesRoot enginesRoot, World physicsWorld, Action reloadGame, MultiplayerInitParameters multiplayerParameters)
{
enginesRoot.AddEngine(new TextBlockUpdateEngine());
Debug.Log($"Added text block update engine");
}

static MethodBase TargetMethod(HarmonyInstance instance)
{
return _ComposeMethodInfo(CommandLineCompositionRoot.Compose<UnityContext<FullGameCompositionRoot>>);
}

private static MethodInfo _ComposeMethodInfo(Action<UnityContext<FullGameCompositionRoot>, EnginesRoot, World, Action, MultiplayerInitParameters> a)
{
return a.Method;
}

}
}

+ 226
- 0
GCDC/GCDC.csproj View File

@@ -0,0 +1,226 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{65169A16-0FFD-4769-ACAB-4C15A4C74C3D}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>GCDC</RootNamespace>
<AssemblyName>GCDC</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="CommandLine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\CommandLine.dll</HintPath>
</Reference>
<Reference Include="FullGame, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\FullGame.dll</HintPath>
</Reference>
<Reference Include="Gamecraft.Blocks.ConsoleBlock, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\Gamecraft.Blocks.ConsoleBlock.dll</HintPath>
</Reference>
<Reference Include="IllusionPlugin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>IllusionPlugin.dll</HintPath>
</Reference>
<Reference Include="Robocraft.MainGame.AutoEnterSimulation, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\Robocraft.MainGame.AutoEnterSimulation.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.AccountPreferences, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.AccountPreferences.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Blocks, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Blocks.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Blocks.Ghost, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Blocks.Ghost.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Blocks.Triggers, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Blocks.Triggers.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Character, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Character.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Common, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Common.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Crosshair, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Crosshair.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.EntityStreamUtility, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.EntityStreamUtility.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.FrontEnd, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.FrontEnd.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GameSignalHandling, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.GameSignalHandling.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.GUI.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.DebugDisplay, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.GUI.DebugDisplay.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.RemoveBlock, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.GUI.RemoveBlock.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.ScaleGhost, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.GUI.ScaleGhost.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUI.SignalLabel, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.GUI.SignalLabel.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.GUIs.WorkshopPrefabs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.GUIs.WorkshopPrefabs.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Input, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Input.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Inventory, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Inventory.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.MachineEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.MachineEditor.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.MainGame, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.MainGame.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.MainSimulation, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.MainSimulation.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Multiplayer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Multiplayer.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Multiplayer.NetworkEntityStream, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Multiplayer.NetworkEntityStream.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.MultiplayerInput, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.MultiplayerInput.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Party, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Party.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.PartyGui, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.PartyGui.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Physics, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Physics.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.PilotSeat, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.PilotSeat.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Player, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Player.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Priority, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Priority.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Rendering, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Rendering.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Rendering.Mock, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Rendering.Mock.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.SaveAndLoad, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.SaveAndLoad.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.SaveGameDialog, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.SaveGameDialog.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Serializers, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Serializers.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.Services, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.Services.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.SignalHandling, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.SignalHandling.dll</HintPath>
</Reference>
<Reference Include="RobocraftX.StateSync, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX.StateSync.dll</HintPath>
</Reference>
<Reference Include="RobocraftX_SpawnPoints, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX_SpawnPoints.dll</HintPath>
</Reference>
<Reference Include="RobocraftX_TextBlock, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocraftX_TextBlock.dll</HintPath>
</Reference>
<Reference Include="RobocratX.SimulationCompositionRoot, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\RobocratX.SimulationCompositionRoot.dll</HintPath>
</Reference>
<Reference Include="Svelto.Common, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\Svelto.Common.dll</HintPath>
</Reference>
<Reference Include="Svelto.ECS, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\Svelto.ECS.dll</HintPath>
</Reference>
<Reference Include="Svelto.Services, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\Svelto.Services.dll</HintPath>
</Reference>
<Reference Include="Svelto.Tasks, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\Svelto.Tasks.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Unity.Entities, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\Unity.Entities.dll</HintPath>
</Reference>
<Reference Include="Unity.Physics, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\Unity.Physics.dll</HintPath>
</Reference>
<Reference Include="UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\UnityEngine.CoreModule.dll</HintPath>
</Reference>
<Reference Include="uREPL, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>ref\uREPL.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="DiscordEngineInjectionPatch.cs" />
<Compile Include="GCDCPlugin.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TextBlockUpdateEngine.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="IllusionPlugin.dll" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Lib.Harmony" Version="1.2.0.1" />
</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>

+ 40
- 0
GCDC/GCDCPlugin.cs View File

@@ -0,0 +1,40 @@
using IllusionPlugin;

namespace GCDC
{
public class GCDCPlugin : IPlugin
{
public string Name { get; } = "GCDC";
public string Version { get; } = "v0.0.1";
public void OnApplicationStart()
{
throw new System.NotImplementedException();
}

public void OnApplicationQuit()
{
throw new System.NotImplementedException();
}

public void OnLevelWasLoaded(int level)
{
throw new System.NotImplementedException();
}

public void OnLevelWasInitialized(int level)
{
throw new System.NotImplementedException();
}

public void OnUpdate()
{
throw new System.NotImplementedException();
}

public void OnFixedUpdate()
{
throw new System.NotImplementedException();
}
}
}

BIN
GCDC/IllusionPlugin.dll View File


+ 35
- 0
GCDC/Properties/AssemblyInfo.cs View File

@@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("GCDC")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GCDC")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("65169A16-0FFD-4769-ACAB-4C15A4C74C3D")]

// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

+ 25
- 0
GCDC/TextBlockUpdateEngine.cs View File

@@ -0,0 +1,25 @@
using RobocraftX.Common.Input;
using RobocraftX.Common.Utilities;
using RobocraftX.StateSync;
using Svelto.ECS;
using Unity.Jobs;
using uREPL;

namespace GCDC
{
public class TextBlockUpdateEngine : IQueryingEntitiesEngine, IEngine, IDeterministicSim
{
public void Ready()
{
}

public IEntitiesDB entitiesDB { get; set; }
public JobHandle SimulatePhysicsStep(in float deltaTime, in PhysicsUtility utility, in PlayerInput[] playerInputs)
{
//TODO
return new JobHandle();
}

public string name { get; } = "GCDC-TextUpdate";
}
}

Loading…
Cancel
Save