SkyMasons: Smeaven
is the official name695130.nbt
:```
590432x Black Stained Glass Pane (341.7 shulker)
174447x Blue Stained Glass Pane (100 shulker)
124538x Purple Stained Glass Pane (72.1 shulker)
32478x Magenta Stained Glass (18.8 shulker)
12661x Light Blue Stained Glass (7.3 shulker)
6308x Pink Stained Glass (3.7 shulker)
5658x Gray Stained Glass Pane (3.3 shulker)
2461x Cyan Stained Glass Pane (1.4 shulker)
2355x Red Stained Glass Pane (1.4 shulker)
2298x White Stained Glass (1.3 shulker)
1024x Cobblestone (16.0 stacks)
404x Light Gray Stained Glass Pane (6.3 stacks)
6x Brown Stained Glass Pane
```
Sky_Masons_3.nbt
:```
276028x Black Concrete (159.7 shulker)
97700x Yellow Terracotta (56.5 shulker)
43151x White Concrete (24 shulker)
147x Cobblestone (2.3 stacks)
```
695130.nbt
:```
582688x Black Stained Glass Pane (337.2 shulker)
174447x Blue Stained Glass Pane (100 shulker)
121914x Purple Stained Glass Pane (70.6 shulker)
32478x Magenta Stained Glass (18.8 shulker)
12661x Light Blue Stained Glass (7.3 shulker)
6308x Pink Stained Glass (3.7 shulker)
5658x Gray Stained Glass Pane (3.3 shulker)
2461x Cyan Stained Glass Pane (1.4 shulker)
2355x Red Stained Glass Pane (1.4 shulker)
2298x White Stained Glass (1.3 shulker)
1024x Cobblestone (16.0 stacks)
404x Light Gray Stained Glass Pane (6.3 stacks)
6x Brown Stained Glass Pane
```
Sky_Masons_3.nbt
:```
274925x Black Concrete (159.1 shulker)
97700x Yellow Terracotta (56.5 shulker)
43151x White Concrete (24 shulker)
147x Cobblestone (2.3 stacks)
```
695130.nbt
:```
580411x Black Stained Glass Pane (335.9 shulker)
174447x Blue Stained Glass Pane (100 shulker)
121850x Purple Stained Glass Pane (70.5 shulker)
32478x Magenta Stained Glass (18.8 shulker)
12661x Light Blue Stained Glass (7.3 shulker)
6308x Pink Stained Glass (3.7 shulker)
5658x Gray Stained Glass Pane (3.3 shulker)
2461x Cyan Stained Glass Pane (1.4 shulker)
2355x Red Stained Glass Pane (1.4 shulker)
2298x White Stained Glass (1.3 shulker)
1024x Cobblestone (16.0 stacks)
404x Light Gray Stained Glass Pane (6.3 stacks)
6x Brown Stained Glass Pane
```
Sky_Masons_3.nbt
:```
270451x Black Concrete (156.5 shulker)
90467x Yellow Terracotta (52.4 shulker)
42737x White Concrete (24.7 shulker)
147x Cobblestone (2.3 stacks)
```
Sky_Masons_3.nbt
:```
270451x Black Concrete (156.5 shulker)
90467x Yellow Terracotta (52.4 shulker)
42737x White Concrete (24.7 shulker)
147x Cobblestone (2.3 stacks)
```
builder.append("\n").append("changes in ").append(duration.toHours()).append(" h: \n");//.append(duration.toMinutes() % 60).append(" min: \n");
builder.append("done change: ").append(this.data.getDone() - done).append(" / ").append(total).append(" => ").append(String.format("%.2f", 100.0 * (this.data.getDone() - done) / total)).append(" % of total").append(" %\n");
builder.append("wrong change: ").append(wrong - oldWrong).append(" / ").append(wrong).append(" => ").append(String.format("%.2f", 100.0 * (wrong - oldWrong) / total)).append(" %\n");
builder.append("approximated wrong change: ").append(approxWrong - oldApproxWrong).append(" (").append(String.format("%.2f", 100.0 * (oldApproxWrong - approxWrong) / oldApproxWrong)).append(" % fixed)\n");
DitherFloyd.nbt
:```
4999x Black Concrete (2.9 shulker)
3301x White Concrete (1.9 shulker)
1557x Block of Redstone (24.3 stacks)
926x Gray Terracotta (14.5 stacks)
531x Red Concrete (8.3 stacks)
451x Gray Concrete (7.0 stacks)
390x Orange Concrete (6.1 stacks)
383x Pink Concrete (6.0 stacks)
353x Black Terracotta (5.5 stacks)
345x Netherrack (5.4 stacks)
306x Cyan Terracotta (4.8 stacks)
284x Cyan Concrete (4.4 stacks)
279x Blue Terracotta (4.4 stacks)
246x Clay (3.8 stacks)
238x Stone (3.7 stacks)
196x Sandstone (3.1 stacks)
195x White Terracotta (3.0 stacks)
169x Block of Quartz (2.6 stacks)
145x Orange Terracotta (2.3 stacks)
132x Brown Terracotta (2.1 stacks)
127x Block of Gold (2.0 stacks)
125x Light Gray Concrete (2.0 stacks)
97x Block of Diamond (1.5 stacks)
83x Yellow Terracotta (1.3 stacks)
67x Red Terracotta (1.0 stacks)
62x Green Terracotta
51x Dirt
49x Block of Iron
48x Crafting Table
41x Light Blue Terracotta
35x Brown Concrete
35x Lime Terracotta
28x Light Blue Concrete
21x Dirt
17x Block of Emerald
16x Purple Terracotta
14x Yellow Concrete
12x Light Gray Terracotta
9x Packed Ice
8x Blue Concrete
7x Green Concrete
3x Grass Block
2x Pink Terracotta
1x Lime Concrete
1x Magenta Terracotta
```
DitherFloyd.nbt
:```
2064x Black Concrete (1.2 shulker)
1944x White Concrete (1.1 shulker)
830x Block of Redstone (13.0 stacks)
475x Red Concrete (7.4 stacks)
426x Gray Terracotta (6.7 stacks)
228x Gray Concrete (3.6 stacks)
193x Clay (3.0 stacks)
182x Cyan Concrete (2.8 stacks)
165x Netherrack (2.6 stacks)
152x Black Terracotta (2.4 stacks)
127x Pink Concrete (2.0 stacks)
126x Cyan Terracotta (2.0 stacks)
120x Orange Concrete (1.9 stacks)
118x Orange Terracotta (1.8 stacks)
88x Block of Gold (1.4 stacks)
88x Blue Terracotta (1.4 stacks)
64x Brown Terracotta (1 stack)
63x Light Gray Concrete
61x Block of Diamond
52x Stone
44x White Terracotta
38x Yellow Terracotta
35x Light Blue Concrete
31x Block of Quartz
29x Sandstone
26x Red Terracotta
25x Dirt
25x Green Terracotta
21x Light Blue Terracotta
17x Block of Emerald
15x Brown Concrete
15x Lime Terracotta
14x Yellow Concrete
12x Block of Iron
12x Dirt
12x Purple Terracotta
10x Crafting Table
9x Packed Ice
5x Green Concrete
4x Blue Concrete
2x Grass Block
2x Pink Terracotta
2x Light Gray Terracotta
1x Lime Concrete
```
builder.append("\n").append("changes in ").append(duration.toHours()).append(" h: \n");//.append(duration.toMinutes() % 60).append(" min: \n");
builder.append("done change: ").append(this.data.getDone() - done).append(" / ").append(total).append(" => ").append(String.format("%.2f", 100.0 * (this.data.getDone() - done) / total)).append(" % of total").append(" %\n");
builder.append("wrong change: ").append(wrong - oldWrong).append(" / ").append(wrong).append(" => ").append(String.format("%.2f", 100.0 * (wrong - oldWrong) / total)).append(" %\n");
builder.append("approximated wrong change: ").append(approxWrong - oldApproxWrong).append(" (").append(String.format("%.2f", 100.0 * (oldApproxWrong - approxWrong) / oldApproxWrong)).append(" % fixed)\n");
DitherFloyd.nbt
:```
15840x Black Concrete (9.2 shulker)
625x Sandstone (9.8 stacks)
468x Block of Quartz (7.3 stacks)
374x White Concrete (5.8 stacks)
341x Grass Block (5.3 stacks)
311x Orange Concrete (4.9 stacks)
250x Green Concrete (3.9 stacks)
198x Yellow Concrete (3.1 stacks)
183x Dirt (2.9 stacks)
177x Brown Concrete (2.8 stacks)
174x Brown Terracotta (2.7 stacks)
142x Orange Terracotta (2.2 stacks)
106x Black Terracotta (1.7 stacks)
103x Pink Concrete (1.6 stacks)
96x Block of Gold (1.5 stacks)
90x White Terracotta (1.4 stacks)
86x Red Terracotta (1.3 stacks)
73x Block of Diamond (1.1 stacks)
70x Lime Terracotta (1.1 stacks)
64x Light Gray Concrete (1 stack)
50x Yellow Terracotta
48x Netherrack
37x Cyan Concrete
36x Gray Terracotta
34x Green Terracotta
32x Gray Concrete
18x Lime Concrete
18x Block of Emerald
15x Crafting Table
15x Blue Concrete
13x Blue Terracotta
7x Cyan Terracotta
6x Block of Iron
3x Packed Ice
3x Dirt
3x Light Blue Concrete
3x Lapis Lazuli Block
3x Pink Terracotta
2x Clay
1x Stone
1x Magenta Concrete
1x Light Gray Terracotta
1x Purple Terracotta
```
DitherBayer.nbt
:```
49397x Black Concrete (28.6 shulker)
2047x Orange Concrete (1.2 shulker)
1911x White Concrete (1.1 shulker)
1775x Brown Terracotta (1 shulker)
953x Gray Terracotta (14.9 stacks)
930x Block of Diamond (14.5 stacks)
759x Sandstone (11.9 stacks)
707x Block of Gold (11.0 stacks)
679x Green Terracotta (10.6 stacks)
662x Green Concrete (10.3 stacks)
547x Black Terracotta (8.5 stacks)
546x Block of Quartz (8.5 stacks)
485x White Terracotta (7.6 stacks)
471x Grass Block (7.4 stacks)
457x Block of Emerald (7.1 stacks)
421x Gray Concrete (6.6 stacks)
420x Light Gray Concrete (6.6 stacks)
401x Red Terracotta (6.3 stacks)
393x Yellow Concrete (6.1 stacks)
315x Blue Terracotta (4.9 stacks)
289x Dirt (4.5 stacks)
243x Red Concrete (3.8 stacks)
228x Lime Concrete (3.6 stacks)
224x Light Gray Terracotta (3.5 stacks)
217x Brown Concrete (3.4 stacks)
173x Crafting Table (2.7 stacks)
165x Netherrack (2.6 stacks)
158x Cyan Terracotta (2.5 stacks)
148x Lime Terracotta (2.3 stacks)
108x Blue Concrete (1.7 stacks)
88x Block of Iron (1.4 stacks)
70x Light Blue Concrete (1.1 stacks)
64x Yellow Terracotta (1 stack)
56x Stone
43x Packed Ice
37x Magenta Concrete
36x Clay
28x Pink Concrete
25x Purple Terracotta
21x Light Blue Terracotta
15x Dirt
12x Lapis Lazuli Block
11x Pink Terracotta
9x Block of Redstone
8x Cyan Concrete
2x Purple Concrete
```
Sky_Masons_3.nbt
:```
269294x Black Concrete (155.8 shulker)
88994x Yellow Terracotta (51.5 shulker)
42353x White Concrete (24.5 shulker)
60x Cobblestone
```
Sky_Masons_3.nbt
:```
269294x Black Concrete (155.8 shulker)
88994x Yellow Terracotta (51.5 shulker)
42353x White Concrete (24.5 shulker)
60x Cobblestone
```
695130.nbt
:```
580347x Black Stained Glass Pane (335.8 shulker)
172095x Blue Stained Glass Pane (99.6 shulker)
120629x Purple Stained Glass Pane (69.8 shulker)
32355x Magenta Stained Glass (18.7 shulker)
12568x Light Blue Stained Glass (7.3 shulker)
6184x Pink Stained Glass (3.6 shulker)
5626x Gray Stained Glass Pane (3.3 shulker)
2454x Cyan Stained Glass Pane (1.4 shulker)
2355x Red Stained Glass Pane (1.4 shulker)
2280x White Stained Glass (1.3 shulker)
1024x Cobblestone (16.0 stacks)
385x Light Gray Stained Glass Pane (6.0 stacks)
6x Brown Stained Glass Pane
```
695130.nbt
:```
580347x Black Stained Glass Pane (335.8 shulker)
172095x Blue Stained Glass Pane (99.6 shulker)
120629x Purple Stained Glass Pane (69.8 shulker)
32355x Magenta Stained Glass (18.7 shulker)
12568x Light Blue Stained Glass (7.3 shulker)
6184x Pink Stained Glass (3.6 shulker)
5626x Gray Stained Glass Pane (3.3 shulker)
2454x Cyan Stained Glass Pane (1.4 shulker)
2355x Red Stained Glass Pane (1.4 shulker)
2280x White Stained Glass (1.3 shulker)
1024x Cobblestone (16.0 stacks)
385x Light Gray Stained Glass Pane (6.0 stacks)
6x Brown Stained Glass Pane
```
Sky_Masons_3.nbt
:```
269701x Black Concrete (156.1 shulker)
82139x Yellow Terracotta (47.5 shulker)
42396x White Concrete (24.5 shulker)
52x Cobblestone
```
if not currently in game { skip this }
skymasonMapArt.nbt
:```
255996x Black Concrete (148.1 shulker)
81130x Yellow Terracotta (46 shulker)
6098x White Concrete (3.5 shulker)
1440x Brown Terracotta (22.5 stacks)
1132x Gray Terracotta (17.7 stacks)
1036x Gray Concrete (16.2 stacks)
884x White Terracotta (13.8 stacks)
813x Block of Quartz (12.7 stacks)
734x Block of Diamond (11.5 stacks)
704x Sandstone (11.0 stacks)
675x Orange Concrete (10.5 stacks)
634x Red Concrete (9.9 stacks)
596x Block of Redstone (9.3 stacks)
590x Dirt (9.2 stacks)
552x Netherrack (8.6 stacks)
547x Grass Block (8.5 stacks)
496x Cyan Terracotta (7.8 stacks)
495x Black Terracotta (7.7 stacks)
482x Green Terracotta (7.5 stacks)
476x Light Gray Concrete (7.4 stacks)
434x Block of Gold (6.8 stacks)
424x Stone (6.6 stacks)
323x Clay (5.0 stacks)
267x Brown Concrete (4.2 stacks)
266x Yellow Concrete (4.2 stacks)
234x Cyan Concrete (3.7 stacks)
172x Orange Terracotta (2.7 stacks)
171x Crafting Table (2.7 stacks)
148x Blue Terracotta (2.3 stacks)
139x Green Concrete (2.2 stacks)
133x Lime Concrete (2.1 stacks)
105x Red Terracotta (1.6 stacks)
82x Light Gray Terracotta (1.3 stacks)
81x Packed Ice (1.3 stacks)
63x Magenta Concrete
60x Dirt
57x Purple Terracotta
48x Light Blue Concrete
42x Pink Concrete
32x Pink Terracotta
27x Block of Iron
20x Magenta Terracotta
17x Block of Emerald
4x Purple Concrete
4x Lapis Lazuli Block
3x Lime Terracotta
```
skymasonMapArt.nbt
:```
3326x White Concrete (1.9 shulker)
1380x Black Concrete (21.6 stacks)
529x Grass Block (8.3 stacks)
313x Block of Redstone (4.9 stacks)
302x Dirt (4.7 stacks)
259x Brown Terracotta (4.0 stacks)
236x Stone (3.7 stacks)
217x Gray Concrete (3.4 stacks)
171x Crafting Table (2.7 stacks)
56x Sandstone
42x Dirt
21x Light Gray Concrete
18x Packed Ice
17x Clay
4x Lapis Lazuli Block
```
skymasonMapArt.nbt
:```
3326x White Concrete (1.9 shulker)
1380x Black Concrete (21.6 stacks)
529x Grass Block (8.3 stacks)
313x Block of Redstone (4.9 stacks)
302x Dirt (4.7 stacks)
259x Brown Terracotta (4.0 stacks)
236x Stone (3.7 stacks)
217x Gray Concrete (3.4 stacks)
171x Crafting Table (2.7 stacks)
56x Sandstone
42x Dirt
21x Light Gray Concrete
18x Packed Ice
17x Clay
4x Lapis Lazuli Block
```
skymasonMapArt.nbt
:```
204280x Black Concrete (118.2 shulker)
68931x Yellow Terracotta (39.9 shulker)
5410x White Concrete (3.1 shulker)
1303x Brown Terracotta (20.4 stacks)
1213x Stone (19.0 stacks)
823x Gray Terracotta (12.9 stacks)
730x Gray Concrete (11.4 stacks)
701x Block of Quartz (11.0 stacks)
695x Sandstone (10.9 stacks)
590x Dirt (9.2 stacks)
529x Grass Block (8.3 stacks)
446x Cyan Concrete (7.0 stacks)
441x Orange Concrete (6.9 stacks)
406x White Terracotta (6.3 stacks)
403x Block of Redstone (6.3 stacks)
342x Block of Gold (5.3 stacks)
323x Clay (5.0 stacks)
288x Block of Diamond (4.5 stacks)
252x Netherrack (3.9 stacks)
225x Cyan Terracotta (3.5 stacks)
200x Black Terracotta (3.1 stacks)
180x Brown Concrete (2.8 stacks)
171x Crafting Table (2.7 stacks)
162x Orange Terracotta (2.5 stacks)
147x Light Gray Concrete (2.3 stacks)
90x Red Terracotta (1.4 stacks)
81x Packed Ice (1.3 stacks)
63x Magenta Concrete
60x Dirt
54x Light Blue Concrete
54x Pink Concrete
18x Block of Iron
18x Red Concrete
18x Green Terracotta
4x Lapis Lazuli Block
```
#buildonlyselection
#sel pos1
and #sel pos2
#withdraw
i care about your base and i don’t want it griefed, i’m sorry. my frustration is that it seems there’s a lot of toes to step on
i care about your base and i don’t want it griefed, i’m sorry. my frustration is that it seems there’s a lot of toes to step on
liejurv
USERNAME.proxy.*
) it won't do anything new (except, you will have a new command /remap
just for testing or fun purposes. don't leak tho, because that would leak that we have a remapper)
if you join USERNAME.skysecure.proxy.*
however, it will only let you connect if that kitten is at skymasons. this will be annoying (e.g. it won't let you in if the account is in 2b queue, or at a nearby map art, or at the pearls), but it will be secure. sky will be remapped to the fake coords location (which will be about 10 million, 21.47 million). for now, the walls are blanked out and the bedrock below the floor is too. eventually that will be fixed to vanilla terrain gen at the new location (edited)[babbaj@nixos:~/HeadlessMinecraft/plugins/Proxy]$ git status
On branch master
Your branch is up to date with 'origin/master'.
.skysecure
from the server) and if it really is at sky then that is a bugUSERNAME.proxy.*
) it won't do anything new (except, you will have a new command /remap
just for testing or fun purposes. don't leak tho, because that would leak that we have a remapper)
if you join USERNAME.skysecure.proxy.*
however, it will only let you connect if that kitten is at skymasons. this will be annoying (e.g. it won't let you in if the account is in 2b queue, or at a nearby map art, or at the pearls), but it will be secure. sky will be remapped to the fake coords location (which will be about 10 million, 21.47 million). for now, the walls are blanked out and the bedrock below the floor is too. eventually that will be fixed to vanilla terrain gen at the new location (edited)USERNAME.proxy.*
) it won't do anything new (except, you will have a new command /remap
just for testing or fun purposes. don't leak tho, because that would leak that we have a remapper)
if you join USERNAME.skysecure.proxy.*
however, it will only let you connect if that kitten is at skymasons. this will be annoying (e.g. it won't let you in if the account is in 2b queue, or at a nearby map art, or at the pearls), but it will be secure. sky will be remapped to the fake coords location (which will be about 10 million, 21.47 million). for now, the walls are blanked out and the bedrock below the floor is too. eventually that will be fixed to vanilla terrain gen at the new location (edited)#chestdistsq 1000
for example private static void mutateBedrock(final ExtendedBlockStorage[] blockStorages, final int cx, final int cz) {
final ExtendedBlockStorage blockStorage = blockStorages[0];
if (blockStorage != Chunk.NULL_BLOCK_STORAGE) {
short[] data = SkyFloorCache.CACHE.get(new ChunkPos(cx, cz));
int i = 0;
boolean[][] specialCaseForLampsBuild = new boolean[16][16];
boolean inLampsArea = cz >= SkySecure.MIN_REMAPPED_CHUNK_Z + 30 && cz <= SkySecure.MIN_REMAPPED_CHUNK_Z + 33 && cx >= SkySecure.MIN_REMAPPED_CHUNK_X + 30 && cx <= SkySecure.MIN_REMAPPED_CHUNK_X + 33;
if (inLampsArea) {
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
if (blockStorage.get(x, 11, z).getBlock() instanceof BlockSeaLantern && blockStorage.get(x, 10, z).getBlock() == Blocks.CONCRETE) {
specialCaseForLampsBuild[x][z] = true;
}
}
}
}
for (int y = 0; y < 11; y++) {
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
Block current = blockStorage.get(x, y, z).getBlock();
if (specialCaseForLampsBuild[x][z]) {
if (!(current instanceof BlockSeaLantern)) {
IBlockState desired = Block.BLOCK_STATE_IDS.getByValue(data[i]);
blockStorage.set(x, y, z, desired.getBlock() == Blocks.BEDROCK ? desired : blockStorage.get(x, 10, z));
}
} else {
if (!(current instanceof BlockAir && inLampsArea)) {
blockStorage.set(x, y, z, Block.BLOCK_STATE_IDS.getByValue(data[i]));
}
}
i++;
}
}
}
}
}
(edited) private static void mutateBedrock(final ExtendedBlockStorage[] blockStorages, final int cx, final int cz) {
final ExtendedBlockStorage blockStorage = blockStorages[0];
if (blockStorage != Chunk.NULL_BLOCK_STORAGE) {
short[] data = SkyFloorCache.CACHE.get(new ChunkPos(cx, cz));
int i = 0;
boolean[][] specialCaseForLampsBuild = new boolean[16][16];
boolean inLampsArea = cz >= SkySecure.MIN_REMAPPED_CHUNK_Z + 30 && cz <= SkySecure.MIN_REMAPPED_CHUNK_Z + 33 && cx >= SkySecure.MIN_REMAPPED_CHUNK_X + 30 && cx <= SkySecure.MIN_REMAPPED_CHUNK_X + 33;
if (inLampsArea) {
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
if (blockStorage.get(x, 11, z).getBlock() instanceof BlockSeaLantern && blockStorage.get(x, 10, z).getBlock() == Blocks.CONCRETE) {
specialCaseForLampsBuild[x][z] = true;
}
}
}
}
for (int y = 0; y < 11; y++) {
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
Block current = blockStorage.get(x, y, z).getBlock();
if (specialCaseForLampsBuild[x][z]) {
if (!(current instanceof BlockSeaLantern)) {
IBlockState desired = Block.BLOCK_STATE_IDS.getByValue(data[i]);
blockStorage.set(x, y, z, desired.getBlock() == Blocks.BEDROCK ? desired : blockStorage.get(x, 10, z));
}
} else {
if (!(current instanceof BlockAir && inLampsArea)) {
blockStorage.set(x, y, z, Block.BLOCK_STATE_IDS.getByValue(data[i]));
}
}
i++;
}
}
}
}
}
(edited)--- a/src/main/java/net/futureclient/proxy/network/remap/ChunkDataUtils.java
+++ b/src/main/java/net/futureclient/proxy/network/remap/ChunkDataUtils.java
@@ -17,7 +17,6 @@ import net.futureclient.proxy.permission.SkySecure;
import net.minecraft.block.Block;
import net.minecraft.block.BlockAir;
import net.minecraft.block.BlockSeaLantern;
-import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.server.SPacketChunkData;
@@ -117,8 +116,7 @@ public final class ChunkDataUtils {
Block current = blockStorage.get(x, y, z).getBlock();
if (specialCaseForLampsBuild[x][z]) {
if (!(current instanceof BlockSeaLantern)) {
- IBlockState desired = Block.BLOCK_STATE_IDS.getByValue(data[i]);
- blockStorage.set(x, y, z, desired.getBlock() == Blocks.BEDROCK ? desired : blockStorage.get(x, 10, z));
+ blockStorage.set(x, y, z, blockStorage.get(x, 10, z));
}
} else {
if (!(current instanceof BlockAir && inLampsArea)) {
--- a/src/main/java/net/futureclient/proxy/network/remap/ChunkDataUtils.java
+++ b/src/main/java/net/futureclient/proxy/network/remap/ChunkDataUtils.java
@@ -17,7 +17,6 @@ import net.futureclient.proxy.permission.SkySecure;
import net.minecraft.block.Block;
import net.minecraft.block.BlockAir;
import net.minecraft.block.BlockSeaLantern;
-import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.server.SPacketChunkData;
@@ -117,8 +116,7 @@ public final class ChunkDataUtils {
Block current = blockStorage.get(x, y, z).getBlock();
if (specialCaseForLampsBuild[x][z]) {
if (!(current instanceof BlockSeaLantern)) {
- IBlockState desired = Block.BLOCK_STATE_IDS.getByValue(data[i]);
- blockStorage.set(x, y, z, desired.getBlock() == Blocks.BEDROCK ? desired : blockStorage.get(x, 10, z));
+ blockStorage.set(x, y, z, blockStorage.get(x, 10, z));
}
} else {
if (!(current instanceof BlockAir && inLampsArea)) {
private static void mutateBedrock(final ExtendedBlockStorage[] blockStorages, final int cx, final int cz) {
final ExtendedBlockStorage blockStorage = blockStorages[0];
if (blockStorage != Chunk.NULL_BLOCK_STORAGE) {
short[] data = SkyFloorCache.CACHE.get(new ChunkPos(cx, cz));
int i = 0;
boolean[][] specialCaseForLampsBuild = new boolean[16][16];
boolean inLampsArea = cz >= SkySecure.MIN_REMAPPED_CHUNK_Z + 30 && cz <= SkySecure.MIN_REMAPPED_CHUNK_Z + 33 && cx >= SkySecure.MIN_REMAPPED_CHUNK_X + 30 && cx <= SkySecure.MIN_REMAPPED_CHUNK_X + 33;
if (inLampsArea) {
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
if (blockStorage.get(x, 11, z).getBlock() instanceof BlockSeaLantern && blockStorage.get(x, 10, z).getBlock() == Blocks.CONCRETE) {
specialCaseForLampsBuild[x][z] = true;
}
}
}
}
for (int y = 0; y < 11; y++) {
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
if (specialCaseForLampsBuild[x][z]) {
blockStorage.set(x, y, z, blockStorage.get(x, 10, z));
} else {
if (!(inLampsArea && blockStorage.get(x, y, z).getBlock() instanceof BlockAir)) {
blockStorage.set(x, y, z, Block.BLOCK_STATE_IDS.getByValue(data[i]));
blockStorage.setBlockLight(x, y, z, 0);
blockStorage.setSkyLight(x, y, z, 0);
}
}
i++;
}
}
}
}
}
private static void mutateBedrock(final ExtendedBlockStorage[] blockStorages, final int cx, final int cz) {
final ExtendedBlockStorage blockStorage = blockStorages[0];
if (blockStorage != Chunk.NULL_BLOCK_STORAGE) {
short[] data = SkyFloorCache.CACHE.get(new ChunkPos(cx, cz));
int i = 0;
boolean[][] specialCaseForLampsBuild = new boolean[16][16];
boolean inLampsArea = cz >= SkySecure.MIN_REMAPPED_CHUNK_Z + 30 && cz <= SkySecure.MIN_REMAPPED_CHUNK_Z + 33 && cx >= SkySecure.MIN_REMAPPED_CHUNK_X + 30 && cx <= SkySecure.MIN_REMAPPED_CHUNK_X + 33;
if (inLampsArea) {
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
if (blockStorage.get(x, 11, z).getBlock() instanceof BlockSeaLantern && blockStorage.get(x, 10, z).getBlock() == Blocks.CONCRETE) {
specialCaseForLampsBuild[x][z] = true;
}
}
}
}
for (int y = 0; y < 11; y++) {
for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) {
if (specialCaseForLampsBuild[x][z]) {
blockStorage.set(x, y, z, blockStorage.get(x, 10, z));
} else {
if (!(inLampsArea && blockStorage.get(x, y, z).getBlock() instanceof BlockAir)) {
blockStorage.set(x, y, z, Block.BLOCK_STATE_IDS.getByValue(data[i]));
blockStorage.setBlockLight(x, y, z, 0);
blockStorage.setSkyLight(x, y, z, 0);
}
}
i++;
}
}
}
}
}
ConcurrentHashMap<ChunkPos, SPacketChunkData>
ConcurrentHashMap<ChunkPos, SPacketChunkData>
/toggleroof
to break the glass ceiling