public void RemoveIfBlockEntity(int relx, int rely, int relz, BlockType blockAtPos) { if (BlockEntityDictionary.Get(blockAtPos) == null) { return; } foreach (var entity in blockEntities) { if (entity.pos.x == relx && entity.pos.y == rely && entity.pos.z == relz) { blockEntities.Remove(entity); break; } } }
public void AddIfBlockEntity(int relx, int rely, int relz, BlockType type) { Type entityType = BlockEntityDictionary.Get(type); if (entityType == null) { return; } foreach (var e in blockEntities) { if (e.pos.x == relx && e.pos.y == rely && e.pos.z == relz) { return; } } BlockEntity entity = (BlockEntity)Activator.CreateInstance(entityType); entity.pos = new Vector3Int(relx, rely, relz); blockEntities.Add(entity); }