Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public BoardManager {
- LevelData levelData; //defined from editor, don't mutate
- BlockObject blockObjectMaster; //defined from editor, don't mutate
- List<BlockObject> blockList;
- List<EntityObject> entityList;
- int strokes = 0;
- void Start() {
- blockList = InitBlockList(levelData);
- }
- List<BlockObject> InitBlockList(LevelData _levelData) {
- //reads LevelData.blockStates and returns a list of BlockObjects
- List<BlockObject> blockList = new List<BlockObject>();
- for (key in _levelData.blockStates) {
- blockList.Add(CreateBlockObject(key, _levelData.blockStates[key]));
- }
- return blockList;
- }
- BlockObject CreateBlockObject(BlockData _blockData, BlockState _blockState) {
- //creates and instantiates a new blockObject
- BlockObject blockObject = Instantiate(blockObjectMaster,Util.GridToReal(_blockState.pos));
- blockObject.Init(_blockData, _blockState);
- return blockObject;
- }
- }
- //dont mutate this
- public LevelData {
- int par; //defined from existing data
- String name; //defined from existing data
- String creator; //defined from existing data
- Dict<BlockData, BlockState> blockStates; //defined from existing data
- Dict<EntityData, EntityState> entityStates; //defined from existing data
- }
- public BlockObject : MonoBehaviour {
- BlockData blockData;
- BlockState blockState;
- Init(BlockData _blockData, BlockState blockState) {
- blockData = _blockData;
- blockState = _blockState;
- //code to change shape based on blockData and blockState
- }
- //functions to actually set and move the block around in here
- }
- public BlockData : ScriptableObject {
- int width; //defined from existing data
- int height; //defined from existing data
- BlockType blockType; //misc data structure to determine the type of block
- public BlockData(int _width, int _height, BlockType _blockType) {
- width = _width;
- height = _height;
- blockType = _blockType;
- }
- Vector2Int GetSize() {
- return new Vector2Int(width,height);
- }
- }
- public BlockState {
- Vector2Int pos;
- BlockStateEnum state;
- public BlockState(int _x, int _y) {
- pos = new Vector2Int(_x, _y);
- state = BlockStateEnum.DEFAULT;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement