Files
7d2dXG/Mods/0B-FullautoLauncher/Scripts/ProjectileManager/PIGSimpleMesh.cs
Nathaniel Cosford 062dfab2cd Patched
2025-05-30 01:04:40 +09:30

55 lines
1.8 KiB
C#

using FullautoLauncher.Scripts.ProjectileManager;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
public class PIGSimpleMesh : ProjectileItemGroupAbs<PHSimpleMesh>
{
private Transform renderTrans;
private Mesh mesh;
private RenderParams renderParams;
private SimpleMeshTransformData data;
public PIGSimpleMesh(ItemClass item) : base(item)
{
renderTrans = item.CloneModel(GameManager.Instance.World, new ItemValue(item.Id), Vector3.zero, null);
MeshFilter filter = renderTrans.GetComponentInChildren<MeshFilter>();
mesh = filter.sharedMesh;
MeshRenderer renderer = renderTrans.GetComponentInChildren<MeshRenderer>();
renderParams = new RenderParams(renderer.material)
{
layer = renderer.gameObject.layer,
lightProbeUsage = UnityEngine.Rendering.LightProbeUsage.Off,
shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off,
rendererPriority = renderer.rendererPriority,
renderingLayerMask = renderer.renderingLayerMask,
motionVectorMode = MotionVectorGenerationMode.ForceNoMotion
};
data = new SimpleMeshTransformData(renderer.localToWorldMatrix, mesh.bounds);
}
public override void Update()
{
if (GameManager.IsDedicatedServer)
{
return;
}
foreach (var set in dict_fired_projectiles.Values)
{
foreach (var projectile in set)
{
Graphics.RenderMesh(in projectile.renderParams, mesh, 0, projectile.finalMat);
}
}
}
protected override PHSimpleMesh Create(ProjectileParams par)
{
return new PHSimpleMesh(par, data, in renderParams);
}
}