/** * 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()); }
public SetTrajectoryInitialNodeTool(Trajectory trajectory, TrajectoryDataControl trajectoryDataControl, NodeDataControl nodeDataControl) { this.trajectory = trajectory; this.trajectoryDataControl = trajectoryDataControl; this.nodeDataControl = nodeDataControl; this.oldInitialNodeDataControl = trajectoryDataControl.getInitialNode(); }
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; }
/** * 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); } }
/** * 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; }