public void Initialize(BlockInstanceManager instanceManager, TetrominoData data) { this.instanceManager = instanceManager; this.data = data; InitPositions(); InitBlocks(instanceManager); }
void InitBlocks(BlockInstanceManager instanceManager) { if (blocks == null || blocks.Length != data.BlockCount) { blocks = new Block[data.BlockCount]; } for (var i = 0; i < data.BlockCount; i++) { blocks[i] = instanceManager.StartUseBlock(); blocks[i].ChangeColor(data.Color); } }
// Start is called before the first frame update void Start() { instanceManager = GetComponent <BlockInstanceManager>(); if (toGenerate != null) { var origin = position == null ? Vector3.zero : position.position; for (var i = 0; i < toGenerate.Length; i++) { var pos = origin + offset * i; var tetromino = new Tetromino(instanceManager, toGenerate[i]); tetromino.MoveTetromino(pos); } } }
public Tetromino(BlockInstanceManager instanceManager, TetrominoData data) { Initialize(instanceManager, data); }