public static void ReloadBlueprints(bool ingame) { BlueprintsState.LoadedBlueprints.Clear(); string[] blueprintFiles = Directory.GetFiles(GetBlueprintDirectory()); foreach (string blueprintFile in blueprintFiles) { if (blueprintFile.EndsWith(".blueprint") || blueprintFile.EndsWith(".json")) { Blueprint blueprint = new Blueprint(blueprintFile); if (blueprint.ReadBinary() && !blueprint.IsEmpty()) { BlueprintsState.LoadedBlueprints.Add(blueprint); } else if (blueprint.ReadJSON() && !blueprint.IsEmpty()) { BlueprintsState.LoadedBlueprints.Add(blueprint); } } } if (ingame && BlueprintsState.LoadedBlueprints.Count > 0) { BlueprintsState.SelectedBlueprintIndex = 0; BlueprintsState.ClearVisuals(); BlueprintsState.VisualizeBlueprint(Grid.PosToXY(PlayerController.GetCursorPos(KInputManager.GetMousePos())), BlueprintsState.SelectedBlueprint); } }
public static bool LoadBlueprint(string blueprintLocation, out Blueprint blueprint) { blueprint = new Blueprint(blueprintLocation); if (!blueprint.ReadBinary()) { blueprint.ReadJson(); } return(!blueprint.IsEmpty()); }
protected override void OnDragComplete(Vector3 cursorDown, Vector3 cursorUp) { base.OnDragComplete(cursorDown, cursorUp); if (hasFocus) { Grid.PosToXY(cursorDown, out int x0, out int y0); Grid.PosToXY(cursorUp, out int x1, out int y1); if (x0 > x1) { Util.Swap(ref x0, ref x1); } if (y0 < y1) { Util.Swap(ref y0, ref y1); } Blueprint blueprint = BlueprintsState.CreateBlueprint(new Vector2I(x0, y0), new Vector2I(x1, y1), this); if (blueprint.IsEmpty()) { PopFXManager.Instance.SpawnFX(BlueprintsAssets.BLUEPRINTS_CREATE_ICON_SPRITE, Strings.Get(BlueprintsStrings.STRING_BLUEPRINTS_CREATE_EMPTY), null, PlayerController.GetCursorPos(KInputManager.GetMousePos()), BlueprintsAssets.BLUEPRINTS_CONFIG_FXTIME); } else { FileNameDialog blueprintNameDialog = Utilities.CreateBlueprintRenameDialog(); SpeedControlScreen.Instance.Pause(false); blueprintNameDialog.onConfirm = delegate(string blueprintName) { blueprint.Rename(blueprintName.Substring(0, blueprintName.Length - 4)); SpeedControlScreen.Instance.Unpause(false); blueprintNameDialog.Deactivate(); blueprint.Write(); PopFXManager.Instance.SpawnFX(BlueprintsAssets.BLUEPRINTS_CREATE_ICON_SPRITE, Strings.Get(BlueprintsStrings.STRING_BLUEPRINTS_CREATE_CREATED), null, PlayerController.GetCursorPos(KInputManager.GetMousePos()), BlueprintsAssets.BLUEPRINTS_CONFIG_FXTIME); BlueprintsState.LoadedBlueprints.Add(blueprint); BlueprintsState.SelectedBlueprintIndex = BlueprintsState.LoadedBlueprints.Count - 1; }; blueprintNameDialog.onCancel = delegate { SpeedControlScreen.Instance.Unpause(false); PopFXManager.Instance.SpawnFX(BlueprintsAssets.BLUEPRINTS_CREATE_ICON_SPRITE, Strings.Get(BlueprintsStrings.STRING_BLUEPRINTS_CREATE_CANCELLED), null, PlayerController.GetCursorPos(KInputManager.GetMousePos()), BlueprintsAssets.BLUEPRINTS_CONFIG_FXTIME); blueprintNameDialog.Deactivate(); }; blueprintNameDialog.Activate(); } } }
protected override void OnDragComplete(Vector3 cursorDown, Vector3 cursorUp) { base.OnDragComplete(cursorDown, cursorUp); if (hasFocus) { Grid.PosToXY(cursorDown, out int x0, out int y0); Grid.PosToXY(cursorUp, out int x1, out int y1); if (x0 > x1) { Util.Swap(ref x0, ref x1); } if (y0 < y1) { Util.Swap(ref y0, ref y1); } Blueprint blueprint = BlueprintsState.CreateBlueprint(new Vector2I(x0, y0), new Vector2I(x1, y1), this); if (blueprint.IsEmpty()) { PopFXManager.Instance.SpawnFX(BlueprintsAssets.BLUEPRINTS_CREATE_ICON_SPRITE, Strings.Get(BlueprintsStrings.STRING_BLUEPRINTS_CREATE_EMPTY), null, PlayerController.GetCursorPos(KInputManager.GetMousePos()), BlueprintsAssets.BLUEPRINTS_CONFIG_FXTIME); } else { void onConfirmDelegate(string blueprintName, FileNameDialog parent) { blueprint.Rename(blueprintName, false); blueprint.SetFolder(""); SpeedControlScreen.Instance.Unpause(false); PopFXManager.Instance.SpawnFX(BlueprintsAssets.BLUEPRINTS_CREATE_ICON_SPRITE, Strings.Get(BlueprintsStrings.STRING_BLUEPRINTS_CREATE_CREATED), null, PlayerController.GetCursorPos(KInputManager.GetMousePos()), BlueprintsAssets.BLUEPRINTS_CONFIG_FXTIME); parent.Deactivate(); } FileNameDialog blueprintNameDialog = UIUtilities.CreateTextDialog(Strings.Get(BlueprintsStrings.STRING_BLUEPRINTS_NAMEBLUEPRINT_TITLE), false, onConfirmDelegate); SpeedControlScreen.Instance.Pause(false); blueprintNameDialog.onCancel = delegate { SpeedControlScreen.Instance.Unpause(false); PopFXManager.Instance.SpawnFX(BlueprintsAssets.BLUEPRINTS_CREATE_ICON_SPRITE, Strings.Get(BlueprintsStrings.STRING_BLUEPRINTS_CREATE_CANCELLED), null, PlayerController.GetCursorPos(KInputManager.GetMousePos()), BlueprintsAssets.BLUEPRINTS_CONFIG_FXTIME); blueprintNameDialog.Deactivate(); }; blueprintNameDialog.Activate(); } } }
public static void LoadFolder(string folder) { string[] files = Directory.GetFiles(folder); string[] subfolders = Directory.GetDirectories(folder); foreach (string file in files) { if (file.EndsWith(".blueprint") || file.EndsWith(".json")) { Blueprint blueprint = new Blueprint(file); bool valid = false; if (blueprint.ReadBinary() && !blueprint.IsEmpty()) { valid = true; } else { blueprint.ReadJSON(); if (!blueprint.IsEmpty()) { valid = true; } } if (valid) { PlaceIntoFolder(blueprint); } } } foreach (string subfolder in subfolders) { LoadFolder(subfolder); } }
protected override void OnDragComplete(Vector3 cursorDown, Vector3 cursorUp) { base.OnDragComplete(cursorDown, cursorUp); if (hasFocus) { Grid.PosToXY(cursorDown, out int x0, out int y0); Grid.PosToXY(cursorUp, out int x1, out int y1); if (x0 > x1) { Util.Swap(ref x0, ref x1); } if (y0 < y1) { Util.Swap(ref y0, ref y1); } Blueprint blueprint = BlueprintsState.CreateBlueprint(new Vector2I(x0, y0), new Vector2I(x1, y1), this); if (blueprint.IsEmpty()) { PopFXManager.Instance.SpawnFX(BlueprintsAssets.BLUEPRINTS_CREATE_ICON_SPRITE, Strings.Get(BlueprintsStrings.STRING_BLUEPRINTS_SNAPSHOT_EMPTY), null, PlayerController.GetCursorPos(KInputManager.GetMousePos()), BlueprintsAssets.BLUEPRINTS_CONFIG_FXTIME); } else { BlueprintsState.VisualizeBlueprint(Grid.PosToXY(PlayerController.GetCursorPos(KInputManager.GetMousePos())), blueprint); ToolMenu.Instance.toolParameterMenu.gameObject.SetActive(false); ToolMenu.Instance.PriorityScreen.Show(true); gameObject.GetComponent <SnapshotToolHoverCard>().UsingSnapshot = true; gameObject.AddComponent <SnapshotToolInput>(); gameObject.GetComponent <SnapshotToolInput>().ParentTool = this; DestroyVisualizer(); PopFXManager.Instance.SpawnFX(BlueprintsAssets.BLUEPRINTS_CREATE_ICON_SPRITE, Strings.Get(BlueprintsStrings.STRING_BLUEPRINTS_SNAPSHOT_TAKEN), null, PlayerController.GetCursorPos(KInputManager.GetMousePos()), BlueprintsAssets.BLUEPRINTS_CONFIG_FXTIME); GridCompositor.Instance.ToggleMajor(true); this.blueprint = blueprint; } } }