You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
4.9 KiB
167 lines
4.9 KiB
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
namespace UltraCombos.Marvel.DrawHeroes
|
|
{
|
|
public class PaintSender : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
float interval = 1.0f;
|
|
|
|
public PaintCraft.CanvasController canvas;
|
|
|
|
ResourceClient client;
|
|
|
|
Coroutine coroutine = null;
|
|
|
|
public global::PaintCraft.Canvas.Configs.PageConfig signaturePage;
|
|
|
|
[Space(10)]
|
|
public UnityEvent onPaintingSaved = new UnityEvent();
|
|
|
|
private void Start()
|
|
{
|
|
|
|
}
|
|
|
|
public void SavePainting()
|
|
{
|
|
if (coroutine == null)
|
|
{
|
|
coroutine = StartCoroutine(DoSavePainting());
|
|
}
|
|
}
|
|
|
|
public void SavePaintingAndSignature()
|
|
{
|
|
if (coroutine == null)
|
|
{
|
|
coroutine = StartCoroutine(DoSavePaintingAndSignature());
|
|
}
|
|
}
|
|
|
|
IEnumerator DoSavePainting()
|
|
{
|
|
yield return canvas.MakeColoringTexture();
|
|
|
|
var data = AppData.Instance;
|
|
|
|
if (data.lastPainting == null)
|
|
{
|
|
data.lastPainting = new Texture2D(canvas.ColoringTexture.width, canvas.ColoringTexture.height, canvas.ColoringTexture.format, false);
|
|
}
|
|
|
|
Graphics.CopyTexture(canvas.ColoringTexture, data.lastPainting);
|
|
data.lastPainting.Apply();
|
|
data.lastPainting.name = $"painting - {data.serial}";
|
|
|
|
if (data.lastThumbnail == null)
|
|
{
|
|
data.lastThumbnail = new Texture2D(canvas.ThumbnailTexture.width, canvas.ThumbnailTexture.height, canvas.ThumbnailTexture.format, false);
|
|
}
|
|
|
|
Graphics.CopyTexture(canvas.ThumbnailTexture, data.lastThumbnail);
|
|
data.lastThumbnail.Apply();
|
|
data.lastThumbnail.name = $"thumbnail - {data.serial}";
|
|
|
|
global::PaintCraft.Canvas.AppData.SelectedPageConfig = signaturePage;
|
|
|
|
onPaintingSaved.Invoke();
|
|
|
|
yield return new WaitForSeconds(interval);
|
|
|
|
coroutine = null;
|
|
}
|
|
|
|
IEnumerator DoSavePaintingAndSignature()
|
|
{
|
|
//Debug.Log("DoSavePaintingAndSignature");
|
|
yield return canvas.MakeColoringTexture();
|
|
|
|
var data = AppData.Instance;
|
|
|
|
if (data.lastPainting == null)
|
|
{
|
|
data.lastPainting = new Texture2D(canvas.ColoringTexture.width, canvas.ColoringTexture.height, canvas.ColoringTexture.format, false);
|
|
}
|
|
|
|
Graphics.CopyTexture(canvas.ColoringTexture, data.lastPainting);
|
|
data.lastPainting.Apply();
|
|
data.lastPainting.name = $"painting - {data.serial}";
|
|
|
|
yield return null;
|
|
|
|
if (data.lastThumbnail == null)
|
|
{
|
|
data.lastThumbnail = new Texture2D(canvas.ThumbnailTexture.width, canvas.ThumbnailTexture.height, canvas.ThumbnailTexture.format, false);
|
|
}
|
|
|
|
Graphics.CopyTexture(canvas.ThumbnailTexture, data.lastThumbnail);
|
|
data.lastThumbnail.Apply();
|
|
data.lastThumbnail.name = $"thumbnail - {data.serial}";
|
|
|
|
yield return null;
|
|
|
|
if (data.lastSignature == null)
|
|
{
|
|
data.lastSignature = new Texture2D(64, 64, TextureFormat.RGBA32, false);
|
|
data.lastSignature.name = $"signature - empty";
|
|
}
|
|
|
|
yield return new WaitForSeconds(interval);
|
|
|
|
onPaintingSaved.Invoke();
|
|
|
|
coroutine = null;
|
|
//Debug.Log("DoSavePaintingAndSignature is done.");
|
|
}
|
|
|
|
public void Send()
|
|
{
|
|
if (coroutine == null)
|
|
{
|
|
if (client == null)
|
|
{
|
|
client = GetComponent<ResourceClient>();
|
|
}
|
|
|
|
coroutine = StartCoroutine(DoSend());
|
|
}
|
|
}
|
|
|
|
IEnumerator DoSaveSignature()
|
|
{
|
|
yield return canvas.MakeColoringTexture();
|
|
|
|
var data = AppData.Instance;
|
|
|
|
if (data.lastSignature == null)
|
|
{
|
|
data.lastSignature = new Texture2D(canvas.ColoringTexture.width, canvas.ColoringTexture.height, canvas.ColoringTexture.format, false);
|
|
}
|
|
Graphics.CopyTexture(canvas.ColoringTexture, data.lastSignature);
|
|
data.lastSignature.Apply();
|
|
data.lastSignature.name = $"signature - {data.serial}";
|
|
|
|
coroutine = null;
|
|
}
|
|
|
|
IEnumerator DoSend()
|
|
{
|
|
//yield return DoSaveSignature();
|
|
|
|
var data = AppData.Instance;
|
|
|
|
if (AppData.Instance.dev == false)
|
|
client.SendData(data.lastThumbnail, data.lastSignature, data.lastThumbnail);
|
|
|
|
yield return new WaitForSeconds(interval);
|
|
|
|
coroutine = null;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|