74 lines
2.7 KiB
C#
74 lines
2.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Lean.Pool;
|
|
using UnityEngine;
|
|
|
|
namespace Ichni.RhythmGame
|
|
{
|
|
public partial class EnvironmentObject : SubstantialObject
|
|
{
|
|
public bool isStatic;
|
|
|
|
public static SubstantialObject GenerateElement(string elementName, Guid id, List<string> tags,
|
|
string themeBundleName, string objectName, BaseElement parent,
|
|
Vector3 position, Vector3 eulerAngles, Vector3 scale,
|
|
bool isStatic, bool isFirstGenerated = true)
|
|
{
|
|
EnvironmentObject themeBundleObject =
|
|
ThemeBundleManager.instance.GetObject<EnvironmentObject>(themeBundleName, objectName);
|
|
EnvironmentObject environmentObject =
|
|
Instantiate(themeBundleObject, parent.transform).GetComponent<EnvironmentObject>();
|
|
environmentObject.Initialize(elementName, id, tags);
|
|
environmentObject.isStatic = isStatic;
|
|
return environmentObject;
|
|
}
|
|
}
|
|
|
|
public partial class EnvironmentObject
|
|
{
|
|
public override void SaveBM()
|
|
{
|
|
matchedBM = new Beatmap.EnvironmentObject_BM(elementName, elementGuid, tags, parentElement.matchedBM,
|
|
themeBundleName, objectName, isStatic);
|
|
}
|
|
}
|
|
|
|
namespace Beatmap
|
|
{
|
|
public class EnvironmentObject_BM : BaseElement_BM
|
|
{
|
|
public string themeBundleName;
|
|
public string objectName;
|
|
public bool isStatic;
|
|
|
|
public EnvironmentObject_BM()
|
|
{
|
|
|
|
}
|
|
|
|
public EnvironmentObject_BM(string elementName, Guid elementGuid, List<string> tags,
|
|
BaseElement_BM attachedElement, string themeBundleName, string objectName, bool isStatic)
|
|
: base(elementName, elementGuid, tags, attachedElement)
|
|
{
|
|
this.themeBundleName = themeBundleName;
|
|
this.objectName = objectName;
|
|
this.isStatic = isStatic;
|
|
}
|
|
|
|
public override void ExecuteBM()
|
|
{
|
|
matchedElement = EnvironmentObject.GenerateElement(elementName, elementGuid, tags,
|
|
themeBundleName, objectName, GetElement(attachedElementGuid),
|
|
Vector3.zero, Vector3.zero, Vector3.one, isStatic, false);
|
|
}
|
|
|
|
public override BaseElement DuplicateBM(BaseElement parent)
|
|
{
|
|
return EnvironmentObject.GenerateElement(elementName, elementGuid, tags,
|
|
themeBundleName, objectName, parent,
|
|
Vector3.zero, Vector3.zero, Vector3.one, isStatic, false);
|
|
}
|
|
}
|
|
}
|
|
} |