private void GatherChanges(MinecraftVersion minBlockVersionNumber, MinecraftVersion maxBlockVersionNumber, int suggestedMaxBlockRequests, MinecraftVersion minPlayerVersionNumber, MinecraftVersion maxPlayerVersionNumber, int suggestedMaxPlayerRequests, BlockMetaData[] blocks, PlayerMetaData[] players, ref BlockMetaData[] blocksResult, ref PlayerMetaData[] playerResult, out int nBlocks, out int nPlayers, out int nBlocksLeft, out int nPlayersLeft, out MinecraftVersion lastBlockUsedVersion, out MinecraftVersion lastPlayerUsedVersion) { nBlocks = 0; var blockRange = new BlockEnumerateRange(blocks); GetRangeInfo(blockRange, minBlockVersionNumber, maxBlockVersionNumber, suggestedMaxBlockRequests, out int firstIndex, out nBlocks, out nBlocksLeft, out lastBlockUsedVersion); if (nBlocks > 0) { blocksResult = new BlockMetaData[nBlocks]; Array.Copy(blocks, firstIndex, blocksResult, 0, nBlocks); } nPlayers = 0; var playerRange = new PlayersEnumerateRange(players); GetRangeInfo(playerRange, minPlayerVersionNumber, maxPlayerVersionNumber, suggestedMaxPlayerRequests, out firstIndex, out nPlayers, out nPlayersLeft, out lastPlayerUsedVersion); if (nPlayers > 0) { playerResult = new PlayerMetaData[nPlayers]; Array.Copy(players, firstIndex, playerResult, 0, nPlayers); } }
public async Task <GenericResponse> Remove(ActorId playerAgentID, BlockMetaData blockData) { var blocks = await this.StateManager.GetStateAsync <Dictionary <Position, BlockMetaData> >("blocks"); if (blocks.ContainsKey(blockData.position) == false) { return(new GenericResponse(false, "Not found")); } blocks.Remove(blockData.position); await this.StateManager.SetStateAsync("blocks", blocks); return(new GenericResponse()); }
public async Task <BlockMetaData[]> GetAsync() { var blocks = await this.StateManager.GetStateAsync <Dictionary <Position, BlockMetaData> >("blocks"); if (blocks.Count == 0) { return(null); } var resultBlocks = new BlockMetaData[blocks.Count]; blocks.Values.CopyTo(resultBlocks, 0); return(resultBlocks); }
public async Task <GenericResponse> Update(long playerAgentID, BlockMetaData blockData) { var blocks = await this.StateManager.GetStateAsync <Dictionary <Position, BlockMetaData> >("blocks"); blockData.version = MinecraftVersion.GetNext(); if (blocks.ContainsKey(blockData.position)) { blocks[blockData.position] = blockData; } else { blocks.Add(blockData.position, blockData); } await this.StateManager.SetStateAsync("blocks", blocks); return(new GenericResponse()); }
public Block(byte id, BlockMetaData metaData) { this.id = id; this.metaData = metaData; }
public void setBlockMetaAt ( Vector3 _position, BlockMetaData.RotationTypes _rot, BlockMetaData.SchraegenTypes _sType ) { if ( blockMetaData.ContainsKey ( _position ) ) { blockMetaData[ _position ].setMetaData ( _rot, _sType ); } else { blockMetaData.Add ( _position, new BlockMetaData () ); blockMetaData[ _position ].setMetaData ( _rot, _sType ); } }
public Block WithMetaData(BlockMetaData newMetaData) { return(new Block(id, newMetaData)); }
void setBlockData ( int _x, int _y, int _z, BlockMetaData.RotationTypes rot, BlockMetaData.SchraegenTypes sTyp ) { myChunk.setBlockMetaAt ( new Vector3 ( _x, _y, _z ), rot, sTyp ); }