更新
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6f1b718d3bcaa8b438db5edb1b3f3556
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a7628a4385075b148a30e4cdb5167396
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 910c16c1cc3571645a7a3cafe66def67
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f89a9a37d45820a49830829d491bd921
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d223da8f543f1784f94899b2ffb46ea7
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a45555f424f9bba44940a6bf9270f20c
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5167939da622dd7468937a95200ddaf9
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2875bfef8c3ef4e4dae07ebcd84542f2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf3fa25745dde1c489ddadb2a386907c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 44c1dc43358ab094d85813be1832aa37
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49c68e792b1f5004097cec40e7e30dc4
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 36a64ec7935496b4fb152b46b8f261a4
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1302a7e2236f16c43af1da6600066a90
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f85400d33d25d1a48bfe5bf009087ea9
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ffe2a33181b27ef4994e497ac143c7eb
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ee49df8fada3aff47960705b3f32be3d
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 671c2fb933f65754497df8fef3b31e83
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba4e16116c88a4c49b992f6d0b71c05d
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8f13be7de0273fd469c4cd8b88bbc3b8
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user