Merge pull request #1 from salomj/somework

Somework
This commit is contained in:
Nick 2021-12-29 16:06:07 -05:00 committed by GitHub
commit 0fbb659878
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 84 additions and 23 deletions

2
.gitignore vendored
View File

@ -3,3 +3,5 @@ packages
.vs .vs
bin bin
obj obj
*.csproj.user

BIN
NewHorizons.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
{
"enabled": true
}

View File

@ -0,0 +1,8 @@
{
"filename": "NewHorizons.dll",
"author": "xen",
"name": "New Horizons",
"uniqueName": "xen.NewHorizons",
"version": "0.1.5",
"owmlVersion": "2.1.0"
}

View File

@ -1,6 +1,6 @@
using NewHorizons.External; using NewHorizons.External;
using NewHorizons.OrbitalPhysics; using NewHorizons.OrbitalPhysics;
using NewHorizons.Utility; using NewHorizons.Utility;
using PacificEngine.OW_CommonResources.Game.Resource; using PacificEngine.OW_CommonResources.Game.Resource;
using PacificEngine.OW_CommonResources.Game.State; using PacificEngine.OW_CommonResources.Game.State;
using PacificEngine.OW_CommonResources.Geometry.Orbits; using PacificEngine.OW_CommonResources.Geometry.Orbits;
@ -15,22 +15,57 @@ namespace NewHorizons.Builder.General
{ {
public static class HeavenlyBodyBuilder public static class HeavenlyBodyBuilder
{ {
private static Dictionary<string, HeavenlyBody> bodyName = new Dictionary<string, HeavenlyBody>();
public static void Make(GameObject body, IPlanetConfig config, float SOI, GravityVolume bodyGravity, InitialMotion initialMotion, AstroObject ao) public static void Make(GameObject body, IPlanetConfig config, float SOI, GravityVolume bodyGravity, InitialMotion initialMotion, AstroObject ao)
{ {
var size = new Position.Size(config.Base.SurfaceSize, SOI); var size = new Position.Size(config.Base.SurfaceSize, SOI);
var G = GravityVolume.GRAVITATIONAL_CONSTANT; var G = GravityVolume.GRAVITATIONAL_CONSTANT;
var gravity = new Gravity(G, bodyGravity == null ? 0 : bodyGravity.GetFalloffExponent(), bodyGravity == null ? 0 : bodyGravity.GetStandardGravitationalParameter() / G); var gravity = Gravity.of(bodyGravity == null ? 2f : bodyGravity.GetFalloffExponent(), bodyGravity == null ? 0 : bodyGravity.GetStandardGravitationalParameter() / G);
var parent = HeavenlyBody.FromString(config.Orbit.PrimaryBody); var parent = getBody(config.Orbit.PrimaryBody);
var orbit = OrbitalHelper.KeplerCoordinatesFromOrbitModule(config.Orbit); var orbit = OrbitalHelper.KeplerCoordinatesFromOrbitModule(config.Orbit);
var hb = new HeavenlyBody(config.Name); var hb = getBody(config.Name);
var planetoid = new Planet.Plantoid(size, gravity, body.transform.rotation, initialMotion._initAngularSpeed, parent, orbit); if (hb == null)
{
hb = addHeavenlyBody(config.Name);
}
var planetoid = new Planet.Plantoid(size, gravity, body.transform.rotation, initialMotion._initAngularSpeed, parent, orbit);
var mapping = Planet.defaultMapping;
mapping[hb] = planetoid;
Planet.defaultMapping = mapping;
}
Planet.mapping.Add(hb, planetoid); private static HeavenlyBody addHeavenlyBody(string name)
Planet.defaultMapping.Add(hb, planetoid); {
var hb = new HeavenlyBody(name);
bodyName.Add(name, hb);
var astroLookup = Position.AstroLookup;
astroLookup.Add(hb, () => AstroObjectLocator.GetAstroObject(name));
Position.AstroLookup = astroLookup;
Position.AstroLookup.Add(hb, () => ao); var bodyLookup = Position.BodyLookup;
Position.BodyLookup.Add(hb, () => ao?.GetAttachedOWRigidbody()); bodyLookup.Add(hb, () => AstroObjectLocator.GetAstroObject(name)?.GetAttachedOWRigidbody());
Position.BodyLookup = bodyLookup;
return hb;
}
private static HeavenlyBody getBody(string name)
{
if (bodyName.ContainsKey(name))
{
return bodyName[name];
}
var hb = Position.find(AstroObjectLocator.GetAstroObject(name));
if (hb != null)
{
bodyName.Add(name, hb);
}
return hb;
} }
} }
} }

View File

@ -24,8 +24,8 @@ namespace NewHorizons.Builder.Orbital
var ecc = config.Orbit.Eccentricity; var ecc = config.Orbit.Eccentricity;
OrbitLine orbitLine; OrbitLine orbitLine;
if (ecc == 0) orbitLine = orbitGO.AddComponent<TrackingOrbitLine>(); if (ecc == 0) orbitLine = orbitGO.AddComponent<OrbitLine>();
else if (ecc > 0 && ecc < 1) orbitLine = orbitGO.AddComponent<TrackingOrbitLine>(); else if (ecc > 0 && ecc < 1) orbitLine = orbitGO.AddComponent<EllipticOrbitLine>();
else orbitLine = orbitGO.AddComponent<TrackingOrbitLine>(); else orbitLine = orbitGO.AddComponent<TrackingOrbitLine>();
var color = Color.white; var color = Color.white;

View File

@ -1,4 +1,5 @@
<Project Sdk="Microsoft.NET.Sdk"> <?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<ProjectGuid>{8A39F9E7-1A89-430C-9C3E-BDFB3B7E17DF}</ProjectGuid> <ProjectGuid>{8A39F9E7-1A89-430C-9C3E-BDFB3B7E17DF}</ProjectGuid>
<TargetFramework>net48</TargetFramework> <TargetFramework>net48</TargetFramework>
@ -27,12 +28,32 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Include="NewHorizons.csproj.user" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="PacificEngine.OW_CommonResources"> <Reference Include="PacificEngine.OW_CommonResources">
<HintPath>$(OuterWildsModsDirectory)\PacificEngine.OW_CommonResources\PacificEngine.OW_CommonResources.dll</HintPath> <HintPath>$(OuterWildsModsDirectory)\PacificEngine.OW_CommonResources\PacificEngine.OW_CommonResources.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>
rmdir /Q /S "$(OuterWildsModsDirectory)\$(ProjectName)"
md "$(OuterWildsModsDirectory)\$(ProjectName)"
md "$(OuterWildsModsDirectory)\$(ProjectName)\AssetBundle"
copy /y "$(ProjectDir)default-config.json" "$(OuterWildsModsDirectory)\$(ProjectName)"
copy /y "$(ProjectDir)manifest.json" "$(OuterWildsModsDirectory)\$(ProjectName)"
copy /y "$(ProjectDir)AssetBundle" "$(OuterWildsModsDirectory)\$(ProjectName)\AssetBundle"
copy /y "$(TargetPath)" "$(OuterWildsModsDirectory)\$(ProjectName)"
rmdir /Q /S "$(ProjectDir)$(ProjectName)"
md "$(ProjectDir)$(ProjectName)"
md "$(ProjectDir)$(ProjectName)\AssetBundle"
copy /y "$(ProjectDir)default-config.json" "$(ProjectDir)$(ProjectName)"
copy /y "$(ProjectDir)manifest.json" "$(ProjectDir)$(ProjectName)"
copy /y "$(ProjectDir)AssetBundle" "$(ProjectDir)$(ProjectName)\AssetBundle"
copy /y "$(TargetPath)" "$(ProjectDir)$(ProjectName)"
del /q "$(ProjectDir)..\$(ProjectName).zip"
powershell Compress-Archive "$(ProjectDir)$(ProjectName)" "$(ProjectDir)..\$(ProjectName).zip"
rmdir /Q /S "$(ProjectDir)$(ProjectName)"
</PostBuildEvent>
</PropertyGroup>
</Project> </Project>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
<OutputPath>$(AppData)\OuterWildsModManager\OWML\Mods\xen.NewHorizons</OutputPath>
<OuterWildsModsDirectory>$(AppData)\OuterWildsModManager\OWML\Mods</OuterWildsModsDirectory>
</PropertyGroup>
</Project>