Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        /*
         * 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);
        }