Esempio n. 1
0
 protected void PlaceSelectedSchema(Vector2Int aPos, Schema.EntitySchema aEntitySchema)
 {
     if (GM.boardManager.IsRectEmpty(aPos, aEntitySchema.size, null, aEntitySchema.isFront))
     {
         GM.boardManager.AddEntityFromSchema(aEntitySchema, aPos, Constants.DEFAULTFACING, Constants.DEFAULTCOLOR);
     }
 }
Esempio n. 2
0
 protected void AddSchema(Vector2Int aPos, Schema.EntitySchema aEntitySchema)
 {
     if (GM.boardManager.IsPosInBoard(aPos) && GM.boardManager.CanEditorPlaceSchema(aPos, aEntitySchema))
     {
         GM.boardManager.AddEntityFromSchema(aEntitySchema, aPos, Constants.DEFAULTFACING, Constants.DEFAULTCOLOR);
     }
 }
Esempio n. 3
0
        public void Update()
        {
            if (GM.editManager.currentState.selectedSchema != null)
            {
                Schema.EntitySchema selectedSchema = GM.editManager.currentState.selectedSchema;
                if (GM.inputManager.mouseState == MouseStateEnum.CLICKED)
                {
                    GM.editManager.AddSchema(GM.inputManager.mousePosV2, selectedSchema);
                }
                if (GM.inputManager.rightMouseState == MouseStateEnum.CLICKED)
                {
                    GM.editManager.ClearSelectedSchema();
                }
            }
            else
            {
                switch (GM.inputManager.mouseState)
                {
                case MouseStateEnum.DEFAULT:
                    break;

                case MouseStateEnum.CLICKED:
                    EntityState?clickedEntity = GM.boardManager.GetEntityAtMousePos(GM.editManager.currentState.isFront);
                    // if clickedEntityExists and is not a boundary
                    if (clickedEntity?.isBoundary == false)
                    {
                        // select this entity in state and store the entityBase locally
                        EntityState selectedEntity = clickedEntity.Value;
                        GM.editManager.SetSelectedEntity(selectedEntity.id);
                        this.selectedEntityBase = selectedEntity.entityBase;
                    }
                    else
                    {
                        if (GM.editManager.currentState.hasSelectedEntity)
                        {
                            GM.editManager.ClearSelectedEntity();
                        }
                    }
                    break;

                case MouseStateEnum.HELD:
                    if (GM.editManager.currentState.hasSelectedEntity)
                    {
                        Vector2Int newPos = GM.editManager.GetSelectedEntity().pos + GM.inputManager.dragOffsetV2;
                        this.selectedEntityBase.SetTempViewPosition(newPos);
                    }
                    break;

                case MouseStateEnum.RELEASED:
                    if (GM.editManager.currentState.hasSelectedEntity)
                    {
                        EntityState selectedEntity = GM.editManager.GetSelectedEntity();
                        Vector2Int  newPos         = selectedEntity.pos + GM.inputManager.dragOffsetV2;
                        // if entity can move
                        if (GM.editManager.CanMoveTo(newPos, selectedEntity))
                        {
                            // move this entity
                            GM.boardManager.MoveEntity(selectedEntity.id, newPos, true);
                        }
                        else
                        {
                            selectedEntity.entityBase.ResetView();
                        }
                    }
                    if (GM.editManager.currentState.hasSelectedEntity)
                    {
                        GM.editManager.ClearSelectedEntity();
                    }

                    this.selectedEntityBase = null;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
        }
Esempio n. 4
0
    public void SetSelectedSchema(Schema.EntitySchema aEntitySchema)
    {
        EditorState newEditorState = EditorState.SetSelectedSchema(this.currentState, aEntitySchema);

        UpdateEditorState(newEditorState);
    }