VisibilitySet.java
net.minecraft.client.renderer.chunk.VisibilitySet
信息
- 全限定名:net.minecraft.client.renderer.chunk.VisibilitySet
- 类型:public class
- 包:net.minecraft.client.renderer.chunk
- 源码路径:src/main/java/net/minecraft/client/renderer/chunk/VisibilitySet.java
- 起始行号:L11
- 职责:
TODO
字段/常量
-
FACINGS- 类型:
int - 修饰符:
private static final - 源码定位:
L12 - 说明:
TODO
- 类型:
-
data- 类型:
BitSet - 修饰符:
private final - 源码定位:
L13 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public void add(Set<Direction> directions) @ L15
- 方法名:add
- 源码定位:L15
- 返回类型:void
- 修饰符:public
参数:
- directions: Set
说明:
TODO
public void set(Direction direction1, Direction direction2, boolean value) @ L23
- 方法名:set
- 源码定位:L23
- 返回类型:void
- 修饰符:public
参数:
- direction1: Direction
- direction2: Direction
- value: boolean
说明:
TODO
public void setAll(boolean visible) @ L28
- 方法名:setAll
- 源码定位:L28
- 返回类型:void
- 修饰符:public
参数:
- visible: boolean
说明:
TODO
public boolean visibilityBetween(Direction direction1, Direction direction2) @ L32
- 方法名:visibilityBetween
- 源码定位:L32
- 返回类型:boolean
- 修饰符:public
参数:
- direction1: Direction
- direction2: Direction
说明:
TODO
public String toString() @ L36
- 方法名:toString
- 源码定位:L36
- 返回类型:String
- 修饰符:public
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class VisibilitySet {
private static final int FACINGS = Direction.values().length;
private final BitSet data = new BitSet(FACINGS * FACINGS);
public void add(Set<Direction> directions) {
for (Direction direction1 : directions) {
for (Direction direction2 : directions) {
this.set(direction1, direction2, true);
}
}
}
public void set(Direction direction1, Direction direction2, boolean value) {
this.data.set(direction1.ordinal() + direction2.ordinal() * FACINGS, value);
this.data.set(direction2.ordinal() + direction1.ordinal() * FACINGS, value);
}
public void setAll(boolean visible) {
this.data.set(0, this.data.size(), visible);
}
public boolean visibilityBetween(Direction direction1, Direction direction2) {
return this.data.get(direction1.ordinal() + direction2.ordinal() * FACINGS);
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append(' ');
for (Direction direction : Direction.values()) {
builder.append(' ').append(direction.toString().toUpperCase(Locale.ROOT).charAt(0));
}
builder.append('\n');
for (Direction direction1 : Direction.values()) {
builder.append(direction1.toString().toUpperCase(Locale.ROOT).charAt(0));
for (Direction direction2 : Direction.values()) {
if (direction1 == direction2) {
builder.append(" ");
} else {
boolean ok = this.visibilityBetween(direction1, direction2);
builder.append(' ').append((char)(ok ? 'Y' : 'n'));
}
}
builder.append('\n');
}
return builder.toString();
}
}引用的其他类
- Direction
- 引用位置:
参数/方法调用 - 关联成员:
Direction.values()
- 引用位置: