2020-12-22 03:13:43 +00:00
|
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
|
|
|
|
|
|
using System;
|
2020-12-02 21:12:25 +00:00
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
using UnityEngine.InputSystem;
|
2021-03-15 11:40:46 +00:00
|
|
|
|
using UnityEngine.Serialization;
|
2020-12-02 21:12:25 +00:00
|
|
|
|
|
|
|
|
|
|
public class MapView : MonoBehaviour
|
|
|
|
|
|
{
|
|
|
|
|
|
public Camera Main;
|
|
|
|
|
|
public Camera MinimapGravity;
|
|
|
|
|
|
public Camera Minimap;
|
|
|
|
|
|
public MeshRenderer GravityRenderer;
|
|
|
|
|
|
public float ZoomSpeed;
|
2021-03-15 11:40:46 +00:00
|
|
|
|
[FormerlySerializedAs("SectorRenderer")] public ZoneRenderer ZoneRenderer;
|
2020-12-02 21:12:25 +00:00
|
|
|
|
|
|
|
|
|
|
private Transform _minimapTransform;
|
|
|
|
|
|
private CopyTransform _minimapCopyTransform;
|
|
|
|
|
|
private RenderTexture _minimapTexture;
|
|
|
|
|
|
private Transform _minimapGravityTransform;
|
|
|
|
|
|
private CopyTransform _minimapGravityCopyTransform;
|
|
|
|
|
|
private RenderTexture _minimapGravityTexture;
|
|
|
|
|
|
private Transform _gravityRendererTransform;
|
|
|
|
|
|
private CopyTransform _gravityRendererCopyTransform;
|
2026-08-10 14:57:50 +01:00
|
|
|
|
private RenderTexture _fullscreenGravityTexture;
|
2020-12-02 21:12:25 +00:00
|
|
|
|
private AetheriaInput.UIActions _input;
|
|
|
|
|
|
private float _viewDistance = 1024;
|
|
|
|
|
|
private float _aspectRatio;
|
|
|
|
|
|
private Vector3 _previousGravityRendererScale;
|
|
|
|
|
|
|
|
|
|
|
|
void OnEnable()
|
|
|
|
|
|
{
|
|
|
|
|
|
_aspectRatio = (float) Screen.width / Screen.height;
|
|
|
|
|
|
Main.gameObject.SetActive(false);
|
|
|
|
|
|
_minimapTexture = Minimap.targetTexture;
|
|
|
|
|
|
_minimapTransform = Minimap.transform;
|
|
|
|
|
|
_minimapCopyTransform = Minimap.GetComponent<CopyTransform>();
|
|
|
|
|
|
_minimapCopyTransform.enabled = false;
|
|
|
|
|
|
_minimapGravityTexture = MinimapGravity.targetTexture;
|
|
|
|
|
|
_minimapGravityTransform = MinimapGravity.transform;
|
|
|
|
|
|
_minimapGravityCopyTransform = MinimapGravity.GetComponent<CopyTransform>();
|
|
|
|
|
|
_minimapGravityCopyTransform.enabled = false;
|
|
|
|
|
|
_gravityRendererTransform = GravityRenderer.transform;
|
|
|
|
|
|
_gravityRendererCopyTransform = GravityRenderer.GetComponent<CopyTransform>();
|
|
|
|
|
|
_gravityRendererCopyTransform.enabled = false;
|
|
|
|
|
|
_previousGravityRendererScale = _gravityRendererTransform.localScale;
|
|
|
|
|
|
|
2026-08-10 14:57:50 +01:00
|
|
|
|
_fullscreenGravityTexture = new RenderTexture(Screen.width / 2, Screen.height / 2, 1, RenderTextureFormat.RFloat);
|
|
|
|
|
|
GravityRenderer.material.mainTexture = _fullscreenGravityTexture;
|
|
|
|
|
|
MinimapGravity.targetTexture = _fullscreenGravityTexture;
|
2020-12-02 21:12:25 +00:00
|
|
|
|
Minimap.targetTexture = null;
|
|
|
|
|
|
SetZoom();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SetZoom()
|
|
|
|
|
|
{
|
2022-07-11 08:14:00 +01:00
|
|
|
|
//ZoneRenderer.ViewDistance = _viewDistance * _aspectRatio;
|
2020-12-02 21:12:25 +00:00
|
|
|
|
Minimap.orthographicSize = MinimapGravity.orthographicSize = _viewDistance;
|
|
|
|
|
|
_gravityRendererTransform.localScale = new Vector3(_viewDistance*_aspectRatio*2, _viewDistance*2, 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-07-11 08:14:00 +01:00
|
|
|
|
// public void BindInput(AetheriaInput.UIActions input)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// _input = input;
|
|
|
|
|
|
// _input.ScrollWheel.performed += OnScroll;
|
|
|
|
|
|
// }
|
2020-12-02 21:12:25 +00:00
|
|
|
|
|
2022-07-11 08:14:00 +01:00
|
|
|
|
// private void OnScroll(InputAction.CallbackContext context)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// _viewDistance *= (1 - context.ReadValue<Vector2>().y * ZoomSpeed);
|
|
|
|
|
|
// SetZoom();
|
|
|
|
|
|
// }
|
2020-12-02 21:12:25 +00:00
|
|
|
|
|
|
|
|
|
|
void Update()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_input.Click.ReadValue<float>() > .5f)
|
|
|
|
|
|
{
|
|
|
|
|
|
var delta = _input.Drag.ReadValue<Vector2>();
|
|
|
|
|
|
|
|
|
|
|
|
var pos = _minimapTransform.position;
|
|
|
|
|
|
pos.x -= delta.x * _viewDistance / Screen.height;
|
|
|
|
|
|
pos.z -= delta.y * _viewDistance / Screen.height;
|
|
|
|
|
|
|
|
|
|
|
|
var gravPos = _gravityRendererTransform.position;
|
|
|
|
|
|
gravPos.x = pos.x;
|
|
|
|
|
|
gravPos.z = pos.z;
|
|
|
|
|
|
|
|
|
|
|
|
_gravityRendererTransform.position = gravPos;
|
2020-12-10 23:20:38 +00:00
|
|
|
|
Main.transform.position = _minimapTransform.position = _minimapGravityTransform.position = pos;
|
2020-12-02 21:12:25 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnDisable()
|
|
|
|
|
|
{
|
2022-07-11 08:14:00 +01:00
|
|
|
|
// _input.ScrollWheel.performed -= OnScroll;
|
2020-12-02 21:12:25 +00:00
|
|
|
|
|
|
|
|
|
|
Main.gameObject.SetActive(true);
|
|
|
|
|
|
_minimapGravityCopyTransform.enabled = true;
|
|
|
|
|
|
_minimapCopyTransform.enabled = true;
|
|
|
|
|
|
_gravityRendererCopyTransform.enabled = true;
|
|
|
|
|
|
|
|
|
|
|
|
Minimap.targetTexture = _minimapTexture;
|
|
|
|
|
|
MinimapGravity.targetTexture = _minimapGravityTexture;
|
|
|
|
|
|
GravityRenderer.material.mainTexture = _minimapGravityTexture;
|
2026-08-10 14:57:50 +01:00
|
|
|
|
_fullscreenGravityTexture.Release();
|
2020-12-02 21:12:25 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|