Ejemplo n.º 1
0
        public void JoinEntities(Segment entityA, Segment entityB, Scrap.GameElements.Entities.Direction direction)
        {
            entities.Add(entityB);
            Point   gridOffset = entityA.constructElement.offSet;
            Vector2 anchorOffset;
            Joint   joint;

            switch (direction)
            {
            case Direction.Right:
                gridOffset  += new Point(1, 0);
                anchorOffset = new Vector2(-1.2f, 0);

                break;

            case Direction.Left:
                gridOffset  += new Point(-1, 0);
                anchorOffset = new Vector2(1.2f, 0);
                break;

            case Direction.Up:
                gridOffset  += new Point(0, 1);
                anchorOffset = new Vector2(0, 1.2f);
                break;

            case Direction.Down:    //ToDo: possible bug
                gridOffset  += new Point(0, -1);
                anchorOffset = new Vector2(0, -1.2f);
                break;

            default:
                gridOffset  += new Point(0, 1);
                anchorOffset = new Vector2(0, -1.2f);
                break;
            }
            if (!buildElements.ContainsKey(gridOffset))
            {
                joint = AddJoint(entityA, entityB, direction, anchorOffset);
                entityB.constructElement = new ConstructElement(this.game, entityB, this, gridOffset, joint);
                entityA.constructElement.branchJoints.Add(joint);
                buildElements.Add(gridOffset, entityB.constructElement);
                entityB.AddSensors();
            }
        }
Ejemplo n.º 2
0
        public void JoinEntities(Segment entityA, Segment entityB, Scrap.GameElements.Entities.Direction direction)
        {
            entities.Add(entityB);
            Point gridOffset = entityA.constructElement.offSet;
            Vector2 anchorOffset;
            Joint joint;

            switch (direction)
            {
                case Direction.Right:
                    gridOffset += new Point(1, 0);
                    anchorOffset=new Vector2(-1.2f, 0);

                    break;
                case Direction.Left:
                    gridOffset += new Point(-1, 0);
                    anchorOffset= new Vector2(1.2f, 0);
                    break;
                case Direction.Up:
                    gridOffset += new Point(0, 1);
                    anchorOffset= new Vector2(0, 1.2f);
                    break;
                case Direction.Down://ToDo: possible bug
                    gridOffset += new Point(0, -1);
                    anchorOffset= new Vector2(0, -1.2f);
                    break;
                default:
                    gridOffset += new Point(0, 1);
                    anchorOffset=new Vector2(0, -1.2f);
                    break;
            }
            if (!buildElements.ContainsKey(gridOffset))
            {
                joint = AddJoint(entityA, entityB, direction, anchorOffset);
                entityB.constructElement = new ConstructElement(this.game, entityB, this, gridOffset, joint);
                entityA.constructElement.branchJoints.Add(joint);
                buildElements.Add(gridOffset, entityB.constructElement);
                entityB.AddSensors();
            }
        }