959e80cf72
assets upload description.
88 lines
2.6 KiB
C#
88 lines
2.6 KiB
C#
using System.Collections;
|
|
using System.IO;
|
|
using System;
|
|
using UnityEngine;
|
|
using RPGCreationKit;
|
|
using RPGCreationKit.SaveSystem;
|
|
using UnityEngine.UI;
|
|
|
|
public class ScreenshotTool : MonoBehaviour
|
|
{
|
|
[Header("Game Objects")]
|
|
[SerializeField] private GameObject UI;
|
|
[SerializeField] private Slider superSizeSlider;
|
|
[SerializeField] private INIReader INI;
|
|
|
|
[Header("Fills out on initialization")]
|
|
[SerializeField] private string outputPath;
|
|
[SerializeField] private string filePrefix;
|
|
[SerializeField] private string lastSavedFileName;
|
|
[SerializeField] private string ImageName;
|
|
[SerializeField] private int SSCount = 0;
|
|
[SerializeField, Range(0, 3)] public int Quality = 3;
|
|
[SerializeField] private string Extension = "EXR";
|
|
|
|
private bool IsActing = false;
|
|
|
|
void Start() {
|
|
outputPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments)+@"\My Games\Firstborn\Screenshots";
|
|
if (Directory.Exists(outputPath) == false){
|
|
Directory.CreateDirectory(outputPath);
|
|
}
|
|
InitializeSettings();
|
|
}
|
|
|
|
private void InitializeSettings() {
|
|
SSCount = INI.ReadSettingInt("Screenshot Tool", "Screenshot", 0);
|
|
superSizeSlider.value = (float)INI.ReadSettingInt("Screenshot Tool", "ScreenshotMultiplier", 0);
|
|
}
|
|
|
|
public void CaptureScreenshot()
|
|
{
|
|
if (IsActing == false) {
|
|
IsActing = true;
|
|
PlayerData data = SaveSystemManager.instance.saveFile.PlayerData;
|
|
string saveFolder = Path.Combine(outputPath, data.playerName);
|
|
if (Directory.Exists(saveFolder) == false) {
|
|
Directory.CreateDirectory(saveFolder);
|
|
}
|
|
if (Directory.Exists(saveFolder)) {
|
|
filePrefix = data.playerLocation;
|
|
ImageName = SSCount + "_" + filePrefix + "." + Extension;
|
|
string fileName = Path.Combine(saveFolder, ImageName);
|
|
UI.SetActive(false);
|
|
ScreenCapture.CaptureScreenshot(fileName, (int)superSizeSlider.value);
|
|
StartCoroutine(UIOn());
|
|
}
|
|
} else {
|
|
Debug.Log("We are already taking a screenshot!");
|
|
}
|
|
}
|
|
|
|
public void SaveSuperSizeSlider() {
|
|
INI.SaveSettingInt("Screenshot Tool", "ScreenshotMultiplier", (int)superSizeSlider.value);
|
|
}
|
|
|
|
IEnumerator UIOn() {
|
|
yield return new WaitForSeconds(1f);
|
|
UI.SetActive(true);
|
|
AlertMessage.instance.InitAlertMessage("Saved as: " + ImageName, 3f);
|
|
SSCount += 1;
|
|
IsActing = false;
|
|
INI.SaveSettingInt("Screenshot Tool", "Screenshot", SSCount);
|
|
}
|
|
|
|
public void SetQuality(int A) {
|
|
Quality = A;
|
|
if (A == 3) {
|
|
Extension = "EXR";
|
|
} else if (A == 2) {
|
|
Extension = "TIFF";
|
|
} else if (A == 1) {
|
|
Extension = "PNG";
|
|
} else if (A == 0) {
|
|
Extension = "JPG";
|
|
}
|
|
INI.SaveSettingInt("Screenshot Tool", "ScreenshotExtension", A);
|
|
}
|
|
} |