public void ObjectBind(int layer) { if (ObjectManager.instance.currentObjectModel == null) { return; } if (_awaitConfirmOnLayer != layer) { if (_awaitConfirmOnLayer != -1) { onFinishAwaitConfirm.Invoke(_awaitConfirmOnLayer); } _awaitConfirmOnLayer = layer; onStartAwaitConfirm.Invoke(layer); return; } ; if (!_bind.ContainsKey(layer)) { StartListening(layer); } var newBeatObject = new BeatObjectData(ObjectManager.instance.currentObjectModel.objectTag, SerializableGuid.NewGuid(), _awaitConfirmOnLayer, ModelInput.CloneInputs(ObjectManager.instance.currentObjectModel.modelInput)); ObjectBind(layer, newBeatObject); _awaitConfirmOnLayer = -1; onFinishAwaitConfirm.Invoke(layer); }
public BeatObjectData Clone() { BeatObjectData other = new BeatObjectData { objectTag = objectTag, id = SerializableGuid.NewGuid(), modelInputsData = ModelInput.CloneInputs(modelInputsData) }; other.modelInputs = new Dictionary <Type, ModelInput>(); for (int i = 0; i < other.modelInputsData.Length; i++) { ModelInput m = other.modelInputsData[i]; other.modelInputs.Add(m.GetType(), m); } return(other); }
/* * Object controll */ public BeatObjectData NewBeatObject(ObjectModel objectModel, float time = 0.0f, int layer = 0, bool history = true) { BeatObjectData data = new BeatObjectData { objectTag = objectModel.objectTag, id = SerializableGuid.NewGuid(), time = time, editorLayer = layer, modelInputsData = ModelInput.CloneInputs(objectModel.modelInput), }; if (history) { BackupInfo(); } levelInfo.beatObjectDatas.Add(data); onNewObject.Invoke(data); SortBeatObjects(); return(data); }