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.
 
 
 
 
 
 

52 lines
1.5 KiB

using System.Collections;
using UnityEngine;
[CreateAssetMenu(menuName = "Major Project/Pick Ups/Replace Block")]
[System.Serializable]
public class Replace : LogicBlock
{
public GameObject blockPrefab;
public override Block GetEndBlock(Block startBlock, Transform transform, LayerMask layerMask)
{
return startBlock;
}
protected override IEnumerator BlockLogic(Character player, float animationTime, bool useBlockDirection = false)
{
Block oldBlock = player.CurrentBlock;
Transform parent = oldBlock.transform.parent;
Vector3 position = oldBlock.position;
Block newBlock = Instantiate(blockPrefab, parent).GetComponent<Block>();
newBlock.transform.position = position;
yield return player.StartCoroutine(player.MoveToBlock(newBlock, Character.Animation.None, 0.0f));
Destroy(oldBlock);
}
public override void CopyToken(BlockToken token)
{
base.CopyToken(token);
blockPrefab= Resources.Load<GameObject>(((ReplaceToken)token).prefabName);
}
public override BlockToken ToToken(BlockToken token = null)
{
if (token == null)
token = new ReplaceToken(this);
Debug.Log(base.ToToken(token).GetType().Name);
ReplaceToken retVal = (ReplaceToken)base.ToToken(token);
retVal.prefabName = blockPrefab.name;
return retVal;
}
}
[System.Serializable]
public class ReplaceToken : BlockToken
{
public string prefabName;
public ReplaceToken(LogicBlock block) : base(block) { }
}