summaryrefslogtreecommitdiff
path: root/Thronefall_1_57/Decompile/NGS.MeshFusionPro/DynamicCombinedObject.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-19 17:03:57 +0800
committerchai <215380520@qq.com>2024-05-19 17:03:57 +0800
commitcf58771365b5953c6eac548b172aae880d1f0acd (patch)
treea49757a4b5c447cbf877584d482367a6bfe33b10 /Thronefall_1_57/Decompile/NGS.MeshFusionPro/DynamicCombinedObject.cs
parenteed315deae356ddfb17f28305e7cde6cdfc43313 (diff)
* rename
Diffstat (limited to 'Thronefall_1_57/Decompile/NGS.MeshFusionPro/DynamicCombinedObject.cs')
-rw-r--r--Thronefall_1_57/Decompile/NGS.MeshFusionPro/DynamicCombinedObject.cs155
1 files changed, 0 insertions, 155 deletions
diff --git a/Thronefall_1_57/Decompile/NGS.MeshFusionPro/DynamicCombinedObject.cs b/Thronefall_1_57/Decompile/NGS.MeshFusionPro/DynamicCombinedObject.cs
deleted file mode 100644
index 464bee8..0000000
--- a/Thronefall_1_57/Decompile/NGS.MeshFusionPro/DynamicCombinedObject.cs
+++ /dev/null
@@ -1,155 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using UnityEngine;
-
-namespace NGS.MeshFusionPro;
-
-public class DynamicCombinedObject : MonoBehaviour, ICombinedObject<DynamicCombinedObjectPart, DynamicCombineSource>, ICombinedObject
-{
- private CombinedObject _baseObject;
-
- private List<DynamicCombinedObjectPart> _parts;
-
- private ICombinedMeshMover _meshMover;
-
- private List<DynamicCombinedObjectPartInternal> _movedParts;
-
- private List<PartMoveInfo> _movedPartsData;
-
- private bool _partsMoved;
-
- IReadOnlyList<ICombinedObjectPart> ICombinedObject.Parts => _parts;
-
- public IReadOnlyList<DynamicCombinedObjectPart> Parts => _parts;
-
- public RendererSettings RendererSettings => _baseObject.RendererSettings;
-
- public Bounds Bounds => _baseObject.Bounds;
-
- public Bounds LocalBounds => _baseObject.LocalBounds;
-
- public int VertexCount => _baseObject.VertexCount;
-
- private void Update()
- {
- if (_movedParts.Count > 0)
- {
- if (_meshMover is IAsyncCombinedMeshMover asyncCombinedMeshMover)
- {
- asyncCombinedMeshMover.MovePartsAsync(_movedPartsData);
- }
- else
- {
- _meshMover.MoveParts(_movedPartsData);
- }
- for (int i = 0; i < _movedParts.Count; i++)
- {
- _movedParts[i].PositionUpdated();
- }
- _movedParts.Clear();
- _movedPartsData.Clear();
- _partsMoved = true;
- }
- }
-
- private void LateUpdate()
- {
- if (_partsMoved)
- {
- if (_meshMover is IAsyncCombinedMeshMover asyncCombinedMeshMover)
- {
- asyncCombinedMeshMover.FinishAsyncMoving();
- }
- _meshMover.ApplyData();
- _partsMoved = false;
- }
- _baseObject.ForceUpdate();
- if (_movedParts.Count == 0)
- {
- base.enabled = false;
- }
- }
-
- private void OnDestroy()
- {
- if (_meshMover is IDisposable disposable)
- {
- disposable.Dispose();
- }
- }
-
- public static DynamicCombinedObject Create(MeshType meshType, CombineMethod combineMethod, MoveMethod moveMethod, RendererSettings settings)
- {
- return Create(new CombinedMeshFactory(meshType, combineMethod, moveMethod), settings);
- }
-
- public static DynamicCombinedObject Create(ICombinedMeshFactory factory, RendererSettings settings)
- {
- ICombinedMeshMover mover;
- CombinedObject combinedObject = CombinedObject.Create(factory.CreateMovableCombinedMesh(out mover), settings);
- DynamicCombinedObject dynamicCombinedObject = combinedObject.gameObject.AddComponent<DynamicCombinedObject>();
- dynamicCombinedObject.Construct(combinedObject, mover);
- return dynamicCombinedObject;
- }
-
- private void Construct(CombinedObject baseObject, ICombinedMeshMover mover)
- {
- base.gameObject.name = "Dynamic Combined Object";
- _baseObject = baseObject;
- _meshMover = mover;
- _parts = new List<DynamicCombinedObjectPart>();
- _movedParts = new List<DynamicCombinedObjectPartInternal>();
- _movedPartsData = new List<PartMoveInfo>();
- _baseObject.Updating = false;
- }
-
- public void Combine(IEnumerable<ICombineSource> sources)
- {
- Combine(sources.Select((ICombineSource s) => (DynamicCombineSource)s));
- }
-
- public void Combine(IEnumerable<DynamicCombineSource> sources)
- {
- int num = sources.Count();
- CombineSource[] array = new CombineSource[num];
- _ = new DynamicCombinedObjectPart[num];
- int num2 = 0;
- foreach (DynamicCombineSource source in sources)
- {
- CombineSource baseSource = source.Base;
- array[num2++] = baseSource;
- baseSource.onCombinedTyped += delegate(CombinedObject root, CombinedObjectPart part)
- {
- DynamicCombinedObjectPart dynamicCombinedObjectPart = new DynamicCombinedObjectPartInternal(this, part, baseSource.CombineInfo.transformMatrix);
- _parts.Add(dynamicCombinedObjectPart);
- source.Combined(this, dynamicCombinedObjectPart);
- };
- baseSource.onCombineErrorTyped += delegate(CombinedObject root, string message)
- {
- source.CombineError(this, message);
- };
- baseSource.onCombineFailedTyped += delegate
- {
- source.CombineFailed(this);
- };
- }
- _baseObject.Combine(array);
- }
-
- public void UpdatePart(DynamicCombinedObjectPartInternal part)
- {
- _movedParts.Add(part);
- _movedPartsData.Add(part.CreateMoveInfo());
- base.enabled = true;
- }
-
- public void Destroy(DynamicCombinedObjectPart dynamicPart, CombinedObjectPart basePart)
- {
- if (_parts.Remove(dynamicPart))
- {
- basePart.Destroy();
- base.enabled = true;
- }
- }
-}