using System; using SUISSEngine; using UnityEngine; public class ReadOnlyWrapper : MonoBehaviour { public void WrapAround(GameObject original) { GridTile component = original.GetComponent(); if (component == null) { return; } SpriteRenderer spriteRenderer = component.spriteRenderer; SpriteRenderer bottomRenderer = component.bottomRenderer; this.CopyGridTile(component); this.CopySpriteRenderer(this.mainSprite, spriteRenderer); this.CopyAnimator(this.mainAnimator, original.GetComponent()); this.CopySpriteRenderer(this.bottomSprite, bottomRenderer); } private void CopyGridTile(GridTile oTile) { this.tile.gridSizeU = oTile.gridSizeU; this.tile.gridSizeV = oTile.gridSizeV; this.tile.canMirror = oTile.canMirror; this.tile.offset = oTile.offset; this.tile.orderOffset = oTile.orderOffset; this.tile.fixedOrder = oTile.fixedOrder; this.tile.requiredGridType = oTile.requiredGridType; this.tile.canHide = oTile.canHide; } private void CopySpriteRenderer(SpriteRenderer renderer, SpriteRenderer original) { if (original != null) { renderer.enabled = true; renderer.sprite = original.sprite; renderer.color = original.color; } else { renderer.sprite = null; renderer.color = Color.white; renderer.enabled = false; } } private void CopyAnimator(Animator animator, Animator original) { if (original != null) { animator.enabled = true; animator.runtimeAnimatorController = original.runtimeAnimatorController; animator.avatar = original.avatar; animator.applyRootMotion = original.applyRootMotion; animator.updateMode = original.updateMode; animator.cullingMode = original.cullingMode; } else { animator.runtimeAnimatorController = null; animator.avatar = null; animator.applyRootMotion = false; animator.updateMode = AnimatorUpdateMode.Normal; animator.cullingMode = AnimatorCullingMode.AlwaysAnimate; animator.enabled = false; } } public SpriteRenderer mainSprite; public SpriteRenderer bottomSprite; public Animator mainAnimator; public Animator bottomAnimator; public GridTile tile; public Material defaultSprite; }