This commit is contained in:
SoulliesOfficial
2026-03-14 02:30:26 -04:00
parent cf86f0ee51
commit aee62cd637
2041 changed files with 246771 additions and 129128 deletions

View File

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

View File

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

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public abstract class AnimationBase_BM : GameElement_BM
{
public AnimationBase_BM()
{
}
public AnimationBase_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement) : base(elementName, elementGuid, tags, attachedElement)
{
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 62f7f20bc287dba439ab78c3adc20013

View File

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

View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public partial class CameraFieldOfView_BM : AnimationBase_BM
{
public FlexibleFloat_BM fieldOfView;
public CameraFieldOfView_BM()
{
}
public CameraFieldOfView_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, FlexibleFloat_BM fieldOfView)
: base(elementName, elementGuid, tags, attachedElement)
{
this.fieldOfView = fieldOfView;
}
public override void ExecuteBM()
{
matchedElement = CameraFieldOfView.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid) as GameCamera, fieldOfView.ConvertToGameType());
}
public override GameElement DuplicateBM(GameElement parent)
{
return CameraFieldOfView.GenerateElement(elementName, Guid.NewGuid(), tags, false,
parent as GameCamera, fieldOfView.ConvertToGameType());
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 4237b95b10903c04da3914fb0d9ebd0e

View File

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

View File

@@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class BaseColorChange_BM : AnimationBase_BM
{
public FlexibleFloat_BM colorR, colorG, colorB, colorA;
public BaseColorChange_BM()
{
}
public BaseColorChange_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, FlexibleFloat_BM colorR, FlexibleFloat_BM colorG,
FlexibleFloat_BM colorB, FlexibleFloat_BM colorA) :
base(elementName, elementGuid, tags, attachedElement)
{
this.colorR = colorR;
this.colorG = colorG;
this.colorB = colorB;
this.colorA = colorA;
}
public override void ExecuteBM()
{
matchedElement = BaseColorChange.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid), colorR.ConvertToGameType(),
colorG.ConvertToGameType(), colorB.ConvertToGameType(), colorA.ConvertToGameType());
}
public override GameElement DuplicateBM(GameElement parent)
{
return BaseColorChange.GenerateElement(elementName, Guid.NewGuid(), tags, false,
parent, colorR.ConvertToGameType(), colorG.ConvertToGameType(),
colorB.ConvertToGameType(), colorA.ConvertToGameType());
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 54072515035e86e4490c1d5d6412e834

View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class EmissionColorChange_BM : AnimationBase_BM
{
public FlexibleFloat_BM colorR, colorG, colorB, colorI;
public EmissionColorChange_BM()
{
}
public EmissionColorChange_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM parentElement,
FlexibleFloat_BM colorR, FlexibleFloat_BM colorG, FlexibleFloat_BM colorB, FlexibleFloat_BM colorI) :
base(elementName, elementGuid, tags, parentElement)
{
this.colorR = colorR;
this.colorG = colorG;
this.colorB = colorB;
this.colorI = colorI;
}
public override void ExecuteBM()
{
matchedElement = EmissionColorChange.GenerateElement(elementName, elementGuid, tags, false, GetElement(attachedElementGuid),
colorR.ConvertToGameType(), colorG.ConvertToGameType(), colorB.ConvertToGameType(), colorI.ConvertToGameType());
}
public override GameElement DuplicateBM(GameElement parent)
{
return EmissionColorChange.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
colorR.ConvertToGameType(), colorG.ConvertToGameType(), colorB.ConvertToGameType(), colorI.ConvertToGameType());
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 41c413de18a45884cb5a212200f3193b

View File

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

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class DisplacementTracker_BM : AnimationBase_BM, ICanNotInExport
{
public Guid targetDisplacementGuid;
public float timeOffset;
public DisplacementTracker_BM() { }
public DisplacementTracker_BM(string elementName, System.Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, Guid targetDisplacementGuid, float timeOffset)
: base(elementName, elementGuid, tags, attachedElement)
{
this.targetDisplacementGuid = targetDisplacementGuid;
this.timeOffset = timeOffset;
}
public override void ExecuteBM()
{
matchedElement = DisplacementTracker.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid), GetElement(targetDisplacementGuid) as Displacement, timeOffset);
matchedElement.matchedBM = this;
}
public override GameElement DuplicateBM(GameElement parent)
{
return DisplacementTracker.GenerateElement(elementName, System.Guid.NewGuid(), tags, false, parent,
GetElement(targetDisplacementGuid) as Displacement, timeOffset);
}
public override void AfterExecute()
{
(matchedElement as DisplacementTracker).targetDisplacement = GetElement(targetDisplacementGuid) as ICanBeTrackedDisplacement;
}
}
}

View File

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

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class ScaleTracker_BM : AnimationBase_BM, ICanNotInExport
{
public Guid targetScaleGuid;
public float timeOffset;
public ScaleTracker_BM() { }
public ScaleTracker_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, Guid targetScaleGuid, float timeOffset)
: base(elementName, elementGuid, tags, attachedElement)
{
this.targetScaleGuid = targetScaleGuid;
this.timeOffset = timeOffset;
}
public override void ExecuteBM()
{
matchedElement = ScaleTracker.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid), GetElement(targetScaleGuid) as ICanBeTrackedScale, timeOffset);
matchedElement.matchedBM = this;
}
public override GameElement DuplicateBM(GameElement parent)
{
return ScaleTracker.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
GetElement(targetScaleGuid) as ICanBeTrackedScale, timeOffset);
}
public override void AfterExecute()
{
(matchedElement as ScaleTracker).targetScale = GetElement(targetScaleGuid) as ICanBeTrackedScale;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 4fd8d93fbaacc9e4693a14658c303fa9

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class SwirlTracker_BM : AnimationBase_BM, ICanNotInExport
{
public Guid targetSwirlGuid;
public float timeOffset;
public SwirlTracker_BM() { }
public SwirlTracker_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, Guid targetSwirlGuid, float timeOffset)
: base(elementName, elementGuid, tags, attachedElement)
{
this.targetSwirlGuid = targetSwirlGuid;
this.timeOffset = timeOffset;
}
public override void ExecuteBM()
{
matchedElement = SwirlTracker.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid), GetElement(targetSwirlGuid) as Swirl, timeOffset);
matchedElement.matchedBM = this;
}
public override GameElement DuplicateBM(GameElement parent)
{
return SwirlTracker.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
GetElement(targetSwirlGuid) as Swirl, timeOffset);
}
public override void AfterExecute()
{
(matchedElement as SwirlTracker).targetSwirl = GetElement(targetSwirlGuid) as ICanBeTrackedSwirl;
}
}
}

View File

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

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class Vector3Interferometer_BM : AnimationBase_BM, ICanNotInExport
{
public Vector3 InterferomValueVector3;
public InterferomType InterferomType;
public Vector3Interferometer_BM() { }
public Vector3Interferometer_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, InterferomType interferomType, Vector3 interferomValue)
: base(elementName, elementGuid, tags, attachedElement)
{
this.InterferomType = interferomType;
this.InterferomValueVector3 = interferomValue;
}
public override void ExecuteBM()
{
matchedElement = Vector3Interferometer.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid) as AnimationBase, InterferomType, InterferomValueVector3);
}
public override GameElement DuplicateBM(GameElement parent)
{
return Vector3Interferometer.GenerateElement(elementName, Guid.NewGuid(), tags, false,
parent as AnimationBase, InterferomType, InterferomValueVector3);
}
}
public interface ICanNotInExport { }
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 523d5a711ebc2d84797488b5fee2b08c

View File

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

View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class TrackGlobalColorChange_BM : AnimationBase_BM
{
public FlexibleFloat_BM colorR, colorG, colorB, colorA;
public TrackGlobalColorChange_BM()
{
}
public TrackGlobalColorChange_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, FlexibleFloat_BM colorR, FlexibleFloat_BM colorG, FlexibleFloat_BM colorB, FlexibleFloat_BM colorA)
: base(elementName, elementGuid, tags, attachedElement)
{
this.colorR = colorR;
this.colorG = colorG;
this.colorB = colorB;
this.colorA = colorA;
}
public override GameElement DuplicateBM(GameElement attached)
{
return TrackGlobalColorChange.GenerateElement(elementName, Guid.NewGuid(), tags, true, attached,
colorR.ConvertToGameType(), colorG.ConvertToGameType(), colorB.ConvertToGameType(), colorA.ConvertToGameType());
}
public override void ExecuteBM()
{
matchedElement = TrackGlobalColorChange.GenerateElement(elementName, elementGuid, tags, false, GetElement(attachedElementGuid),
colorR.ConvertToGameType(), colorG.ConvertToGameType(), colorB.ConvertToGameType(), colorA.ConvertToGameType());
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 4a6e3c456031ba64dbb66efb488a2cff

View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class TrackTotalTimeChange_BM : AnimationBase_BM
{
public FlexibleFloat_BM totalTime;
public TrackTotalTimeChange_BM()
{
}
public TrackTotalTimeChange_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, FlexibleFloat_BM totalTime) :
base(elementName, elementGuid, tags, attachedElement)
{
this.totalTime = totalTime;
}
public override void ExecuteBM()
{
matchedElement = TrackTotalTimeChange.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid) as Track, totalTime.ConvertToGameType());
}
public override GameElement DuplicateBM(GameElement parent)
{
return TrackTotalTimeChange.GenerateElement(elementName, Guid.NewGuid(), tags, false,
parent as Track, totalTime.ConvertToGameType());
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 095a199d040efa14c8505df1752c832f

View File

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

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class Displacement_BM : AnimationBase_BM
{
public FlexibleFloat_BM positionX, positionY, positionZ;
public Displacement_BM()
{
}
public Displacement_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, FlexibleFloat_BM positionX, FlexibleFloat_BM positionY, FlexibleFloat_BM positionZ)
: base(elementName, elementGuid, tags, attachedElement)
{
this.positionX = positionX;
this.positionY = positionY;
this.positionZ = positionZ;
}
public override void ExecuteBM()
{
matchedElement = Displacement.GenerateElement(elementName, elementGuid, tags, false, GetElement(attachedElementGuid),
positionX.ConvertToGameType(), positionY.ConvertToGameType(), positionZ.ConvertToGameType());
}
public override GameElement DuplicateBM(GameElement parent)
{
return Displacement.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
positionX.ConvertToGameType(), positionY.ConvertToGameType(), positionZ.ConvertToGameType());
}
}
}

View File

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

View File

@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class LookAt_BM : GameElement_BM
{
public FlexibleBool_BM enabling;
public Guid lookAtObjectGuid;
public LookAt_BM()
{
}
public LookAt_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, FlexibleBool_BM enabling, Guid lookAtObjectGuid)
: base(elementName, elementGuid, tags, attachedElement)
{
this.enabling = enabling;
this.lookAtObjectGuid = lookAtObjectGuid;
}
public override void ExecuteBM()
{
matchedElement = LookAt.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid), GetElement(lookAtObjectGuid), enabling.ConvertToGameType());
matchedElement.matchedBM = this;
}
public override GameElement DuplicateBM(GameElement parent)
{
return LookAt.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
GetElement(lookAtObjectGuid), enabling.ConvertToGameType());
}
public override void AfterExecute()
{
(matchedElement as LookAt).lookAtObject = GetElement(lookAtObjectGuid);
}
}
}

View File

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

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class Scale_BM : GameElement_BM
{
public FlexibleFloat_BM scaleX, scaleY, scaleZ;
public Scale_BM()
{
}
public Scale_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement,
FlexibleFloat_BM scaleX, FlexibleFloat_BM scaleY, FlexibleFloat_BM scaleZ)
: base(elementName, elementGuid, tags, attachedElement)
{
this.scaleX = scaleX;
this.scaleY = scaleY;
this.scaleZ = scaleZ;
}
public override void ExecuteBM()
{
matchedElement = Scale.GenerateElement(elementName, elementGuid, tags, false, GetElement(attachedElementGuid),
scaleX.ConvertToGameType(), scaleY.ConvertToGameType(), scaleZ.ConvertToGameType());
}
public override GameElement DuplicateBM(GameElement parent)
{
return Scale.GenerateElement(elementName, Guid.NewGuid(), tags, false,
parent, scaleX.ConvertToGameType(), scaleY.ConvertToGameType(), scaleZ.ConvertToGameType());
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 75e6be49209c9864bbbab7bcda34a362

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class Swirl_BM : AnimationBase_BM
{
public FlexibleFloat_BM eulerAngleX, eulerAngleY, eulerAngleZ;
public Swirl_BM()
{
}
public Swirl_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement,
FlexibleFloat_BM eulerAngleX, FlexibleFloat_BM eulerAngleY, FlexibleFloat_BM eulerAngleZ)
: base(elementName, elementGuid, tags, attachedElement)
{
this.eulerAngleX = eulerAngleX;
this.eulerAngleY = eulerAngleY;
this.eulerAngleZ = eulerAngleZ;
}
public override void ExecuteBM()
{
matchedElement = Swirl.GenerateElement(elementName, elementGuid, tags, false, GetElement(attachedElementGuid),
eulerAngleX.ConvertToGameType(), eulerAngleY.ConvertToGameType(), eulerAngleZ.ConvertToGameType());
}
public override GameElement DuplicateBM(GameElement parent)
{
return Swirl.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
eulerAngleX.ConvertToGameType(), eulerAngleY.ConvertToGameType(), eulerAngleZ.ConvertToGameType());
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 93c6342040d26c24f93249523cc91a9f

View File

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

View File

@@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
[Serializable]
public abstract class GameElement_BM : BaseElement_BM
{
[NonSerialized]
public static Dictionary<Guid, GameElement_BM> identifier = new(); //存档类的标识符
[NonSerialized]
public GameElement matchedElement; //存档类对应的游戏物体
public string elementName;
public List<string> tags;
public Guid elementGuid;
public GameElement_BM()
{
}
public GameElement_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement)
{
this.elementName = elementName;
this.elementGuid = elementGuid;
this.tags = tags;
attachedElementGuid = attachedElement?.elementGuid ?? Guid.Empty;
identifier.TryAdd(this.elementGuid, this);
}
public static GameElement_BM GetElementBM(Guid id)
{
if (identifier.TryGetValue(id, out GameElement_BM element_BM))
{
return element_BM;
}
return null;
}
public static GameElement GetElement(Guid id)
{
if (identifier.TryGetValue(id, out GameElement_BM element_BM))
{
return element_BM.matchedElement;
}
return null;
}
#region [Editor ] Editor Interfaces
/// <summary>
/// 复制物体
/// </summary>
/// <param name="attached">父物体</param>
public abstract GameElement DuplicateBM(GameElement attached);
#endregion
public static List<BaseElement_BM> GetAllAttachedBaseElements(GameElement_BM gameElement, List<BaseElement_BM> clip)
{
Guid elementGuid = gameElement.elementGuid;
List<BaseElement_BM> result = new List<BaseElement_BM>();
foreach (BaseElement_BM element in clip)
{
if (element == null)
{
continue;
}
if (element.attachedElementGuid == elementGuid)
{
result.Add(element);
}
}
return result;
}
}
}

View File

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

View File

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

View File

@@ -0,0 +1,39 @@
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class ColorSubmodule_BM : Submodule_BM
{
public Color originalBaseColor;
public bool emissionEnabled;
public Color originalEmissionColor;
public float originalEmissionIntensity;
public ColorSubmodule_BM()
{
}
public ColorSubmodule_BM(GameElement attachedElement) : base(attachedElement)
{
ColorSubmodule colorSubmodule = (attachedElement as IHaveColorSubmodule).colorSubmodule;
this.originalBaseColor = colorSubmodule.originalBaseColor;
this.emissionEnabled = colorSubmodule.emissionEnabled;
this.originalEmissionColor = colorSubmodule.originalEmissionColor;
this.originalEmissionIntensity = colorSubmodule.originalEmissionIntensity;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as IHaveColorSubmodule).colorSubmodule = new ColorSubmodule(attachedElement,
originalBaseColor, emissionEnabled, originalEmissionColor, originalEmissionIntensity);
}
public override void DuplicateBM(GameElement attached)
{
(attached as IHaveColorSubmodule).colorSubmodule = new ColorSubmodule(attached,
originalBaseColor, emissionEnabled, originalEmissionColor, originalEmissionIntensity);
}
}
}

View File

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

View File

@@ -0,0 +1,64 @@
using System.Collections.Generic;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class EffectSubmodule_BM : Submodule_BM
{
public Dictionary<string, List<EffectBase_BM>> effectCollection;
public EffectSubmodule_BM()
{
}
public EffectSubmodule_BM(GameElement attachedElement) : base(attachedElement)
{
effectCollection = new Dictionary<string, List<EffectBase_BM>>();
IHaveEffectSubmodule element = attachedElement as IHaveEffectSubmodule;
foreach (var effect in element.effectSubmodule.effectCollection)
{
List<EffectBase_BM> effectList = new List<EffectBase_BM>();
foreach (var effectBase in effect.Value)
{
effectList.Add(effectBase.ConvertToBM());
}
effectCollection.Add(effect.Key, effectList);
}
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as IHaveEffectSubmodule).effectSubmodule =
new EffectSubmodule(attachedElement, effectCollection);
}
public override void DuplicateBM(GameElement attached)
{
(attached as IHaveEffectSubmodule).effectSubmodule =
new EffectSubmodule(attached, effectCollection);
}
}
public abstract class EffectBase_BM
{
public float effectTime;
public EffectBase_BM()
{
}
public EffectBase_BM(float effectTime)
{
this.effectTime = effectTime;
}
/// <summary>
/// 转换为游戏类
/// </summary>
public abstract EffectBase ConvertToGameType(GameElement attachedGameElement);
}
}

View File

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

View File

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

View File

@@ -0,0 +1,45 @@
using System.Collections.Generic;
using Ichni.RhythmGame;
namespace Ichni.RhythmGame.Beatmap
{
public class NoteAudioSubmodule_BM : Submodule_BM
{
public List<string> generalJudgeAudioList;
public List<string> perfectAudioList;
public List<string> goodAudioList;
public List<string> badAudioList;
public List<string> missAudioList;
public List<string> holdStartAudioList;
public NoteAudioSubmodule_BM()
{
}
public NoteAudioSubmodule_BM(GameElement attachedElement, NoteAudioSubmodule noteAudioSubmodule) : base(attachedElement)
{
generalJudgeAudioList = noteAudioSubmodule.generalJudgeAudioList;
perfectAudioList = noteAudioSubmodule.perfectAudioList;
goodAudioList = noteAudioSubmodule.goodAudioList;
badAudioList = noteAudioSubmodule.badAudioList;
missAudioList = noteAudioSubmodule.missAudioList;
holdStartAudioList = noteAudioSubmodule.holdStartAudioList;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as NoteBase).noteAudioSubmodule = new NoteAudioSubmodule((attachedElement as NoteBase),
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList, holdStartAudioList);
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
(attached as NoteBase).noteAudioSubmodule = new NoteAudioSubmodule((attached as NoteBase),
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList, holdStartAudioList);
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 27f072230eec6f649badbcc2cbb30423

View File

@@ -0,0 +1,38 @@
using System.Collections.Generic;
using Ichni.RhythmGame;
namespace Ichni.RhythmGame.Beatmap
{
public class NoteJudgeSubmodule_BM : Submodule_BM
{
public List<NoteJudgeUnit_BM> judgeUnitList;
public NoteJudgeSubmodule_BM()
{
}
public NoteJudgeSubmodule_BM(GameElement attachedElement, NoteJudgeSubmodule noteJudgeSubmodule) : base(attachedElement)
{
judgeUnitList = new List<NoteJudgeUnit_BM>();
foreach (var judgeUnit in noteJudgeSubmodule.judgeUnitList)
{
judgeUnitList.Add(judgeUnit.ConvertToBM());
}
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as NoteBase).noteJudgeSubmodule = new NoteJudgeSubmodule(attachedElement as NoteBase, judgeUnitList);
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
(attached as NoteBase).noteJudgeSubmodule = new NoteJudgeSubmodule(attached as NoteBase, judgeUnitList);
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 35381849324142649bb346a438836141

View File

@@ -0,0 +1,30 @@
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class NoteJudgeTriggerSubmodule_BM : Submodule_BM
{
public NoteJudgeTriggerSubmodule_BM()
{
}
public NoteJudgeTriggerSubmodule_BM(GameElement attachedElement) : base(attachedElement)
{
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as IHaveNoteJudgeTriggerSubmodule).noteJudgeTriggerSubmodule =
new NoteJudgeTriggerSubmodule(attachedElement);
}
public override void DuplicateBM(GameElement attached)
{
(attached as IHaveNoteJudgeTriggerSubmodule).noteJudgeTriggerSubmodule =
new NoteJudgeTriggerSubmodule(attached);
}
}
}

View File

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

View File

@@ -0,0 +1,27 @@
using System;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public abstract class Submodule_BM : BaseElement_BM
{
[System.NonSerialized] protected GameElement attachedElement; //存档类对应的游戏物体
public Submodule_BM()
{
}
public Submodule_BM(GameElement attachedElement)
{
this.attachedElement = attachedElement;
attachedElementGuid = attachedElement.elementGuid;
}
/// <summary>
/// 复制物体
/// </summary>
/// <param name="attached">(对于物体)父物体,(对于次级模块)或挂载物体</param>
public abstract void DuplicateBM(GameElement attached);
}
}

View File

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

View File

@@ -0,0 +1,36 @@
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class TimeDurationSubmodule_BM : Submodule_BM
{
public bool isOverridingDuration;
public float startTime, endTime;
public TimeDurationSubmodule_BM()
{
}
public TimeDurationSubmodule_BM(GameElement attachedElement) : base(attachedElement)
{
TimeDurationSubmodule timeDurationSubmodule = (attachedElement as IHaveTimeDurationSubmodule).timeDurationSubmodule;
isOverridingDuration = timeDurationSubmodule.isOverridingDuration;
startTime = timeDurationSubmodule.startTime;
endTime = timeDurationSubmodule.endTime;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as IHaveTimeDurationSubmodule).timeDurationSubmodule =
new TimeDurationSubmodule(attachedElement, isOverridingDuration, startTime, endTime);
}
public override void DuplicateBM(GameElement attached)
{
(attached as IHaveTimeDurationSubmodule).timeDurationSubmodule =
new TimeDurationSubmodule(attached, isOverridingDuration, startTime, endTime);
}
}
}

View File

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

View File

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

View File

@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class TrackPathSubmodule_BM : Submodule_BM
{
public Track.TrackSpaceType trackSpaceType;
public Track.TrackSamplingType trackSamplingType;
public bool isClosed;
public bool isShowingDisplay;
public TrackPathSubmodule_BM()
{
}
public TrackPathSubmodule_BM(GameElement attachedElement, TrackPathSubmodule trackPathSubmodule) : base(
attachedElement)
{
this.trackSpaceType = trackPathSubmodule.trackSpaceType;
this.trackSamplingType = trackPathSubmodule.trackSamplingType;
this.isClosed = trackPathSubmodule.isClosed;
this.isShowingDisplay = trackPathSubmodule.isShowingDisplay;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackPathSubmodule = new TrackPathSubmodule(track, trackSpaceType, trackSamplingType, isClosed, isShowingDisplay);
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackPathSubmodule = new TrackPathSubmodule(track, trackSpaceType, trackSamplingType, isClosed, isShowingDisplay);
}
#endregion
}
}

View File

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

View File

@@ -0,0 +1,225 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
// Auto Orient
public class TrackRendererSubmoduleAutoOrient_BM : Submodule_BM
{
public string materialThemeBundleName;
public string materialName;
public bool enableEmission;
public float emissionIntensity;
public bool zWrite; // 新增
public Vector2 uvScale = Vector2.one;
public Vector2 uvOffset = Vector2.zero;
public TrackRendererSubmoduleAutoOrient_BM()
{
}
public TrackRendererSubmoduleAutoOrient_BM(GameElement attachedElement,
TrackRendererSubmoduleAutoOrient trackRendererSubmodule) : base(attachedElement)
{
materialThemeBundleName = trackRendererSubmodule.materialThemeBundleName;
materialName = trackRendererSubmodule.materialName;
enableEmission = trackRendererSubmodule.enableEmission;
emissionIntensity = trackRendererSubmodule.emissionIntensity;
zWrite = trackRendererSubmodule.zWrite; // 新增
uvScale = trackRendererSubmodule.uvScale;
uvOffset = trackRendererSubmodule.uvOffset;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackRendererSubmodule =
new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
}
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackRendererSubmodule =
new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
}
}
#endregion
}
// Path Generator
public class TrackRendererSubmodulePathGenerator_BM : Submodule_BM
{
public string materialThemeBundleName;
public string materialName;
public bool enableEmission;
public float emissionIntensity;
public bool zWrite; // 新增
public Vector2 uvScale = Vector2.one;
public Vector2 uvOffset = Vector2.zero;
public TrackRendererSubmodulePathGenerator_BM()
{
}
public TrackRendererSubmodulePathGenerator_BM(GameElement attachedElement,
TrackRendererSubmodulePathGenerator trackRendererSubmodule) : base(attachedElement)
{
materialThemeBundleName = trackRendererSubmodule.materialThemeBundleName;
materialName = trackRendererSubmodule.materialName;
enableEmission = trackRendererSubmodule.enableEmission;
emissionIntensity = trackRendererSubmodule.emissionIntensity;
zWrite = trackRendererSubmodule.zWrite; // 新增
uvScale = trackRendererSubmodule.uvScale;
uvOffset = trackRendererSubmodule.uvOffset;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackRendererSubmodule =
new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
}
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackRendererSubmodule =
new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
}
}
#endregion
}
// Tube Generator
public class TrackRendererSubmoduleTubeGenerator_BM : Submodule_BM
{
public string materialThemeBundleName;
public string materialName;
public bool enableEmission;
public float emissionIntensity;
public bool zWrite; // 新增
public int sideCount;
public Vector2 uvScale = Vector2.one;
public Vector2 uvOffset = Vector2.zero;
public TrackRendererSubmoduleTubeGenerator_BM()
{
}
public TrackRendererSubmoduleTubeGenerator_BM(GameElement attachedElement,
TrackRendererSubmoduleTubeGenerator trackRendererSubmodule) : base(attachedElement)
{
materialThemeBundleName = trackRendererSubmodule.materialThemeBundleName;
materialName = trackRendererSubmodule.materialName;
enableEmission = trackRendererSubmodule.enableEmission;
emissionIntensity = trackRendererSubmodule.emissionIntensity;
zWrite = trackRendererSubmodule.zWrite; // 新增
sideCount = trackRendererSubmodule.sideCount;
uvScale = trackRendererSubmodule.uvScale;
uvOffset = trackRendererSubmodule.uvOffset;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackRendererSubmodule =
new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
}
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackRendererSubmodule =
new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
}
}
#endregion
}
// Surface
public class TrackRendererSubmoduleSurface_BM : Submodule_BM
{
public string materialThemeBundleName;
public string materialName;
public bool enableEmission;
public float emissionIntensity;
public bool zWrite; // 新增
public Vector2 uvScale = Vector2.one;
public Vector2 uvOffset = Vector2.zero;
public TrackRendererSubmoduleSurface_BM()
{
}
public TrackRendererSubmoduleSurface_BM(GameElement attachedElement,
TrackRendererSubmoduleSurface trackRendererSubmodule) : base(attachedElement)
{
materialThemeBundleName = trackRendererSubmodule.materialThemeBundleName;
materialName = trackRendererSubmodule.materialName;
enableEmission = trackRendererSubmodule.enableEmission;
emissionIntensity = trackRendererSubmodule.emissionIntensity;
zWrite = trackRendererSubmodule.zWrite; // 新增
uvScale = trackRendererSubmodule.uvScale;
uvOffset = trackRendererSubmodule.uvOffset;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackRendererSubmodule =
new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
}
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackRendererSubmodule =
new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
if (materialName.Trim() != String.Empty)
{
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
}
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 69b1e426d3ad6a64a9e2cf274f6dcad1

View File

@@ -0,0 +1,75 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
// Movable
public class TrackTimeSubmoduleMovable_BM : Submodule_BM
{
public float trackStartTime;
public float trackEndTime;
public float visibleTrackTimeLength;
public AnimationCurveType animationCurveType;
public TrackTimeSubmoduleMovable_BM()
{
}
public TrackTimeSubmoduleMovable_BM(GameElement attachedElement, TrackTimeSubmoduleMovable trackTimeSubmoduleMovable) : base(attachedElement)
{
trackStartTime = trackTimeSubmoduleMovable.trackStartTime;
trackEndTime = trackTimeSubmoduleMovable.trackEndTime;
visibleTrackTimeLength = trackTimeSubmoduleMovable.visibleTrackTimeLength;
animationCurveType = trackTimeSubmoduleMovable.animationCurveType;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackTimeSubmodule = new TrackTimeSubmoduleMovable(track, trackStartTime, trackEndTime, visibleTrackTimeLength, animationCurveType);
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackTimeSubmodule = new TrackTimeSubmoduleMovable(track, trackStartTime, trackEndTime, visibleTrackTimeLength, animationCurveType);
}
#endregion
}
// Static
public class TrackTimeSubmoduleStatic_BM : Submodule_BM
{
public float trackTotalTime;
public AnimationCurveType animationCurveType;
public TrackTimeSubmoduleStatic_BM()
{
}
public TrackTimeSubmoduleStatic_BM(GameElement attachedElement, TrackTimeSubmoduleStatic trackTimeSubmoduleStatic) : base(attachedElement)
{
trackTotalTime = trackTimeSubmoduleStatic.trackTotalTime;
animationCurveType = trackTimeSubmoduleStatic.animationCurveType;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
Track track = attachedElement as Track;
track.trackTimeSubmodule = new TrackTimeSubmoduleStatic(track, trackTotalTime, animationCurveType);
}
#region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached)
{
Track track = attached as Track;
track.trackTimeSubmodule = new TrackTimeSubmoduleStatic(track, trackTotalTime, animationCurveType);
}
#endregion
}
}

View File

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

View File

@@ -0,0 +1,37 @@
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class TransformSubmodule_BM : Submodule_BM
{
public Vector3 originalPosition;
public Vector3 originalEulerAngles;
public Vector3 originalScale;
public TransformSubmodule_BM()
{
}
public TransformSubmodule_BM(GameElement attachedElement) : base(attachedElement)
{
TransformSubmodule transformSubmodule = (attachedElement as IHaveTransformSubmodule).transformSubmodule;
this.originalPosition = transformSubmodule.originalPosition;
this.originalEulerAngles = transformSubmodule.originalEulerAngles;
this.originalScale = transformSubmodule.originalScale;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as IHaveTransformSubmodule).transformSubmodule =
new TransformSubmodule(attachedElement, originalPosition, originalEulerAngles, originalScale);
}
public override void DuplicateBM(GameElement attached)
{
(attached as IHaveTransformSubmodule).transformSubmodule =
new TransformSubmodule(attached, originalPosition, originalEulerAngles, originalScale);
}
}
}

View File

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

View File

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

View File

@@ -0,0 +1,34 @@
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class FlexibleBool_BM
{
public List<AnimatedBool> animatedBoolList;
public FlexibleBool_BM()
{
this.animatedBoolList = new List<AnimatedBool>();
}
public FlexibleBool_BM(List<AnimatedBool> animatedBoolList)
{
this.animatedBoolList = animatedBoolList;
}
public FlexibleBool ConvertToGameType()
{
if (this.animatedBoolList.Count == 0)
{
return new FlexibleBool();
}
List<AnimatedBool> animations = new List<AnimatedBool>();
foreach (AnimatedBool animatedBool in animatedBoolList)
{
animations.Add(new AnimatedBool(animatedBool.time, animatedBool.value));
}
return new FlexibleBool(animations);
}
}
}

View File

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

View File

@@ -0,0 +1,56 @@
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
[System.Serializable]
public class FlexibleFloat_BM
{
public List<AnimatedFloat> animatedFloatList;
public FlexibleFloat_BM()
{
this.animatedFloatList = new List<AnimatedFloat>();
}
public FlexibleFloat_BM(List<AnimatedFloat> animatedFloatList)
{
this.animatedFloatList = animatedFloatList;
}
public FlexibleFloat ConvertToGameType()
{
if (animatedFloatList.Count == 0)
{
return new FlexibleFloat();
}
List<AnimatedFloat> list = new List<AnimatedFloat>();
foreach (AnimatedFloat animatedFloat in animatedFloatList)
{
list.Add(new AnimatedFloat(
animatedFloat.startTime, animatedFloat.endTime,
animatedFloat.startValue, animatedFloat.endValue,
animatedFloat.animationCurveType));
}
return new FlexibleFloat(list);
}
public FlexibleFloat_BM DeepCopyBM()
{
FlexibleFloat_BM copy = new FlexibleFloat_BM();
foreach (AnimatedFloat animatedFloat in animatedFloatList)
{
copy.animatedFloatList.Add(new AnimatedFloat(
animatedFloat.startTime, animatedFloat.endTime,
animatedFloat.startValue, animatedFloat.endValue,
animatedFloat.animationCurveType));
}
return copy;
}
public void ApplyTimeOffset(float offsetTime)
{
animatedFloatList.ForEach(i => i.ApplyTimeOffset(offsetTime));
}
}
}

View File

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

View File

@@ -0,0 +1,35 @@
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
[System.Serializable]
public class FlexibleInt_BM
{
public List<AnimatedInt> animatedIntList;
public FlexibleInt_BM()
{
this.animatedIntList = new List<AnimatedInt>();
}
public FlexibleInt_BM(List<AnimatedInt> animatedIntList)
{
this.animatedIntList = animatedIntList;
}
public FlexibleInt ConvertToGameType()
{
if (animatedIntList.Count == 0)
{
return new FlexibleInt();
}
List<AnimatedInt> animations = new List<AnimatedInt>();
foreach (AnimatedInt animatedInt in animatedIntList)
{
animations.Add(new AnimatedInt(animatedInt.time, animatedInt.value));
}
return new FlexibleInt(animations);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 022d142f9b364ae4989f99cd0194eccf

View File

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

View File

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

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class EnvironmentObject_BM : SubstantialObject_BM
{
public bool isStatic;
public EnvironmentObject_BM()
{
}
public EnvironmentObject_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, string themeBundleName, string objectName, bool isStatic)
: base(elementName, elementGuid, tags, attachedElement, themeBundleName, objectName)
{
this.isStatic = isStatic;
}
public override void ExecuteBM()
{
matchedElement = EnvironmentObject.GenerateElement(elementName, elementGuid, tags, false,
themeBundleName, objectName, GetElement(attachedElementGuid), isStatic);
}
#region [Editor ] Editor Interfaces
public override GameElement DuplicateBM(GameElement parent)
{
return EnvironmentObject.GenerateElement(elementName, Guid.NewGuid(), tags, false,
themeBundleName, objectName, parent, isStatic);
}
#endregion
}
}

View File

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

View File

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

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class ElementFolder_BM : GameElement_BM
{
public ElementFolder_BM()
{
}
public ElementFolder_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement)
: base(elementName, elementGuid, tags, attachedElement)
{
}
public override void ExecuteBM()
{
matchedElement = ElementFolder.GenerateElement(elementName, elementGuid, tags, false, GetElement(attachedElementGuid));
}
public override GameElement DuplicateBM(GameElement parent)
{
return ElementFolder.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 66a382a1d57a4cf4d8d665967f015be1

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class GameCameraExtension_BM : GameElement_BM
{
public float farClipRange;
public GameCameraExtension_BM()
{
}
public GameCameraExtension_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, float farClipRange)
: base(elementName, elementGuid, tags, attachedElement)
{
this.farClipRange = farClipRange;
}
public override void ExecuteBM()
{
matchedElement = GameCameraExtension.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid), farClipRange);
}
#region [Editor ] Editor Interfaces
public override GameElement DuplicateBM(GameElement parent)
{
return GameCameraExtension.GenerateElement(elementName, Guid.NewGuid(), tags, false,
parent, farClipRange);
}
#endregion
}
}

View File

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

View File

@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class GameCamera_BM : GameElement_BM
{
public GameCamera.CameraViewType cameraViewType;
public float perspectiveAngle;
public float orthographicSize;
public GameCamera_BM()
{
}
public GameCamera_BM(string elementName, Guid elementGuid, List<string> tags,
GameElement_BM attachedElement, GameCamera.CameraViewType cameraViewType,
float perspectiveAngle, float orthographicSize)
: base(elementName, elementGuid, tags, attachedElement)
{
this.cameraViewType = cameraViewType;
this.perspectiveAngle = perspectiveAngle;
this.orthographicSize = orthographicSize;
}
public override void ExecuteBM()
{
matchedElement = GameCamera.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid), cameraViewType, perspectiveAngle, orthographicSize);
}
#region [Editor ] Editor Interfaces
public override GameElement DuplicateBM(GameElement parent)
{
return GameCamera.GenerateElement(elementName, Guid.NewGuid(), tags, false,
parent, cameraViewType, perspectiveAngle, orthographicSize);
}
#endregion
}
}

View File

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

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class SubstantialObject_BM : GameElement_BM
{
public string themeBundleName;
public string objectName;
public SubstantialObject_BM()
{
}
public SubstantialObject_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement,
string themeBundleName, string objectName)
: base(elementName, elementGuid, tags, attachedElement)
{
this.themeBundleName = themeBundleName;
this.objectName = objectName;
}
public override void ExecuteBM()
{
throw new NotImplementedException();
}
#region [Editor ] Editor Save Mapping Overrides
public override GameElement DuplicateBM(GameElement attached)
{
throw new NotImplementedException();
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 72e25e59812cb5b42891d3792a0f5a4d

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
namespace Ichni.RhythmGame.Beatmap
{
public class VariablesContainer_BM : GameElement_BM
{
public Dictionary<string, int> originalVariables;
public VariablesContainer_BM()
{
}
public VariablesContainer_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM parentElement,
Dictionary<string, int> originalVariables) : base(elementName, elementGuid, tags, parentElement)
{
this.originalVariables = new Dictionary<string, int>(originalVariables);
}
public override void ExecuteBM()
{
matchedElement = VariablesContainer.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid), originalVariables);
}
public override GameElement DuplicateBM(GameElement attached)
{
return VariablesContainer.GenerateElement(elementName, Guid.NewGuid(), tags, false, attached, originalVariables);
}
}
}

View File

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

View File

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

View File

@@ -0,0 +1,33 @@
using System;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class BloomEffect_BM : EffectBase_BM
{
public float duration;
public float peak;
public AnimationCurve intensityCurve;
public BloomEffect_BM()
{
}
public BloomEffect_BM(float duration, float peak, AnimationCurve intensityCurve)
{
this.effectTime = 0;
this.duration = duration;
this.peak = peak;
this.intensityCurve = intensityCurve;
}
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
{
return new BloomEffect(duration, peak, intensityCurve)
{
attachedGameElement = attachedGameElement
};
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3413ff976ca99594588df0c72da96bb3

View File

@@ -0,0 +1,33 @@
using System;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class CameraOffsetEffect_BM : EffectBase_BM
{
public float duration;
public Vector3 offsetValue;
public AnimationCurve offsetCurve;
public CameraOffsetEffect_BM()
{
}
public CameraOffsetEffect_BM(float duration, Vector3 offsetValue, AnimationCurve offsetCurve)
{
this.effectTime = duration;
this.duration = duration;
this.offsetValue = offsetValue;
this.offsetCurve = offsetCurve;
}
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
{
return new CameraOffsetEffect(duration, offsetValue, offsetCurve)
{
attachedGameElement = attachedGameElement
};
}
}
}

View File

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

View File

@@ -0,0 +1,37 @@
using System;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class CameraShakeEffect_BM : EffectBase_BM
{
public float duration;
public float frequency;
public float amplitudeX;
public float amplitudeY;
public float amplitudeZ;
public CameraShakeEffect_BM()
{
}
public CameraShakeEffect_BM(float duration, float frequency, float amplitudeX, float amplitudeY, float amplitudeZ)
{
this.effectTime = 0;
this.duration = duration;
this.frequency = frequency;
this.amplitudeX = amplitudeX;
this.amplitudeY = amplitudeY;
this.amplitudeZ = amplitudeZ;
}
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
{
return new CameraShakeEffect(duration, frequency, amplitudeX, amplitudeY, amplitudeZ)
{
attachedGameElement = attachedGameElement
};
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 52ba834fbdd81184697cb84a1d68e3d6

View File

@@ -0,0 +1,33 @@
using System;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class CameraTiltEffect_BM : EffectBase_BM
{
public float duration;
public Vector3 tiltValue;
public AnimationCurve tiltCurve;
public CameraTiltEffect_BM(float duration, Vector3 tiltValue, AnimationCurve tiltCurve)
{
this.effectTime = duration;
this.duration = duration;
this.tiltValue = tiltValue;
this.tiltCurve = tiltCurve;
}
public CameraTiltEffect_BM()
{
}
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
{
return new CameraTiltEffect(duration, tiltValue, tiltCurve)
{
attachedGameElement = attachedGameElement
};
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 7ef4715e423882b48bfec88fd2b2e87b

View File

@@ -0,0 +1,32 @@
using System;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class CameraZoomEffect_BM : EffectBase_BM
{
public float duration;
public float relativeZoom;
public AnimationCurve zoomCurve;
public CameraZoomEffect_BM()
{
}
public CameraZoomEffect_BM(float duration, float relativeZoom, AnimationCurve zoomCurve)
{
this.duration = duration;
this.relativeZoom = relativeZoom;
this.zoomCurve = zoomCurve;
}
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
{
return new CameraZoomEffect(duration, relativeZoom, zoomCurve)
{
attachedGameElement = attachedGameElement
};
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 33e69b1160e7dbd4c9fa4b419c75698e

View File

@@ -0,0 +1,33 @@
using System;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class ChromaticAberrationEffect_BM : EffectBase_BM
{
public float duration;
public float peak;
public AnimationCurve intensityCurve;
public ChromaticAberrationEffect_BM()
{
}
public ChromaticAberrationEffect_BM(float duration, float peak, AnimationCurve intensityCurve)
{
this.effectTime = 0;
this.duration = duration;
this.peak = peak;
this.intensityCurve = intensityCurve;
}
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
{
return new ChromaticAberrationEffect(duration, peak, intensityCurve)
{
attachedGameElement = attachedGameElement
};
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5b4dec4c61d72b7449499646b22efc44

View File

@@ -0,0 +1,38 @@
using System;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
public class EnableControlEffect_BM : EffectBase_BM
{
public Guid connectedGameElementGuid;
public string connectedVariableName;
public int enableValue;
public bool useExpression;
public string expression;
public EnableControlEffect_BM()
{
}
public EnableControlEffect_BM(Guid connectedGameElementGuid, string connectedVariableName,
int enableValue, bool useExpression, string expression)
{
this.connectedGameElementGuid = connectedGameElementGuid;
this.connectedVariableName = connectedVariableName;
this.enableValue = enableValue;
this.useExpression = useExpression;
this.expression = expression;
}
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
{
return new EnableControlEffect(GameElement_BM.GetElement(connectedGameElementGuid), connectedVariableName,
enableValue, useExpression, expression)
{
attachedGameElement = attachedGameElement
};
}
}
}

View File

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

Some files were not shown because too many files have changed in this diff Show More