EnvironmentColumn class
Пакет: com.hypixel.hytale.server.core.universe.world.chunk.environment
Файл: com/hypixel/hytale/server/core/universe/world/chunk/environment/EnvironmentColumn.java
Поля (34)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
MIN |
|
int |
var1 |
|
int |
var2 |
|
int |
var2 |
|
int |
var2 |
|
EnvironmentColumn |
var2 |
|
int |
var3 |
|
|
var3 |
|
int |
var3 |
|
int |
var3 |
|
|
var3 |
|
int |
var3 |
|
int |
var3 |
|
int |
var3 |
|
int |
var4 |
|
|
var4 |
|
int |
var4 |
|
int |
var4 |
|
|
var4 |
|
int |
var4 |
|
int |
var4 |
|
int |
var4 |
|
int |
var5 |
|
|
var5 |
|
int |
var5 |
|
int |
var5 |
|
|
var5 |
|
int |
var5 |
|
int |
var6 |
|
int |
var6 |
|
|
var6 |
|
int |
var7 |
|
|
var7 |
|
int |
var7 |
Методы (32)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalStateExceptionthrow new IllegalStateException("maxY + 1 != values") |
public |
void |
copyFromvoid copyFrom(@Nonnull EnvironmentColumn var1) |
public |
int |
deserializeint deserialize(@Nonnull MemorySegment var1, int var2, @Nonnull Int2IntMap var3) |
|
|
for for(int var4 = var1; var4 <= var2; var4++) |
|
|
for for(int var6 = 0; var6 < var4; var6++) |
|
|
for for(int var6 = 0; var6 <= var5; var6++) |
public |
int |
getint get(int var1) |
public |
int |
getMaxint getMax(int var1) |
public |
int |
getMinint getMin(int var1) |
public |
int |
getValueint getValue(int var1) |
public |
int |
getValueMaxint getValueMax(int var1) |
public |
int |
getValueMinint getValueMin(int var1) |
|
|
if if(var2 == 0) |
|
|
if if(var4 != var2) |
|
|
if if(var3 < var5) |
|
|
if if(var3 > 0) |
|
|
if if(var7 == var6) |
|
|
if if(var3 == var5) |
|
|
if if(var2 > 0) |
|
|
if if(var2 < var3) |
|
|
if if(this == var1) |
public |
int |
indexOfint indexOf(int var1) |
|
int |
maxys_sizeint maxys_size() |
public |
void |
resetTovoid resetTo(@Nonnull int[] var1, @Nonnull int[] var2) |
public |
int |
serializeint serialize(@Nonnull MemorySegment var1, int var2) |
public |
int |
serializeProtocolint serializeProtocol(@Nonnull MemorySegment var1, int var2) |
public |
void |
setvoid set(int var1) |
public |
void |
setvoid set(int var1, int var2) |
public |
void |
setvoid set(int var1, int var2, int var3) |
public |
int |
sizeint size() |
public |
void |
trimvoid trim() |
|
|
while while(var3 <= var4) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.chunk.environment;
class="kw">import com.hypixel.hytale.server.core.util.io.MemorySegmentUtil;
class="kw">import it.unimi.dsi.fastutil.ints.Int2IntMap;
class="kw">import it.unimi.dsi.fastutil.ints.IntArrayList;
class="kw">import java.lang.foreign.MemorySegment;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class EnvironmentColumn {
class="kw">public class="kw">static class="kw">final int MIN = Integer.MIN_VALUE;
class="kw">public class="kw">static class="kw">final int MAX = Integer.MAX_VALUE;
@Nonnull
class="kw">private IntArrayList maxYs;
@Nonnull
class="kw">private IntArrayList values;
class="kw">public EnvironmentColumn(@Nonnull int[] var1, @Nonnull int[] var2) {
this(new IntArrayList(var1), new IntArrayList(var2));
}
class="kw">public EnvironmentColumn(@Nonnull IntArrayList var1, @Nonnull IntArrayList var2) {
if (var1.size() + 1 != var2.size()) {
throw new IllegalStateException("maxY + 1 != values");
}
this.maxYs = var1;
this.values = var2;
}
class="kw">public EnvironmentColumn(int var1) {
this(new IntArrayList(0), new IntArrayList(new int[]{var1}));
}
int maxys_size() {
class="kw">return this.maxYs.size();
}
class="kw">public int size() {
class="kw">return this.values.size();
}
class="kw">public int getValue(int var1) {
class="kw">return this.values.getInt(var1);
}
class="kw">public int getValueMin(int var1) {
class="kw">return var1 <= 0 ? Integer.MIN_VALUE : this.maxYs.getInt(var1 - 1) + 1;
}
class="kw">public int getValueMax(int var1) {
class="kw">return var1 >= this.maxYs.size() ? Integer.MAX_VALUE : this.maxYs.getInt(var1);
}
class="kw">public int indexOf(int var1) {
int var2 = this.maxYs.size();
if (var2 == 0) {
class="kw">return 0;
}
int var3 = 0;
int var4 = var2 - 1;
int var5 = var2;
while (var3 <= var4) {
int var6 = (var3 + var4) / 2;
if (this.maxYs.getInt(var6) < var1) {
var3 = var6 + 1;
} else {
var5 = var6;
var4 = var6 - 1;
}
}
class="kw">return var5;
}
class="kw">public void set(int var1) {
this.maxYs.clear();
this.values.clear();
this.values.add(var1);
}
class="kw">public int get(int var1) {
class="kw">return this.values.getInt(this.indexOf(var1));
}
class="kw">public void set(int var1, int var2) {
int var3 = this.indexOf(var1);
int var4 = this.values.getInt(var3);
if (var4 != var2) {
int var5 = this.maxYs.size();
int var6 = Integer.MAX_VALUE;
if (var3 < var5) {
var6 = this.maxYs.getInt(var3);
}
int var7 = Integer.MIN_VALUE;
if (var3 > 0) {
var7 = this.maxYs.getInt(var3 - 1) + 1;
}
if (var7 == var6) {
if (var3 < var5 && this.values.getInt(var3 + 1) == var2) {
this.maxYs.removeInt(var3);
this.values.removeInt(var3);
} else {
this.values.set(var3, var2);
}
if (var3 != 0 && this.values.getInt(var3 - 1) == var2) {
this.maxYs.removeInt(var3 - 1);
this.values.removeInt(var3 - 1);
}
} else if (var7 == var1) {
if (var3 != 0 && this.values.getInt(var3 - 1) == var2) {
this.maxYs.set(var3 - 1, var1);
} else {
this.maxYs.add(var3, var1);
this.values.add(var3, var2);
}
} else if (var6 == var1) {
if (var3 == var5) {
this.maxYs.add(var3, var1 - 1);
this.values.add(var3 + 1, var2);
} else {
this.maxYs.set(var3, var1 - 1);
if (this.values.getInt(var3 + 1) != var2) {
this.maxYs.add(var3 + 1, var1);
this.values.add(var3 + 1, var2);
}
}
} else {
this.maxYs.add(var3, var1);
this.values.add(var3, var2);
this.maxYs.add(var3, var1 - 1);
this.values.add(var3, var4);
}
}
}
class="kw">public int getMin(int var1) {
int var2 = this.indexOf(var1);
int var3 = Integer.MIN_VALUE;
if (var2 > 0) {
var3 = this.maxYs.getInt(var2 - 1) + 1;
}
class="kw">return var3;
}
class="kw">public int getMax(int var1) {
int var2 = this.indexOf(var1);
int var3 = this.maxYs.size();
int var4 = Integer.MAX_VALUE;
if (var2 < var3) {
var4 = this.maxYs.getInt(var2);
}
class="kw">return var4;
}
class="kw">public void set(int var1, int var2, int var3) {
for (int var4 = var1; var4 <= var2; var4++) {
this.set(var4, var3);
}
}
class="kw">public void resetTo(@Nonnull int[] var1, @Nonnull int[] var2) {
assert var1.length == var2.length - 1;
this.maxYs = new IntArrayList(var1);
this.values = new IntArrayList(var2);
}
class="kw">public int serialize(@Nonnull MemorySegment var1, int var2) {
int var3 = var2;
int var4 = this.maxYs.size();
var1.set(MemorySegmentUtil.INT_BE, var3, var4);
var3 += 4;
MemorySegment.copy(this.maxYs.elements(), 0, var1, MemorySegmentUtil.INT_BE, var3, var4);
var3 += 4 * var4;
MemorySegment.copy(this.values.elements(), 0, var1, MemorySegmentUtil.INT_BE, var3, var4 + 1);
var3 += 4 * (var4 + 1);
class="kw">return var3 - var2;
}
class="kw">public int serializeProtocol(@Nonnull MemorySegment var1, int var2) {
int var3 = var2;
int var4 = this.maxYs.size();
var1.set(MemorySegmentUtil.SHORT_LE, var3, (short)(var4 + 1));
var3 += 2;
int var5 = Integer.MIN_VALUE;
for (int var6 = 0; var6 < var4; var6++) {
var1.set(MemorySegmentUtil.SHORT_LE, var3, (short)var5);
var3 += 2;
var1.set(MemorySegmentUtil.SHORT_LE, var3, (short)this.values.getInt(var6));
var3 += 2;
int var7 = this.maxYs.getInt(var6);
var5 = var7 + 1;
}
var1.set(MemorySegmentUtil.SHORT_LE, var3, (short)var5);
var3 += 2;
var1.set(MemorySegmentUtil.SHORT_LE, var3, (short)this.values.getInt(var4));
var3 += 2;
class="kw">return var3 - var2;
}
class="kw">public int deserialize(@Nonnull MemorySegment var1, int var2, @Nonnull Int2IntMap var3) {
this.maxYs.clear();
this.values.clear();
int var4 = var2;
int var5 = var1.get(MemorySegmentUtil.INT_BE, var4);
var4 += 4;
this.maxYs.size(var5);
this.values.ensureCapacity(var5 + 1);
MemorySegment.copy(var1, MemorySegmentUtil.INT_BE, var4, this.maxYs.elements(), 0, var5);
var4 += 4 * var5;
for (int var6 = 0; var6 <= var5; var6++) {
this.values.add(var3.get(var1.get(MemorySegmentUtil.INT_BE, var4)));
var4 += 4;
}
class="kw">return var4 - var2;
}
class="kw">public void copyFrom(@Nonnull EnvironmentColumn var1) {
this.maxYs.clear();
this.values.clear();
this.maxYs.ensureCapacity(var1.maxYs.size());
this.values.ensureCapacity(var1.values.size());
this.maxYs.addAll(var1.maxYs);
this.values.addAll(var1.values);
}
class="kw">public void trim() {
this.maxYs.trim();
this.values.trim();
}
@Override
class="kw">public boolean equals(@Nullable Object var1) {
if (this == var1) {
class="kw">return true;
}
if (var1 != null && this.getClass() == var1.getClass()) {
EnvironmentColumn var2 = (EnvironmentColumn)var1;
if (this.maxYs != null ? this.maxYs.equals(var2.maxYs) : var2.maxYs == null) {
class="kw">return this.values != null ? this.values.equals(var2.values) : var2.values == null;
} else {
class="kw">return false;
}
} else {
class="kw">return false;
}
}
@Override
class="kw">public int hashCode() {
int var1 = this.maxYs != null ? this.maxYs.hashCode() : 0;
class="kw">return 31 * var1 + (this.values != null ? this.values.hashCode() : 0);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "EnvironmentColumn{maxYs=" + this.maxYs + ", values=" + this.values + "}";
}
}