This commit is contained in:
Nick 2023-08-26 19:43:10 -04:00
parent 3b9d3dce46
commit 10f4c7a5a1
4 changed files with 50 additions and 61 deletions

View File

@ -45,6 +45,7 @@ namespace NewHorizons.Builder.Props
}
}
/*
public static void MakeQuantumLightning(GameObject planetGO, Sector sector, GameObject[] propsInGroup)
{
var lightning = DetailBuilder.Make(planetGO, sector, AssetBundleUtilities.EyeLightning.LoadAsset<GameObject>("Prefab_EYE_QuantumLightningObject"), new DetailInfo());
@ -59,6 +60,7 @@ namespace NewHorizons.Builder.Props
lightningController._models = new GameObject[] { prop };
lightningController.enabled = true;
}
*/
public static void MakeSocketGroup(GameObject planetGO, Sector sector, QuantumGroupInfo quantumGroup, GameObject[] propsInGroup)
{
@ -67,31 +69,19 @@ namespace NewHorizons.Builder.Props
groupRoot.transform.localPosition = Vector3.zero;
groupRoot.transform.localEulerAngles = Vector3.zero;
var sockets = new GameObject[quantumGroup.sockets.Length];
var sockets = new QuantumSocket[quantumGroup.sockets.Length];
for (int i = 0; i < quantumGroup.sockets.Length; i++)
{
var socketInfo = quantumGroup.sockets[i];
var socketGO = GeneralPropBuilder.MakeNew("Socket " + i, planetGO, sector, socketInfo, parentOverride: groupRoot.transform);
sockets[i] = socketGO;
var socket = socketGO.AddComponent<QuantumSocket>();
socket._lightSources = new Light[0];
sockets[i] = socket;
socketGO.SetActive(true);
}
if (quantumGroup.lightning)
{
}
else
{
foreach (var socketGO in sockets)
{
var socket = socketGO.AddComponent<QuantumSocket>();
socket._lightSources = new Light[0];
}
}
foreach (var prop in propsInGroup)
{
prop.SetActive(false);
@ -109,11 +99,6 @@ namespace NewHorizons.Builder.Props
AddBoundsVisibility(prop);
}
if (quantumGroup.lightning)
{
MakeQuantumLightning(planetGO, sector, prop);
}
prop.SetActive(true);
}
@ -252,27 +237,5 @@ namespace NewHorizons.Builder.Props
}
}
public class BoxShapeFixer : MonoBehaviour
{
public BoxShape shape;
public MeshFilter meshFilter;
public SkinnedMeshRenderer skinnedMeshRenderer;
void Update()
{
if (meshFilter == null && skinnedMeshRenderer == null) { NHLogger.LogVerbose("Useless BoxShapeFixer, destroying"); DestroyImmediate(this); }
Mesh sharedMesh = null;
if (meshFilter != null) sharedMesh = meshFilter.sharedMesh;
if (skinnedMeshRenderer != null) sharedMesh = skinnedMeshRenderer.sharedMesh;
if (sharedMesh == null) return;
if (sharedMesh.bounds.size == Vector3.zero) return;
shape.size = sharedMesh.bounds.size;
shape.center = sharedMesh.bounds.center;
DestroyImmediate(this);
}
}
}

View File

@ -1,15 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NewHorizons.Builder.Props;
public static class QuantumLightningBuilder
{
public static void Make()
{
}
}

View File

@ -11,8 +11,6 @@ namespace NewHorizons.External.Modules.Props.Quantum
[EnumMember(Value = @"states")] States = 1,
[EnumMember(Value = @"lightning")] Lightning = 2,
FailedValidation = 10
}
}

View File

@ -0,0 +1,43 @@
using NewHorizons.Utility.OWML;
using UnityEngine;
namespace NewHorizons.Utility.Geometry;
internal class BoxShapeFixer : MonoBehaviour
{
public BoxShape shape;
public MeshFilter meshFilter;
public SkinnedMeshRenderer skinnedMeshRenderer;
public void Update()
{
if (meshFilter == null && skinnedMeshRenderer == null)
{
NHLogger.LogVerbose("Useless BoxShapeFixer, destroying"); DestroyImmediate(this);
}
Mesh sharedMesh = null;
if (meshFilter != null)
{
sharedMesh = meshFilter.sharedMesh;
}
if (skinnedMeshRenderer != null)
{
sharedMesh = skinnedMeshRenderer.sharedMesh;
}
if (sharedMesh == null)
{
return;
}
if (sharedMesh.bounds.size == Vector3.zero)
{
return;
}
shape.size = sharedMesh.bounds.size;
shape.center = sharedMesh.bounds.center;
DestroyImmediate(this);
}
}