This commit is contained in:
SoulliesOfficial
2026-03-19 14:16:06 -04:00
parent aee62cd637
commit 41f38396f6
464 changed files with 245616 additions and 21368 deletions

View File

@@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using Ichni.RhythmGame.Beatmap;
using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap
{
[System.Serializable]
public class DTMFramesFloor_BM : EnvironmentObject_BM
{
public float patternSizeX = 100.0f;
public float patternSizeY = 100.0f;
public float gridDensity = 1.0f;
public float timeAngle = 0.1f;
public float stepA = 0.25f;
public float stepB = 0.24f;
public bool enableOuterBorder = true;
public float outerBorderColorR = 1f;
public float outerBorderColorG = 1f;
public float outerBorderColorB = 1f;
public float outerBorderColorA = 1f;
public float outerBorderWidth = 0.02f;
public DTMFramesFloor_BM()
{
}
public DTMFramesFloor_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement,
string themeBundleName, string objectName, bool isStatic,
float patternSizeX, float patternSizeY, float gridDensity,
float timeAngle, float stepA, float stepB,
bool enableOuterBorder, Color outerColor, float outerBorderWidth)
: base(elementName, elementGuid, tags, attachedElement, themeBundleName, objectName, isStatic)
{
this.patternSizeX = patternSizeX;
this.patternSizeY = patternSizeY;
this.gridDensity = gridDensity;
this.timeAngle = timeAngle;
this.stepA = stepA;
this.stepB = stepB;
this.enableOuterBorder = enableOuterBorder;
this.outerBorderColorR = outerColor.r;
this.outerBorderColorG = outerColor.g;
this.outerBorderColorB = outerColor.b;
this.outerBorderColorA = outerColor.a;
this.outerBorderWidth = outerBorderWidth;
}
public override void ExecuteBM()
{
Color outerColor = new Color(outerBorderColorR, outerBorderColorG, outerBorderColorB, outerBorderColorA);
matchedElement = DTMFramesFloor.GenerateElement(elementName, elementGuid, tags, false,
themeBundleName, objectName, GetElement(attachedElementGuid), isStatic,
patternSizeX, patternSizeY, gridDensity,
timeAngle, stepA, stepB,
enableOuterBorder, outerColor, outerBorderWidth);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6f1b718d3bcaa8b438db5edb1b3f3556

View File

@@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using Ichni.RhythmGame.Beatmap;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap
{
[System.Serializable]
public class DTMGlobalFog_BM : EnvironmentObject_BM
{
public float fogIntensity = 1f;
public float fogColorStartR = 0.5f, fogColorStartG = 0.75f, fogColorStartB = 1.0f, fogColorStartA = 1.0f;
public float fogColorEndR = 0.75f, fogColorEndG = 1.0f, fogColorEndB = 1.25f, fogColorEndA = 1.0f;
public float fogColorDuo = 0f;
public float skyboxFogIntensity = 1f;
public float skyboxFogHeight = 1f;
public float skyboxFogFalloff = 1f;
public float skyboxFogOffset = 0f;
public float skyboxFogBottom = 0f;
public float skyboxFogFill = 1f;
public DTMGlobalFog_BM()
{
}
public DTMGlobalFog_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement,
string themeBundleName, string objectName, bool isStatic,
float fogIntensity,
float fogColorStartR, float fogColorStartG, float fogColorStartB, float fogColorStartA,
float fogColorEndR, float fogColorEndG, float fogColorEndB, float fogColorEndA,
float fogColorDuo,
float skyboxFogIntensity, float skyboxFogHeight,
float skyboxFogFalloff, float skyboxFogOffset,
float skyboxFogBottom, float skyboxFogFill)
: base(elementName, elementGuid, tags, attachedElement, themeBundleName, objectName, isStatic)
{
this.fogIntensity = fogIntensity;
this.fogColorStartR = fogColorStartR; this.fogColorStartG = fogColorStartG; this.fogColorStartB = fogColorStartB; this.fogColorStartA = fogColorStartA;
this.fogColorEndR = fogColorEndR; this.fogColorEndG = fogColorEndG; this.fogColorEndB = fogColorEndB; this.fogColorEndA = fogColorEndA;
this.fogColorDuo = fogColorDuo;
this.skyboxFogIntensity = skyboxFogIntensity;
this.skyboxFogHeight = skyboxFogHeight;
this.skyboxFogFalloff = skyboxFogFalloff;
this.skyboxFogOffset = skyboxFogOffset;
this.skyboxFogBottom = skyboxFogBottom;
this.skyboxFogFill = skyboxFogFill;
}
public override void ExecuteBM()
{
matchedElement = DTMGlobalFog.GenerateElement(elementName, elementGuid, tags, false,
themeBundleName, objectName, GetElement(attachedElementGuid), isStatic,
fogIntensity,
fogColorStartR, fogColorStartG, fogColorStartB, fogColorStartA,
fogColorEndR, fogColorEndG, fogColorEndB, fogColorEndA,
fogColorDuo,
skyboxFogIntensity, skyboxFogHeight,
skyboxFogFalloff, skyboxFogOffset,
skyboxFogBottom, skyboxFogFill);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a7628a4385075b148a30e4cdb5167396

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 910c16c1cc3571645a7a3cafe66def67
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f89a9a37d45820a49830829d491bd921
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,40 @@
using Ichni.Editor;
using Ichni.RhythmGame.Beatmap;
using Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMFramesFloor
{
#region [Editor] Inspection & Save
public override void SaveBM()
{
matchedBM = new DTMFramesFloor_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
themeBundleName, objectName, isStatic,
patternSizeX, patternSizeY, gridDensity,
timeAngle, stepA, stepB,
enableOuterBorder, outerBorderColor, outerBorderWidth);
}
public override void SetUpInspector()
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTMFramesFloor");
var subcontainer = container.GenerateSubcontainer(3);
inspector.GenerateInputField(this, subcontainer, "Pattern Size X", nameof(patternSizeX)).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateInputField(this, subcontainer, "Pattern Size Y", nameof(patternSizeY)).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateInputField(this, subcontainer, "Grid Density", nameof(gridDensity)).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateInputField(this, subcontainer, "Time Angle", nameof(timeAngle)).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateInputField(this, subcontainer, "Step A", nameof(stepA)).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateInputField(this, subcontainer, "Step B", nameof(stepB)).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateToggle(this, subcontainer, "Enable Outer Border", nameof(enableOuterBorder)).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateBaseColorPicker(this, subcontainer, "Outer Border Color", nameof(outerBorderColor)).AddListenerFunction(UpdateMaterialProperties);
inspector.GenerateInputField(this, subcontainer, "Outer Border Width", nameof(outerBorderWidth)).AddListenerFunction(UpdateMaterialProperties);
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: d223da8f543f1784f94899b2ffb46ea7

View File

@@ -0,0 +1,53 @@
using Ichni.Editor;
using Ichni.RhythmGame.Beatmap;
using Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMGlobalFog
{
#region [Editor] Inspection & Save
public override void SaveBM()
{
matchedBM = new DTMGlobalFog_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
themeBundleName, objectName, isStatic,
fogIntensity,
fogColorStartR, fogColorStartG, fogColorStartB, fogColorStartA,
fogColorEndR, fogColorEndG, fogColorEndB, fogColorEndA,
fogColorDuo,
skyboxFogIntensity, skyboxFogHeight,
skyboxFogFalloff, skyboxFogOffset,
skyboxFogBottom, skyboxFogFill);
}
public override void SetUpInspector()
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTMGlobalFog");
var subcontainer = container.GenerateSubcontainer(3);
inspector.GenerateInputField(this, subcontainer, "Fog Intensity", nameof(fogIntensity)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Fog Color Start R", nameof(fogColorStartR)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Fog Color Start G", nameof(fogColorStartG)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Fog Color Start B", nameof(fogColorStartB)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Fog Color Start A", nameof(fogColorStartA)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Fog Color End R", nameof(fogColorEndR)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Fog Color End G", nameof(fogColorEndG)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Fog Color End B", nameof(fogColorEndB)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Fog Color End A", nameof(fogColorEndA)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Fog Color Duo", nameof(fogColorDuo)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Skybox Fog Intensity", nameof(skyboxFogIntensity)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Skybox Fog Height", nameof(skyboxFogHeight)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Skybox Fog Falloff", nameof(skyboxFogFalloff)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Skybox Fog Offset", nameof(skyboxFogOffset)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Skybox Fog Bottom", nameof(skyboxFogBottom)).AddListenerFunction(UpdateFogProperties);
inspector.GenerateInputField(this, subcontainer, "Skybox Fog Fill", nameof(skyboxFogFill)).AddListenerFunction(UpdateFogProperties);
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a45555f424f9bba44940a6bf9270f20c

View File

@@ -0,0 +1,45 @@
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMTrail
{
#region [Editor] Inspection
public override void SetUpInspector()
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTMTrail");
var subcontainer = container.GenerateSubcontainer(3);
var visibleTimeLengthButton = inspector.GenerateButton(this, subcontainer, "Visible Time Length", () =>
{
var ew = inspector.GenerateCompositeParameterWindow(
this, "Visible Time Length", nameof(visibleTimeLength));
ew.SetAsFlexibleFloat();
});
var enableTimeListButton = inspector.GenerateButton(this, subcontainer, "Enable Head Time List", () =>
{
var ew = inspector.GenerateCompositeParameterWindow(
this, "Enable Head Time List", nameof(enableTimes));
ew.SetAsFlexibleBool();
});
var headRotateSpeedButton = inspector.GenerateButton(this, subcontainer, "Head Rotate Speed", () =>
{
var ew = inspector.GenerateCompositeParameterWindow(
this, "Head Rotate Speed", nameof(headRotateSpeed));
ew.SetAsFlexibleFloat();
});
var enableProcessTimeInputField =
inspector.GenerateInputField(this, subcontainer, "Enable Process Time", nameof(enableProcessTime));
var headSizeInputField =
inspector.GenerateInputField(this, subcontainer, "Head Size", nameof(headSize));
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5167939da622dd7468937a95200ddaf9

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2875bfef8c3ef4e4dae07ebcd84542f2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cf3fa25745dde1c489ddadb2a386907c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,15 @@
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMNoteBadBurst
{
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Bad Burst");
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 44c1dc43358ab094d85813be1832aa37

View File

@@ -0,0 +1,18 @@
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMNoteGenerateExpand
{
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Generate Expand");
var subcontainer = container.GenerateSubcontainer(3);
var generateTimeField = inspector.GenerateInputField(this, subcontainer, "Generate Time", nameof(generateTime));
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 49c68e792b1f5004097cec40e7e30dc4

View File

@@ -0,0 +1,18 @@
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMNoteGenerateExtend
{
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Generate Expand");
var subcontainer = container.GenerateSubcontainer(3);
var generateTimeField = inspector.GenerateInputField(this, subcontainer, "Generate Time", nameof(generateTime));
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 36a64ec7935496b4fb152b46b8f261a4

View File

@@ -0,0 +1,15 @@
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMNoteGoodBurst
{
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Good Burst");
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1302a7e2236f16c43af1da6600066a90

View File

@@ -0,0 +1,16 @@
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMNoteHoldingBreath
{
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Basic Note Holding Expand");
var subcontainer = container.GenerateSubcontainer(3);
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: f85400d33d25d1a48bfe5bf009087ea9

View File

@@ -0,0 +1,17 @@
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMNoteMissTransparent
{
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Miss Transparent");
var subcontainer = container.GenerateSubcontainer(3);
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: ffe2a33181b27ef4994e497ac143c7eb

View File

@@ -0,0 +1,15 @@
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMNotePerfectBurst
{
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Perfect Burst");
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: ee49df8fada3aff47960705b3f32be3d

View File

@@ -0,0 +1,23 @@
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMRippleEffect
{
#region [Editor] Inspection
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Ripple Effect");
var effectSettings1 = container.GenerateSubcontainer(3);
var rippleTimeInputField = inspector.GenerateInputField(this, effectSettings1, "Ripple Time", nameof(rippleTime));
var effectSettings2 = container.GenerateSubcontainer(1);
var emissionColorPicker = inspector.GenerateEmissionColorPicker(this, effectSettings2, "Color", "NULL", nameof(emissionColor), nameof(emissionIntensity));
var positionOffsetInputField = inspector.GenerateVector3InputField(this, effectSettings2, "Position Offset", nameof(positionOffset));
var eulerAnglesInputField = inspector.GenerateVector3InputField(this, effectSettings2, "Euler Angles", nameof(eulerAnglesOffset));
var scaleInputField = inspector.GenerateVector3InputField(this, effectSettings2, "Scale", nameof(scale));
SetRemove(effectSettings2);
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 671c2fb933f65754497df8fef3b31e83

View File

@@ -0,0 +1,112 @@
using System;
using System.Collections.Generic;
using Ichni.RhythmGame.Beatmap;
using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMFramesFloor : EnvironmentObject
{
#region [] Exposed Fields
public float patternSizeX;
public float patternSizeY;
public float gridDensity;
public float timeAngle;
public float stepA;
public float stepB;
public bool enableOuterBorder;
public Color outerBorderColor;
public float outerBorderWidth;
public Renderer meshRenderer;
#endregion
#region [] Lifecycle & Factory
public static DTMFramesFloor GenerateElement(string elementName, Guid id, List<string> tags,
bool isFirstGenerated, string themeBundleName, string objectName, GameElement parentElement,
bool isStatic,
float patternSizeX, float patternSizeY, float gridDensity,
float timeAngle, float stepA, float stepB,
bool enableOuterBorder,
Color outerBorderColor,
float outerBorderWidth)
{
DTMFramesFloor framesFloor = EnvironmentObject.GenerateElement(elementName, id, tags,
isFirstGenerated, themeBundleName, objectName, parentElement, isStatic).GetComponent<DTMFramesFloor>();
framesFloor.patternSizeX = patternSizeX;
framesFloor.patternSizeY = patternSizeY;
framesFloor.gridDensity = gridDensity;
framesFloor.timeAngle = timeAngle;
framesFloor.stepA = stepA;
framesFloor.stepB = stepB;
framesFloor.enableOuterBorder = enableOuterBorder;
framesFloor.outerBorderColor = outerBorderColor;
framesFloor.outerBorderWidth = outerBorderWidth;
return framesFloor;
}
public override void FirstSetUpObject(bool isFirstGenerated)
{
if (meshRenderer == null)
meshRenderer = GetComponentInChildren<Renderer>();
meshRenderer.InitializeShader(); // 实例化材质
}
public override void AfterInitialize()
{
UpdateMaterialProperties();
}
public override void OnDirtyRefresh(Dictionary<string, bool> flags)
{
UpdateMaterialProperties();
}
#endregion
#region [] Core Effect Logic
public void UpdateMaterialProperties()
{
if (meshRenderer != null && meshRenderer.material != null)
{
Material mat = meshRenderer.material;
mat.SetVector("_PatternSize", new Vector4(patternSizeX, patternSizeY, 0, 0));
mat.SetFloat("_GridDensity", gridDensity);
mat.SetFloat("_TimeAngle", timeAngle);
mat.SetFloat("_StepA", stepA);
mat.SetFloat("_StepB", stepB);
float borderOn = enableOuterBorder ? 1f : 0f;
mat.SetFloat("_EnableOuterBorder", borderOn);
if (enableOuterBorder)
{
mat.EnableKeyword("_OUTER_BORDER_ON");
}
else
{
mat.DisableKeyword("_OUTER_BORDER_ON");
}
mat.SetColor("_OuterBorderColor", outerBorderColor);
mat.SetFloat("_OuterBorderWidth", outerBorderWidth);
mat.SetColor("_Color0", colorSubmodule.currentBaseColor);
}
}
public override void Refresh()
{
base.Refresh();
if (meshRenderer != null)
{
meshRenderer.material.SetColor("_Color0", colorSubmodule.currentBaseColor);
}
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: ba4e16116c88a4c49b992f6d0b71c05d

View File

@@ -0,0 +1,112 @@
using System;
using System.Collections.Generic;
using Ichni.RhythmGame.Beatmap;
using UnityEngine;
using AtmosphericHeightFog;
using FogMode = AtmosphericHeightFog.FogMode;
using Ichni.Editor;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public partial class DTMGlobalFog : EnvironmentObject
{
#region [] Exposed Fields
public HeightFogGlobal heightFogGlobal;
public float fogIntensity;
public float fogColorStartR = 0.5f, fogColorStartG = 0.75f, fogColorStartB = 1f, fogColorStartA = 1f;
public float fogColorEndR = 0.75f, fogColorEndG = 1f, fogColorEndB = 1.25f, fogColorEndA = 1f;
public float fogColorDuo;
public float skyboxFogIntensity;
public float skyboxFogHeight;
public float skyboxFogFalloff;
public float skyboxFogOffset;
public float skyboxFogBottom;
public float skyboxFogFill;
#endregion
#region [] Lifecycle & Factory
public static DTMGlobalFog GenerateElement(string elementName, Guid id, List<string> tags,
bool isFirstGenerated, string themeBundleName, string objectName, GameElement parentElement,
bool isStatic,
float fogIntensity,
float fogColorStartR, float fogColorStartG, float fogColorStartB, float fogColorStartA,
float fogColorEndR, float fogColorEndG, float fogColorEndB, float fogColorEndA,
float fogColorDuo,
float skyboxFogIntensity, float skyboxFogHeight,
float skyboxFogFalloff, float skyboxFogOffset,
float skyboxFogBottom, float skyboxFogFill)
{
DTMGlobalFog globalFog = EnvironmentObject.GenerateElement(elementName, id, tags,
isFirstGenerated, themeBundleName, objectName, parentElement, isStatic).GetComponent<DTMGlobalFog>();
globalFog.fogIntensity = fogIntensity;
globalFog.fogColorStartR = fogColorStartR;
globalFog.fogColorStartG = fogColorStartG;
globalFog.fogColorStartB = fogColorStartB;
globalFog.fogColorStartA = fogColorStartA;
globalFog.fogColorEndR = fogColorEndR;
globalFog.fogColorEndG = fogColorEndG;
globalFog.fogColorEndB = fogColorEndB;
globalFog.fogColorEndA = fogColorEndA;
globalFog.fogColorDuo = fogColorDuo;
globalFog.skyboxFogIntensity = skyboxFogIntensity;
globalFog.skyboxFogHeight = skyboxFogHeight;
globalFog.skyboxFogFalloff = skyboxFogFalloff;
globalFog.skyboxFogOffset = skyboxFogOffset;
globalFog.skyboxFogBottom = skyboxFogBottom;
globalFog.skyboxFogFill = skyboxFogFill;
return globalFog;
}
public override void FirstSetUpObject(bool isFirstGenerated)
{
if (heightFogGlobal == null)
{
heightFogGlobal = GetComponentInChildren<HeightFogGlobal>();
heightFogGlobal.mainCamera = EditorManager.instance.cameraManager.gameCamera.cam;
}
if (heightFogGlobal != null)
{
heightFogGlobal.fogMode = FogMode.UseScriptSettings;
}
UpdateFogProperties();
}
public override void OnDirtyRefresh(Dictionary<string, bool> flags)
{
UpdateFogProperties();
}
#endregion
#region [] Core Effect Logic
public void UpdateFogProperties()
{
if (heightFogGlobal == null) return;
heightFogGlobal.fogIntensity = fogIntensity;
heightFogGlobal.fogColorStart = new Color(fogColorStartR, fogColorStartG, fogColorStartB, fogColorStartA);
heightFogGlobal.fogColorEnd = new Color(fogColorEndR, fogColorEndG, fogColorEndB, fogColorEndA);
heightFogGlobal.fogColorDuo = fogColorDuo;
heightFogGlobal.skyboxFogIntensity = skyboxFogIntensity;
heightFogGlobal.skyboxFogHeight = skyboxFogHeight;
heightFogGlobal.skyboxFogFalloff = skyboxFogFalloff;
heightFogGlobal.skyboxFogOffset = skyboxFogOffset;
heightFogGlobal.skyboxFogBottom = skyboxFogBottom;
heightFogGlobal.skyboxFogFill = skyboxFogFill;
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8f13be7de0273fd469c4cd8b88bbc3b8

View File

@@ -204,42 +204,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
matchedBM = new DTMTrail_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
themeBundleName, objectName, isStatic, visibleTimeLength, enableTimes, headRotateSpeed, enableProcessTime, headSize);
}
public override void SetUpInspector()
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTMTrail");
var subcontainer = container.GenerateSubcontainer(3);
var visibleTimeLengthButton = inspector.GenerateButton(this, subcontainer, "Visible Time Length", () =>
{
var ew = inspector.GenerateCompositeParameterWindow(
this, "Visible Time Length", nameof(visibleTimeLength));
ew.SetAsFlexibleFloat();
});
var enableTimeListButton = inspector.GenerateButton(this, subcontainer, "Enable Head Time List", () =>
{
var ew = inspector.GenerateCompositeParameterWindow(
this, "Enable Head Time List", nameof(enableTimes));
ew.SetAsFlexibleBool();
});
var headRotateSpeedButton = inspector.GenerateButton(this, subcontainer, "Head Rotate Speed", () =>
{
var ew = inspector.GenerateCompositeParameterWindow(
this, "Head Rotate Speed", nameof(headRotateSpeed));
ew.SetAsFlexibleFloat();
});
var enableProcessTimeInputField =
inspector.GenerateInputField(this, subcontainer, "Enable Process Time", nameof(enableProcessTime));
var headSizeInputField =
inspector.GenerateInputField(this, subcontainer, "Head Size", nameof(headSize));
}
#endregion
}
}

View File

@@ -8,7 +8,7 @@ using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMNoteBadBurst : NoteBadEffect
public partial class DTMNoteBadBurst : NoteBadEffect
{
#region [] Property Caches
private ParticleSystem effectParticle;
@@ -54,12 +54,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
return new DTMNoteBadBurst_BM(effectTime);
}
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Bad Burst");
}
#endregion
}

View File

@@ -4,7 +4,7 @@ using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMNoteGenerateExpand : NoteGenerateEffect
public partial class DTMNoteGenerateExpand : NoteGenerateEffect
{
#region [] Initialization
public DTMNoteGenerateExpand(NoteVisualBase noteVisual, float generateTime, float effectTime)
@@ -66,15 +66,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
return new Beatmap.DTMNoteGenerateExpand_BM(effectTime, generateTime);
}
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Generate Expand");
var subcontainer = container.GenerateSubcontainer(3);
var generateTimeField = inspector.GenerateInputField(this, subcontainer, "Generate Time", nameof(generateTime));
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
}
#endregion
}

View File

@@ -7,7 +7,7 @@ using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMNoteGenerateExtend : NoteGenerateEffect
public partial class DTMNoteGenerateExtend : NoteGenerateEffect
{
#region [] Property Caches
private Hold hold;
@@ -111,15 +111,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
endPercent = targetEndPercent;
UpdateHold();
}
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Generate Expand");
var subcontainer = container.GenerateSubcontainer(3);
var generateTimeField = inspector.GenerateInputField(this, subcontainer, "Generate Time", nameof(generateTime));
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
}
#endregion
}

View File

@@ -8,7 +8,7 @@ using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMNoteGoodBurst : NoteGoodEffect
public partial class DTMNoteGoodBurst : NoteGoodEffect
{
#region [] Property Caches
private ParticleSystem effectParticle;
@@ -55,12 +55,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
return new DTMNoteGoodBurst_BM(effectTime);
}
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Good Burst");
}
#endregion
}

View File

@@ -7,7 +7,7 @@ using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMNoteHoldingBreath : NoteHoldingEffect
public partial class DTMNoteHoldingBreath : NoteHoldingEffect
{
#region [] Property Caches
private ParticleSystem breathParticle;
@@ -98,13 +98,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
return new Beatmap.DTMNoteHoldingBreath_BM(effectTime);
}
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Basic Note Holding Expand");
var subcontainer = container.GenerateSubcontainer(3);
}
#endregion
}
}

View File

@@ -8,7 +8,7 @@ using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMNoteMissTransparent : NoteMissEffect
public partial class DTMNoteMissTransparent : NoteMissEffect
{
#region [] Property Caches
public List<Renderer> noteRenderers;
@@ -86,14 +86,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
return new DTMNoteMissTransparent_BM(effectTime);
}
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Miss Transparent");
var subcontainer = container.GenerateSubcontainer(3);
var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime));
}
#endregion
}
}

View File

@@ -9,7 +9,7 @@ using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMNotePerfectBurst : NotePerfectEffect
public partial class DTMNotePerfectBurst : NotePerfectEffect
{
#region [] Property Caches
private ParticleSystem effectParticle;
@@ -61,12 +61,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
return new DTMNotePerfectBurst_BM(effectTime);
}
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Note Perfect Burst");
}
#endregion
}

View File

@@ -8,7 +8,7 @@ using UnityEngine;
namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMRippleEffect : EffectBase
public partial class DTMRippleEffect : EffectBase
{
#region [] Fields
private GameObject prefab;
@@ -77,20 +77,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
return new Beatmap.DTMRippleEffect_BM(rippleTime, emissionColor, emissionIntensity, positionOffset, eulerAnglesOffset, scale);
}
public override void SetUpInspector()
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Ripple Effect");
var effectSettings1 = container.GenerateSubcontainer(3);
var rippleTimeInputField = inspector.GenerateInputField(this, effectSettings1, "Ripple Time", nameof(rippleTime));
var effectSettings2 = container.GenerateSubcontainer(1);
var emissionColorPicker = inspector.GenerateEmissionColorPicker(this, effectSettings2, "Color", "NULL", nameof(emissionColor), nameof(emissionIntensity));
var positionOffsetInputField = inspector.GenerateVector3InputField(this, effectSettings2, "Position Offset", nameof(positionOffset));
var eulerAnglesInputField = inspector.GenerateVector3InputField(this, effectSettings2, "Euler Angles", nameof(eulerAnglesOffset));
var scaleInputField = inspector.GenerateVector3InputField(this, effectSettings2, "Scale", nameof(scale));
SetRemove(effectSettings2);
}
#endregion
}
}