protected override void MechanismStart() { isSolutionMechanism = false; if (toGenerateConstruction == null) { toGenerateConstruction = Construction.CreateSimpleConstruction(PartType.None); } }
public void LoadBlankEditor() { ClearSolution(); ClearLevel(); LoadedLevelName = LevelDataManager.EditorSaveName; LevelOptions = 0; GridManager.instance.target = Construction.CreateSimpleConstruction(PartType.None); OnGridChangedEvent(); }
IEnumerator Start() { SetUpControlModes(); yield return(null); int counter = 0; List <Construction> draggableParts = new List <Construction>(); foreach (PartType partType in GameSettings.instance.partPrefabs.ConvertAll <PartType>((input) => input.partType)) // foreach (GrabbablePart prefab in GameSettings.instance.partPrefabs) { Construction partConstruction = Construction.CreateSimpleConstruction(partType); partConstruction.ignoreCollisions = true; GameObject dragButton = Instantiate(_draggableButtonPrefab.gameObject) as GameObject; UIButton dragUIButton = dragButton.GetComponent <UIButton>(); SetUpDragDropBehaviour(dragUIButton, partConstruction.CenterPart); dragButton.SetActive(true); // _dragButtons.Add(dragButton.GetComponent<UIButton>()); dragButton.transform.parent = _partHolder.transform; dragButton.transform.localPosition = new Vector3(0, -60f * counter, 0); partConstruction.transform.parent = dragButton.transform; partConstruction.transform.localPosition = Vector3.zero; draggableParts.Add(partConstruction); // GameObject partObject = Instantiate(prefab.gameObject) as GameObject; // partObject.transform.parent = _partHolder.transform; // partObject.transform.position = Vector3.zero; // partObject.transform.localPosition = new Vector3 (0, -60f * counter, 0); counter += 1; } _editorAreaInputCatcher.OnInputEvent += HandleScreenPoint; yield return(null); foreach (Construction construction in draggableParts) { // construction.CenterPart.PartSphereCollider.gameObject.SetActive(false); construction.ignoreCollisions = true; } CloseMaker(); }
public void SaveConstruction() { Debug.Log("Saving"); if (saveEvent != null) { if (targetConstructions.Count > 0) { saveEvent(targetConstructions[0]); } else { Construction noneConstruction = Construction.CreateSimpleConstruction(PartType.None); saveEvent(noneConstruction); noneConstruction.DestroySelf(); } } }
void SetUpDragDropBehaviour(UIButton button, GrabbablePart part) { dragButtons[part.partType] = button; buttonToPart[button] = part; Debug.Log("Setting up Drag Drop behaviour"); // Debug.DebugBreak(); button.SetDragDropDelegate((parms) => { if (parms.evt == EZDragDropEvent.Begin) { Debug.Log("Begin " + parms.dragObj /*+":"+parms.dragObj.transform.position+":"+parms.ptr.ray*/); if (onDragStart != null) { onDragStart(); onDragStart = null; } // from retarget // DestroyMarkedPart(); } if (parms.evt == EZDragDropEvent.Update) { if (Input.GetMouseButtonUp(1)) { HandleAltTapWhileDragging(part); } // // int rotationOffset = GetSuggestedRotation(part); part.RotatateSimulationOrientation(rotationOffset); // // if (rotateByOne) // { // RotateDraggedPart(part); // } // Debug.Log (string.Join(",", partSides.ConvertAll((input) => ""+input.offsetFromSide).ToArray())); } if (parms.evt == EZDragDropEvent.Cancelled) { Debug.Log("Cancelled " + parms.dragObj); Debug.Log("DropTarget: " + parms.dragObj.DropTarget); if (parms.dragObj.DropTarget == _editorAreaInputCatcher.Control.gameObject) { foreach (Construction construction in targetConstructions) { Debug.Log("Construction: " + construction); } if (targetConstructions.Count > 0 && targetConstructions[0].Count > 0) { ClearInnerArrows(); ConnectPartWithBestRotation(part); } else if (targetConstructions.Count > 0 && targetConstructions[0].Count == 0) { Debug.Log("Adding new part to blank construction"); GrabbablePart singlePart = ObjectPoolManager.GetObject(GameSettings.instance.GetPartPrefab(part.partType)); targetConstructions[0].AddToConstruction(singlePart); targetConstructions[0].CenterConstruction(singlePart); MarkConstructionChange(); } else { Debug.Log("Adding new construction"); targetConstructions.Add(Construction.CreateSimpleConstruction(part.partType)); targetConstructions[0].FirstPart.SetSimulationOrientation(part.SimulationOrientation); targetConstructions[0].transform.parent = _constructionHolder.transform; targetConstructions[0].transform.localPosition = Vector3.zero; MarkConstructionChange(); } } part.SetSimulationOrientation(HexMetrics.Direction.Up); // targetConstructions. } if (parms.evt == EZDragDropEvent.CancelDone) { Debug.Log("CancelDone " + parms.dragObj); } }); }
void Start() { SetTarget(Construction.CreateSimpleConstruction(PartType.None)); OnGridChangedEvent += PerformAutosave; }