public void previewRoom(Player player, int[] boundChuncks, RoomReference reference, boolean remove) {
		int boundX = reference.x * 8;
		int boundY = reference.y * 8;
		Region region = World.getRegion(RegionBuilder.getRegionHash(reference.room.chunkX/8, reference.room.chunkY/8));
		int boundX2 = (reference.room.chunkX - (reference.room.chunkX / 8 * 8)) * 8;
		int boundY2 = (reference.room.chunkY - (reference.room.chunkY / 8 * 8)) * 8;
		DynamicRegion house = (DynamicRegion) World.getRegion(RegionBuilder.getRegionHash(boundChuncks[0]/8, boundChuncks[1]/8));
		house.getRegionCoords()[reference.plane][reference.x][reference.y][3] = reference.rotation;
		for(int x = 0; x < 8; x++) {
			for(int y = 0; y < 8; y++) {
				WorldObject[] objects = region.getObjects(reference.plane, boundX2+x, boundY2+y);
				if(objects != null) {
					for(WorldObject object : objects) {
						if(object.getDefinitions().containsOption(4, "Build")) {
							int x2 = x;
							int y2 = y;
							for (int rotate = 0; rotate < reference.rotation; rotate++) {
								int fakeChunckX = x2;
								int fakeChunckY = y2;
								x2 = fakeChunckY;
								y2 = 7 - fakeChunckX;
							}
							object = new WorldObject(object.getId(), object.getType(), (object.getRotation() + reference.rotation) % 4, boundX + x2 + boundChuncks[0]*8, boundY + y2 + boundChuncks[1]*8, reference.plane);
							if(remove)
								player.getPackets().sendDestroyObject(object);
							else
								player.getPackets().sendSpawnedObject(object);
						}
					}
				}
			}
		}
	}