Package net.minecraft.util.collection
Class LinkedBlockPosHashSet
java.lang.Object
java.util.AbstractCollection<Long>
it.unimi.dsi.fastutil.longs.AbstractLongCollection
it.unimi.dsi.fastutil.longs.AbstractLongSet
it.unimi.dsi.fastutil.longs.AbstractLongSortedSet
it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet
net.minecraft.util.collection.LinkedBlockPosHashSet
- All Implemented Interfaces:
Hash
,LongBidirectionalIterable
,LongCollection
,LongIterable
,LongSet
,LongSortedSet
,Serializable
,Cloneable
,Iterable<Long>
,Collection<Long>
,SequencedCollection<Long>
,SequencedSet<Long>
,Set<Long>
,SortedSet<Long>
Represents a set of block positions (long representation).
Uses a Long2LongLinkedOpenHashMap
as its internal storage medium
to facilitate the quick addition and removal of block positions.
Positions are index into a 2x cubed area that then stores as a long, a bitset representing which positions within that area are currently set.
This has two major advantages:
- Positions that are geometrically close together are grouped together in memory. This localizes adjacent reads and writes.
- A larger number of positions can be comprised together into one long allowing for a smaller memory footprint.
- See Also:
- Mappings:
Namespace Name named net/minecraft/util/collection/LinkedBlockPosHashSet
intermediary net/minecraft/class_6136
official etr
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
Represents a three-dimensional mapping from a block position to a bitset of values set at that position.Nested classes/interfaces inherited from interface it.unimi.dsi.fastutil.Hash
Hash.Strategy<K>
-
Field Summary
Fields inherited from class it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet
containsNull, f, first, key, last, link, mask, maxFill, minN, n, size
Fields inherited from interface it.unimi.dsi.fastutil.Hash
DEFAULT_GROWTH_FACTOR, DEFAULT_INITIAL_SIZE, DEFAULT_LOAD_FACTOR, FAST_LOAD_FACTOR, FREE, OCCUPIED, PRIMES, REMOVED, VERY_FAST_LOAD_FACTOR
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
add
(long posLong) Marks a block position as "set".boolean
isEmpty()
Checks whether there are any block positions that have been "set".boolean
rem
(long posLong) Marks a block position as "not set".long
Pops first block position off of this set.int
size()
Methods inherited from class it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet
addAll, addAll, addAndMoveToFirst, addAndMoveToLast, clear, clone, comparator, contains, ensureCapacity, firstLong, fixPointers, fixPointers, forEach, hashCode, headSet, iterator, iterator, lastLong, of, of, of, of, of, rehash, remove, removeLastLong, shiftKeys, spliterator, subSet, tailSet, toSet, toSetWithExpectedSize, trim, trim
Methods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongSet
equals
Methods inherited from class it.unimi.dsi.fastutil.longs.AbstractLongCollection
add, contains, containsAll, containsAll, forEach, remove, removeAll, removeAll, removeIf, retainAll, retainAll, toArray, toLongArray, toLongArray, toString
Methods inherited from class java.util.AbstractCollection
toArray, toArray
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
toArray
Methods inherited from interface it.unimi.dsi.fastutil.longs.LongCollection
containsAll, longIterator, longParallelStream, longSpliterator, longStream, parallelStream, removeAll, removeIf, removeIf, removeIf, retainAll, stream, toArray, toLongArray, toLongArray
Methods inherited from interface it.unimi.dsi.fastutil.longs.LongIterable
forEach, forEach
Methods inherited from interface it.unimi.dsi.fastutil.longs.LongSortedSet
first, headSet, last, subSet, tailSet
Methods inherited from interface java.util.Set
add, contains, containsAll, equals, remove, removeAll, retainAll, toArray, toArray
Methods inherited from interface java.util.SortedSet
addFirst, addLast, getFirst, getLast, removeFirst, removeLast, reversed
-
Field Details
-
buffer
- Mappings:
Namespace Name Mixin selector named buffer
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;buffer:Lnet/minecraft/util/collection/LinkedBlockPosHashSet$Storage;
intermediary field_31715
Lnet/minecraft/class_6136;field_31715:Lnet/minecraft/class_6136$class_6137;
official a
Letr;a:Letr$a;
-
-
Constructor Details
-
LinkedBlockPosHashSet
public LinkedBlockPosHashSet(int expectedSize, float loadFactor) - Mappings:
Namespace Name Mixin selector named <init>
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;<init>(IF)V
intermediary <init>
Lnet/minecraft/class_6136;<init>(IF)V
official <init>
Letr;<init>(IF)V
-
-
Method Details
-
add
public boolean add(long posLong) Marks a block position as "set".- Specified by:
add
in interfaceLongCollection
- Overrides:
add
in classLongLinkedOpenHashSet
- Mappings:
Namespace Name Mixin selector named add
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;add(J)Z
intermediary add
Lnet/minecraft/class_6136;add(J)Z
official add
Letr;add(J)Z
-
rem
public boolean rem(long posLong) Marks a block position as "not set". Effectively removing it from this collection.- Specified by:
rem
in interfaceLongCollection
- Specified by:
rem
in interfaceLongSet
- Overrides:
rem
in classAbstractLongSet
- Mappings:
Namespace Name Mixin selector named rem
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;rem(J)Z
intermediary rem
Lnet/minecraft/class_6136;rem(J)Z
official rem
Letr;rem(J)Z
-
removeFirstLong
public long removeFirstLong()Pops first block position off of this set.- Overrides:
removeFirstLong
in classLongLinkedOpenHashSet
- Mappings:
Namespace Name Mixin selector named removeFirstLong
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;removeFirstLong()J
intermediary removeFirstLong
Lnet/minecraft/class_6136;removeFirstLong()J
official removeFirstLong
Letr;removeFirstLong()J
-
size
public int size()- Specified by:
size
in interfaceCollection<Long>
- Specified by:
size
in interfaceSet<Long>
- Overrides:
size
in classLongLinkedOpenHashSet
- Throws:
UnsupportedOperationException
- Mappings:
Namespace Name Mixin selector named size
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;size()I
intermediary size
Lnet/minecraft/class_6136;size()I
official size
Letr;size()I
-
isEmpty
public boolean isEmpty()Checks whether there are any block positions that have been "set".- Specified by:
isEmpty
in interfaceCollection<Long>
- Specified by:
isEmpty
in interfaceSet<Long>
- Overrides:
isEmpty
in classLongLinkedOpenHashSet
- Returns:
true
is this collection is empty.- Mappings:
Namespace Name Mixin selector named isEmpty
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;isEmpty()Z
intermediary isEmpty
Lnet/minecraft/class_6136;isEmpty()Z
official isEmpty
Letr;isEmpty()Z
-