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>
,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 localises 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 official den
intermediary net/minecraft/class_6136
named net/minecraft/util/collection/LinkedBlockPosHashSet
-
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 extends Object>
-
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, firstLong, fixPointers, fixPointers, hashCode, headSet, iterator, iterator, lastLong, rehash, remove, removeLastLong, shiftKeys, subSet, tailSet, 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, remove, removeAll, retainAll, toArray, toLongArray, toLongArray, toString
Methods inherited from class java.util.AbstractCollection
containsAll, removeAll, retainAll, toArray, toArray
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, stream, toArray
Methods inherited from interface it.unimi.dsi.fastutil.longs.LongCollection
containsAll, removeAll, removeIf, removeIf, retainAll, 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
spliterator
-
Field Details
-
buffer
- Mappings:
Namespace Name Mixin selector official a
Lden;a:Lden$a;
intermediary field_31715
Lnet/minecraft/class_6136;field_31715:Lnet/minecraft/class_6136$class_6137;
named buffer
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;buffer:Lnet/minecraft/util/collection/LinkedBlockPosHashSet$Storage;
-
-
Constructor Details
-
LinkedBlockPosHashSet
public LinkedBlockPosHashSet(int expectedSize, float loadFactor) - Mappings:
Namespace Name Mixin selector official <init>
Lden;<init>(IF)V
intermediary <init>
Lnet/minecraft/class_6136;<init>(IF)V
named <init>
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;<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 official add
Lden;add(J)Z
intermediary add
Lnet/minecraft/class_6136;add(J)Z
named add
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;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 official rem
Lden;rem(J)Z
intermediary rem
Lnet/minecraft/class_6136;rem(J)Z
named rem
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;rem(J)Z
-
removeFirstLong
public long removeFirstLong()Pops first block position off of this set.- Overrides:
removeFirstLong
in classLongLinkedOpenHashSet
- Mappings:
Namespace Name Mixin selector official removeFirstLong
Lden;removeFirstLong()J
intermediary removeFirstLong
Lnet/minecraft/class_6136;removeFirstLong()J
named removeFirstLong
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;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 official size
Lden;size()I
intermediary size
Lnet/minecraft/class_6136;size()I
named size
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;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 official isEmpty
Lden;isEmpty()Z
intermediary isEmpty
Lnet/minecraft/class_6136;isEmpty()Z
named isEmpty
Lnet/minecraft/util/collection/LinkedBlockPosHashSet;isEmpty()Z
-