/**
         * Constructor.
         *
         * @param scene
         *            Contained scene data
         */
        public SceneDataControl(Scene scene, string playerImagePath)
        {
            this.scene         = scene;
            this.resourcesList = scene.getResources();

            selectedResources = 0;

            // Add a new resource if the list is empty
            if (resourcesList.Count == 0)
            {
                resourcesList.Add(new ResourcesUni());
            }

            // Create the subcontrollers
            resourcesDataControlList = new List <ResourcesDataControl>();
            foreach (ResourcesUni resources in resourcesList)
            {
                resourcesDataControlList.Add(new ResourcesDataControl(resources, Controller.SCENE));
            }

            exitsListDataControl       = new ExitsListDataControl(this, scene.getExits());
            referencesListDataControl  = new ReferencesListDataControl(playerImagePath, this, scene.getItemReferences(), scene.getAtrezzoReferences(), scene.getCharacterReferences());
            activeAreasListDataControl = new ActiveAreasListDataControl(this, scene.getActiveAreas());
            barriersListDataControl    = new BarriersListDataControl(this, scene.getBarriers());
            trajectoryDataControl      = new TrajectoryDataControl(this, scene.getTrajectory());
        }
Esempio n. 2
0
 public SetTrajectoryInitialNodeTool(Trajectory trajectory, TrajectoryDataControl trajectoryDataControl, NodeDataControl nodeDataControl)
 {
     this.trajectory                = trajectory;
     this.trajectoryDataControl     = trajectoryDataControl;
     this.nodeDataControl           = nodeDataControl;
     this.oldInitialNodeDataControl = trajectoryDataControl.getInitialNode();
 }
Esempio n. 3
0
 public AddTrajectorySideTool(NodeDataControl startNode, NodeDataControl endNode, Trajectory trajectory, TrajectoryDataControl trajectoryDataControl, SceneDataControl sceneDataControl)
 {
     this.startNode             = startNode;
     this.endNode               = endNode;
     this.trajectory            = trajectory;
     this.trajectoryDataControl = trajectoryDataControl;
     this.sceneDataControl      = sceneDataControl;
 }
 public DeleteTrajectoryNodeTool(DataControl dataControl, Trajectory trajectory, TrajectoryDataControl trajectoryDataControl)
 {
     this.oldNodeDataControl    = (NodeDataControl)dataControl;
     this.trajectory            = trajectory;
     this.trajectoryDataControl = trajectoryDataControl;
     this.oldSides   = new List <SideDataControl>();
     this.wasInitial = (trajectoryDataControl.getInitialNode() == oldNodeDataControl);
 }
 public AddTrajectoryNodeTool(Trajectory trajectory, TrajectoryDataControl trajectoryDataControl, int x, int y, SceneDataControl sceneDataControl)
 {
     this.trajectory            = trajectory;
     this.trajectoryDataControl = trajectoryDataControl;
     this.x = x;
     this.y = y;
     this.sceneDataControl = sceneDataControl;
     this.wasInitial       = false;
 }
Esempio n. 6
0
        /**
         * Constructor.
         *
         * @param scene
         *            Contained scene data
         */
        public SceneDataControl(Scene scene, string playerImagePath)
        {
            this.scene         = scene;
            this.resourcesList = scene.getResources();

            selectedResources = 0;

            // Add a new resource if the list is empty
            if (resourcesList.Count == 0)
            {
                resourcesList.Add(new ResourcesUni());
            }

            // Create the subcontrollers
            resourcesDataControlList = new List <ResourcesDataControl>();
            foreach (ResourcesUni resources in resourcesList)
            {
                resourcesDataControlList.Add(new ResourcesDataControl(resources, Controller.SCENE));
            }

            exitsListDataControl       = new ExitsListDataControl(this, scene.getExits());
            referencesListDataControl  = new ReferencesListDataControl(playerImagePath, this);
            activeAreasListDataControl = new ActiveAreasListDataControl(this, scene.getActiveAreas());
            barriersListDataControl    = new BarriersListDataControl(this, scene.getBarriers());
            trajectoryDataControl      = new TrajectoryDataControl(this, scene.getTrajectory());

            xApiOptions = new Dictionary <string, List <string> >();

            var accessibleOptions = Enum.GetValues(typeof(AccessibleTracker.Accessible))
                                    .Cast <AccessibleTracker.Accessible>()
                                    .Select(v => v.ToString().ToLower())
                                    .ToList();

            xApiOptions.Add("accesible", accessibleOptions);

            var alternativeOptions = Enum.GetValues(typeof(AlternativeTracker.Alternative))
                                     .Cast <AlternativeTracker.Alternative>()
                                     .Select(v => v.ToString().ToLower())
                                     .ToList();

            xApiOptions.Add("alternative", alternativeOptions);
        }
 public void setTrajectoryDataControl(TrajectoryDataControl trajectoryDataControl)
 {
     this.trajectoryDataControl = trajectoryDataControl;
 }
            public override void OnDrawingGizmos()
            {
                var trajectory = Target as TrajectoryDataControl;

                if (trajectory == null)
                {
                    return;
                }

                if (SceneEditor.Current.Disabled && pairing != null)
                {
                    pairing = null;
                }

                if (previousTrajectoryDataControl != trajectory)
                {
                    previousTrajectoryDataControl = trajectory;
                    pairing = null;
                }

                if (Event.current.type == EventType.MouseDown)
                {
                    var selected = SceneEditor.Current.SelectedElement;
                    var node     = selected as NodeDataControl;
                    var side     = selected as SideDataControl;

                    var isNode = node != null && trajectory.getNodes().Contains(node);
                    var isSide = side != null && trajectory.getSides().Contains(side);

                    switch (Action)
                    {
                    // Moving
                    case 1:
                        if (SceneEditor.Current.SelectedElement == null)
                        {
                            var pos = (Event.current.mousePosition - SceneEditor.Current.Viewport.position);
                            pos.x = (pos.x / SceneEditor.Current.Viewport.size.x) * SceneEditor.Current.Size.x;
                            pos.y = (pos.y / SceneEditor.Current.Viewport.size.y) * SceneEditor.Current.Size.y;
                            trajectory.addNode(Mathf.RoundToInt(pos.x), Mathf.RoundToInt(pos.y));
                        }
                        break;

                    // Pariring
                    case 2:
                        if (isNode)
                        {
                            if (pairing == null)
                            {
                                pairing = node;
                            }
                            else
                            {
                                var duplicated = trajectory.getSides().Find(s => IsPairingStartOrEnd(s, node)) != null;
                                if (!duplicated)
                                {
                                    trajectory.addSide(pairing, node);
                                }
                                pairing = null;
                            }
                        }
                        else
                        {
                            pairing = null;
                        }
                        break;

                    // Initial
                    case 3:
                        if (isNode)
                        {
                            trajectory.setInitialNode(node);
                        }
                        break;

                    // Deleting
                    case 4:
                        if ((isNode || isSide) && trajectory.deleteElement(selected, false))
                        {
                            SceneEditor.Current.SelectedElement = null;
                        }
                        break;
                    }
                }

                foreach (var node in trajectory.getNodes())
                {
                    HandleUtil.DrawPoint(GetPivot(node), 10f, SceneEditor.GetColor(node.isInitial() ? Color.red : Color.blue), SceneEditor.GetColor(Color.black));
                }

                if (pairing != null)
                {
                    HandleUtil.DrawPolyLine(new Vector2[] { GetPivot(pairing), Event.current.mousePosition }, false, SceneEditor.GetColor(Color.white), 3f);
                }
            }
        private void OnPlayerModeChange(PlayerMode val)
        {
            switch (val)
            {
            default:
                Debug.LogError("Wrong player mode: " + val);
                break;

            case PlayerMode.NoPlayer:
                workingScene.changeAllowPlayerLayer(false);
                componentBasedEditor.SelectedElement = null;
                break;

            case PlayerMode.InitialPosition:
            {
                var trajectoryDataControl = workingScene.getTrajectory();
                var trajectory            = trajectoryDataControl.GetTrajectory();
                var initialPos            = new Vector2(workingScene.getDefaultInitialPositionX(),
                                                        workingScene.getDefaultInitialPositionY());
                var initialScale = workingScene.getPlayerScale() >= 0 ? workingScene.getPlayerScale() : workingScene.getPlayerAppropiateScale();
                if (trajectory != null)
                {
                    initialPos   = new Vector2(trajectory.getInitial().getX(), trajectory.getInitial().getY());
                    initialScale = trajectory.getInitial().getScale();

                    // Swap from any of the selected nodes to the player
                    if (componentBasedEditor.SelectedElement != null && trajectoryDataControl.getNodes()
                        .Any(componentBasedEditor.SelectedElement.Equals))
                    {
                        componentBasedEditor.SelectedElement =
                            Controller.Instance.SelectedChapterDataControl.getPlayer();
                    }
                }
                workingScene.setTrajectoryDataControl(new TrajectoryDataControl(workingScene, null));
                workingScene.setTrajectory(null);
                workingScene.setDefaultInitialPosition((int)initialPos.x, (int)initialPos.y);
                workingScene.setPlayerScale(initialScale);
            }
            break;

            case PlayerMode.Trajectory:
            {
                var trajectory = workingScene.getTrajectory().GetTrajectory();
                if (trajectory == null)
                {
                    trajectory = new Trajectory();
                    trajectory.addNode("initial", workingScene.getDefaultInitialPositionX(),
                                       workingScene.getDefaultInitialPositionY(), workingScene.getPlayerScale());
                    trajectory.setInitial("initial");
                    var tdc = new TrajectoryDataControl(workingScene, trajectory);
                    workingScene.setTrajectoryDataControl(tdc);
                    workingScene.setTrajectory(trajectory);
                }


                // Swap from player to first node
                if (componentBasedEditor.SelectedElement == Controller.Instance.SelectedChapterDataControl.getPlayer())
                {
                    componentBasedEditor.SelectedElement = workingScene.getTrajectory().getInitialNode();
                }
            }
            break;
            }

            if (val != PlayerMode.NoPlayer && !workingScene.isAllowPlayer())
            {
                workingScene.changeAllowPlayerLayer(true);
            }
        }
Esempio n. 10
0
 /**
  * Constructor.
  *
  * @param sceneDataControl
  *            Parent scene controller
  * @param activeArea
  *            Exit of the data control structure
  */
 public SideDataControl(SceneDataControl sceneDataControl, TrajectoryDataControl trajectoryDataControl, Side side)
 {
     this.sceneDataControl      = sceneDataControl;
     this.trajectoryDataControl = trajectoryDataControl;
     this.side = side;
 }
 public DeleteTrajectorySideTool(SideDataControl dataControl, Trajectory trajectory, TrajectoryDataControl trajectoryDataControl)
 {
     this.sideDataControl       = dataControl;
     this.trajectory            = trajectory;
     this.trajectoryDataControl = trajectoryDataControl;
 }