Merge pull request #39 from huanmeng-qwq/blockstate
Add entity meta support for WrappedBlockState.
This commit is contained in:
commit
d6a3cb72a4
4 changed files with 48 additions and 3 deletions
|
@ -1,6 +1,8 @@
|
|||
package me.tofaa.entitylib.meta.display;
|
||||
|
||||
import com.github.retrooper.packetevents.PacketEvents;
|
||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
|
||||
import me.tofaa.entitylib.meta.Metadata;
|
||||
|
||||
public class BlockDisplayMeta extends AbstractDisplayMeta {
|
||||
|
@ -20,4 +22,11 @@ public class BlockDisplayMeta extends AbstractDisplayMeta {
|
|||
super.metadata.setIndex(OFFSET, EntityDataTypes.BLOCK_STATE, blockId);
|
||||
}
|
||||
|
||||
public WrappedBlockState getBlockState() {
|
||||
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), getBlockId());
|
||||
}
|
||||
|
||||
public void setBlockState(WrappedBlockState blockState) {
|
||||
setBlockId(blockState.getGlobalId());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
package me.tofaa.entitylib.meta.mobs.monster;
|
||||
|
||||
import com.github.retrooper.packetevents.PacketEvents;
|
||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
|
||||
import me.tofaa.entitylib.meta.Metadata;
|
||||
import me.tofaa.entitylib.meta.types.MobMeta;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Optional;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class EndermanMeta extends MobMeta {
|
||||
|
||||
|
@ -24,6 +25,20 @@ public class EndermanMeta extends MobMeta {
|
|||
super.metadata.setIndex(OFFSET, EntityDataTypes.OPTIONAL_INT, Optional.ofNullable(value));
|
||||
}
|
||||
|
||||
public WrappedBlockState getCarriedBlockState() {
|
||||
Integer carriedBlockID = getCarriedBlockID();
|
||||
if (carriedBlockID == null) return null;
|
||||
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), carriedBlockID);
|
||||
}
|
||||
|
||||
public void setCarriedBlockState(WrappedBlockState blockState) {
|
||||
if (blockState == null) {
|
||||
setCarriedBlockID(null);
|
||||
return;
|
||||
}
|
||||
setCarriedBlockID(blockState.getGlobalId());
|
||||
}
|
||||
|
||||
public boolean isScreaming() {
|
||||
return super.metadata.getIndex(offset(OFFSET, 1), false);
|
||||
}
|
||||
|
@ -33,7 +48,7 @@ public class EndermanMeta extends MobMeta {
|
|||
}
|
||||
|
||||
public boolean isStaring() {
|
||||
return super.metadata.getIndex(offset(OFFSET, 2), false);
|
||||
return super.metadata.getIndex(offset(OFFSET, 2), false);
|
||||
}
|
||||
|
||||
public void setStaring(boolean value) {
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package me.tofaa.entitylib.meta.other;
|
||||
|
||||
import com.github.retrooper.packetevents.PacketEvents;
|
||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
|
||||
import com.github.retrooper.packetevents.util.Vector3i;
|
||||
import me.tofaa.entitylib.meta.EntityMeta;
|
||||
import me.tofaa.entitylib.meta.Metadata;
|
||||
|
@ -34,6 +36,14 @@ public class FallingBlockMeta extends EntityMeta implements ObjectData {
|
|||
this.blockStateId = blockStateId;
|
||||
}
|
||||
|
||||
public WrappedBlockState getBlockState() {
|
||||
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), getBlockStateId());
|
||||
}
|
||||
|
||||
public void setBlockState(WrappedBlockState blockState) {
|
||||
setBlockStateId(blockState.getGlobalId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getObjectData() {
|
||||
return blockStateId;
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package me.tofaa.entitylib.meta.other;
|
||||
|
||||
import com.github.retrooper.packetevents.PacketEvents;
|
||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
|
||||
import com.github.retrooper.packetevents.protocol.world.states.type.StateTypes;
|
||||
import me.tofaa.entitylib.meta.EntityMeta;
|
||||
import me.tofaa.entitylib.meta.Metadata;
|
||||
|
@ -28,4 +30,13 @@ public class TntMeta extends EntityMeta {
|
|||
public void setBlockData(int blockData) {
|
||||
super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.BLOCK_STATE, blockData);
|
||||
}
|
||||
|
||||
public WrappedBlockState getBlockState() {
|
||||
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), getBlockData());
|
||||
}
|
||||
|
||||
public void setBlockState(WrappedBlockState blockState) {
|
||||
setBlockData(blockState.getGlobalId());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue