23w17a
This commit is contained in:
1 parent
15b120f729
commit
07033af7dd
44 files changed
+309
-265
No files matched your search
+2
-2
@@ -3,10 +3,10 @@ org.gradle.jvmargs=-Xmx1G
|
||||
|
||||
# Fabric Properties
|
||||
# check https://fabricmc.net/develop/
|
||||
minecraft_version=23w16a
|
||||
minecraft_version=23w17a
|
||||
loader_version=0.14.19
|
||||
jsr305_version=3.0.2
|
||||
fabric_version=0.78.0+1.20
|
||||
fabric_version=0.79.1+1.20
|
||||
|
||||
# Mod Properties
|
||||
mod_version = 1.4.105
|
||||
|
||||
@@ -842,7 +842,7 @@ public class CarpetSettings
|
||||
{
|
||||
for (ServerLevel world : server.getAllLevels())
|
||||
{
|
||||
world.getChunkSource().getLightEngine().setTaskPerBatch(maxBatchSize);
|
||||
//world.getChunkSource().getLightEngine().setTaskPerBatch(maxBatchSize);
|
||||
}
|
||||
}
|
||||
@Override public Integer validate(CommandSourceStack source, CarpetRule<Integer> currentRule, Integer newValue, String string) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package carpet.fakes;
|
||||
|
||||
import net.minecraft.world.level.lighting.LayerLightEngine;
|
||||
import net.minecraft.world.level.lighting.LightEngine;
|
||||
|
||||
public interface LightStorageInterface extends Lighting_scarpetChunkCreationInterface
|
||||
{
|
||||
void processRemoveLightData(long pos);
|
||||
|
||||
void processRelight(LayerLightEngine<?, ?> lightProvider, long pos);
|
||||
void processRelight(LightEngine<?, ?> lightProvider, long pos);
|
||||
|
||||
int getLightLevelByLong(long blockPos);
|
||||
}
|
||||
@@ -5,4 +5,6 @@ public interface Lighting_scarpetChunkCreationInterface
|
||||
void removeLightData(long pos);
|
||||
|
||||
void relight(long pos);
|
||||
|
||||
default void clearQueuedSectionBlocksPublicAccess(long sectionPos) {};
|
||||
}
|
||||
@@ -174,12 +174,12 @@ public class EntityPlayerActionPack
|
||||
List<Entity> entities;
|
||||
if (onlyRideables)
|
||||
{
|
||||
entities = player.level.getEntities(player, player.getBoundingBox().inflate(3.0D, 1.0D, 3.0D),
|
||||
entities = player.level().getEntities(player, player.getBoundingBox().inflate(3.0D, 1.0D, 3.0D),
|
||||
e -> e instanceof Minecart || e instanceof Boat || e instanceof AbstractHorse);
|
||||
}
|
||||
else
|
||||
{
|
||||
entities = player.level.getEntities(player, player.getBoundingBox().inflate(3.0D, 1.0D, 3.0D));
|
||||
entities = player.level().getEntities(player, player.getBoundingBox().inflate(3.0D, 1.0D, 3.0D));
|
||||
}
|
||||
if (entities.size()==0)
|
||||
return this;
|
||||
@@ -310,11 +310,11 @@ public class EntityPlayerActionPack
|
||||
case BLOCK:
|
||||
{
|
||||
player.resetLastActionTime();
|
||||
ServerLevel world = player.getLevel();
|
||||
ServerLevel world = player.serverLevel();
|
||||
BlockHitResult blockHit = (BlockHitResult) hit;
|
||||
BlockPos pos = blockHit.getBlockPos();
|
||||
Direction side = blockHit.getDirection();
|
||||
if (pos.getY() < player.getLevel().getMaxBuildHeight() - (side == Direction.UP ? 1 : 0) && world.mayInteract(player, pos))
|
||||
if (pos.getY() < player.level().getMaxBuildHeight() - (side == Direction.UP ? 1 : 0) && world.mayInteract(player, pos))
|
||||
{
|
||||
InteractionResult result = player.gameMode.useItemOn(player, world, player.getItemInHand(hand), hand, blockHit);
|
||||
if (result.consumesAction())
|
||||
@@ -349,7 +349,7 @@ public class EntityPlayerActionPack
|
||||
}
|
||||
}
|
||||
ItemStack handItem = player.getItemInHand(hand);
|
||||
if (player.gameMode.useItem(player, player.getLevel(), handItem, hand).consumesAction())
|
||||
if (player.gameMode.useItem(player, player.level(), handItem, hand).consumesAction())
|
||||
{
|
||||
ap.itemUseCooldown = 3;
|
||||
return true;
|
||||
@@ -392,17 +392,17 @@ public class EntityPlayerActionPack
|
||||
BlockHitResult blockHit = (BlockHitResult) hit;
|
||||
BlockPos pos = blockHit.getBlockPos();
|
||||
Direction side = blockHit.getDirection();
|
||||
if (player.blockActionRestricted(player.level, pos, player.gameMode.getGameModeForPlayer())) return false;
|
||||
if (ap.currentBlock != null && player.level.getBlockState(ap.currentBlock).isAir())
|
||||
if (player.blockActionRestricted(player.level(), pos, player.gameMode.getGameModeForPlayer())) return false;
|
||||
if (ap.currentBlock != null && player.level().getBlockState(ap.currentBlock).isAir())
|
||||
{
|
||||
ap.currentBlock = null;
|
||||
return false;
|
||||
}
|
||||
BlockState state = player.level.getBlockState(pos);
|
||||
BlockState state = player.level().getBlockState(pos);
|
||||
boolean blockBroken = false;
|
||||
if (player.gameMode.getGameModeForPlayer().isCreative())
|
||||
{
|
||||
player.gameMode.handleBlockBreakAction(pos, ServerboundPlayerActionPacket.Action.START_DESTROY_BLOCK, side, player.getLevel().getMaxBuildHeight(), -1);
|
||||
player.gameMode.handleBlockBreakAction(pos, ServerboundPlayerActionPacket.Action.START_DESTROY_BLOCK, side, player.level().getMaxBuildHeight(), -1);
|
||||
ap.blockHitDelay = 5;
|
||||
blockBroken = true;
|
||||
}
|
||||
@@ -410,15 +410,15 @@ public class EntityPlayerActionPack
|
||||
{
|
||||
if (ap.currentBlock != null)
|
||||
{
|
||||
player.gameMode.handleBlockBreakAction(ap.currentBlock, ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK, side, player.getLevel().getMaxBuildHeight(), -1);
|
||||
player.gameMode.handleBlockBreakAction(ap.currentBlock, ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK, side, player.level().getMaxBuildHeight(), -1);
|
||||
}
|
||||
player.gameMode.handleBlockBreakAction(pos, ServerboundPlayerActionPacket.Action.START_DESTROY_BLOCK, side, player.getLevel().getMaxBuildHeight(), -1);
|
||||
player.gameMode.handleBlockBreakAction(pos, ServerboundPlayerActionPacket.Action.START_DESTROY_BLOCK, side, player.level().getMaxBuildHeight(), -1);
|
||||
boolean notAir = !state.isAir();
|
||||
if (notAir && ap.curBlockDamageMP == 0)
|
||||
{
|
||||
state.attack(player.level, pos, player);
|
||||
state.attack(player.level(), pos, player);
|
||||
}
|
||||
if (notAir && state.getDestroyProgress(player, player.level, pos) >= 1)
|
||||
if (notAir && state.getDestroyProgress(player, player.level(), pos) >= 1)
|
||||
{
|
||||
ap.currentBlock = null;
|
||||
//instamine??
|
||||
@@ -432,15 +432,15 @@ public class EntityPlayerActionPack
|
||||
}
|
||||
else
|
||||
{
|
||||
ap.curBlockDamageMP += state.getDestroyProgress(player, player.level, pos);
|
||||
ap.curBlockDamageMP += state.getDestroyProgress(player, player.level(), pos);
|
||||
if (ap.curBlockDamageMP >= 1)
|
||||
{
|
||||
player.gameMode.handleBlockBreakAction(pos, ServerboundPlayerActionPacket.Action.STOP_DESTROY_BLOCK, side, player.getLevel().getMaxBuildHeight(), -1);
|
||||
player.gameMode.handleBlockBreakAction(pos, ServerboundPlayerActionPacket.Action.STOP_DESTROY_BLOCK, side, player.level().getMaxBuildHeight(), -1);
|
||||
ap.currentBlock = null;
|
||||
ap.blockHitDelay = 5;
|
||||
blockBroken = true;
|
||||
}
|
||||
player.level.destroyBlockProgress(-1, pos, (int) (ap.curBlockDamageMP * 10));
|
||||
player.level().destroyBlockProgress(-1, pos, (int) (ap.curBlockDamageMP * 10));
|
||||
|
||||
}
|
||||
player.resetLastActionTime();
|
||||
@@ -456,8 +456,8 @@ public class EntityPlayerActionPack
|
||||
{
|
||||
EntityPlayerActionPack ap = ((ServerPlayerInterface) player).getActionPack();
|
||||
if (ap.currentBlock == null) return;
|
||||
player.level.destroyBlockProgress(-1, ap.currentBlock, -1);
|
||||
player.gameMode.handleBlockBreakAction(ap.currentBlock, ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK, Direction.DOWN, player.getLevel().getMaxBuildHeight(), -1);
|
||||
player.level().destroyBlockProgress(-1, ap.currentBlock, -1);
|
||||
player.gameMode.handleBlockBreakAction(ap.currentBlock, ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK, Direction.DOWN, player.level().getMaxBuildHeight(), -1);
|
||||
ap.currentBlock = null;
|
||||
}
|
||||
},
|
||||
@@ -468,7 +468,7 @@ public class EntityPlayerActionPack
|
||||
{
|
||||
if (action.limit == 1)
|
||||
{
|
||||
if (player.isOnGround()) player.jumpFromGround(); // onGround
|
||||
if (player.onGround()) player.jumpFromGround(); // onGround
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -21,7 +21,7 @@ import net.minecraft.world.level.levelgen.feature.CoralFeature;
|
||||
import net.minecraft.world.level.levelgen.feature.CoralMushroomFeature;
|
||||
import net.minecraft.world.level.levelgen.feature.CoralTreeFeature;
|
||||
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import net.minecraft.world.level.material.MapColor;
|
||||
|
||||
/**
|
||||
* Deduplicates logic for the different behaviors of the {@code renewableCoral} rule
|
||||
@@ -56,7 +56,7 @@ public interface FertilizableCoral extends BonemealableBlock {
|
||||
default -> new CoralMushroomFeature(NoneFeatureConfiguration.CODEC);
|
||||
};
|
||||
|
||||
MaterialColor color = blockUnder.getMapColor(worldIn, pos);
|
||||
MapColor color = blockUnder.getMapColor(worldIn, pos);
|
||||
BlockState properBlock = blockUnder;
|
||||
HolderSet.Named<Block> coralBlocks = worldIn.registryAccess().registryOrThrow(Registries.BLOCK).getTag(BlockTags.CORAL_BLOCKS).orElseThrow();
|
||||
for (Holder<Block> block: coralBlocks)
|
||||
|
||||
@@ -30,7 +30,8 @@ import net.minecraft.world.level.block.AbstractBannerBlock;
|
||||
import net.minecraft.world.level.block.BeaconBeamBlock;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import net.minecraft.world.level.material.MapColor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -100,7 +101,7 @@ public class HopperCounter
|
||||
{
|
||||
startTick = -1;
|
||||
this.color = color;
|
||||
this.prettyColour = WoolTool.Material2DyeName.getOrDefault(color.getMaterialColor(),"w ") + color.getName();
|
||||
this.prettyColour = WoolTool.Material2DyeName.getOrDefault(color.getMapColor(),"w ") + color.getName();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -229,7 +230,7 @@ public class HopperCounter
|
||||
*/
|
||||
public static int appropriateColor(int color)
|
||||
{
|
||||
if (color == 0) return MaterialColor.SNOW.col;
|
||||
if (color == 0) return MapColor.SNOW.col;
|
||||
int r = (color >> 16 & 255);
|
||||
int g = (color >> 8 & 255);
|
||||
int b = (color & 255);
|
||||
@@ -241,7 +242,7 @@ public class HopperCounter
|
||||
|
||||
/**
|
||||
* Maps items that don't get a good block to reference for colour, or those that colour is wrong to a number of blocks, so we can get their colours easily with the
|
||||
* {@link Block#defaultMaterialColor()} method as these items have those same colours.
|
||||
* {@link Block#defaultMapColor()} method as these items have those same colours.
|
||||
*/
|
||||
private static final Map<Item, Block> DEFAULTS = Map.ofEntries(
|
||||
entry(Items.DANDELION, Blocks.YELLOW_WOOL),
|
||||
@@ -334,8 +335,8 @@ public class HopperCounter
|
||||
*/
|
||||
public static TextColor fromItem(Item item, RegistryAccess registryAccess)
|
||||
{
|
||||
if (DEFAULTS.containsKey(item)) return TextColor.fromRgb(appropriateColor(DEFAULTS.get(item).defaultMaterialColor().col));
|
||||
if (item instanceof DyeItem dye) return TextColor.fromRgb(appropriateColor(dye.getDyeColor().getMaterialColor().col));
|
||||
if (DEFAULTS.containsKey(item)) return TextColor.fromRgb(appropriateColor(DEFAULTS.get(item).defaultMapColor().col));
|
||||
if (item instanceof DyeItem dye) return TextColor.fromRgb(appropriateColor(dye.getDyeColor().getMapColor().col));
|
||||
Block block = null;
|
||||
final Registry<Item> itemRegistry = registryAccess.registryOrThrow(Registries.ITEM);
|
||||
final Registry<Block> blockRegistry = registryAccess.registryOrThrow(Registries.BLOCK);
|
||||
@@ -350,9 +351,9 @@ public class HopperCounter
|
||||
}
|
||||
if (block != null)
|
||||
{
|
||||
if (block instanceof AbstractBannerBlock) return TextColor.fromRgb(appropriateColor(((AbstractBannerBlock) block).getColor().getMaterialColor().col));
|
||||
if (block instanceof BeaconBeamBlock) return TextColor.fromRgb(appropriateColor( ((BeaconBeamBlock) block).getColor().getMaterialColor().col));
|
||||
return TextColor.fromRgb(appropriateColor( block.defaultMaterialColor().col));
|
||||
if (block instanceof AbstractBannerBlock) return TextColor.fromRgb(appropriateColor(((AbstractBannerBlock) block).getColor().getMapColor().col));
|
||||
if (block instanceof BeaconBeamBlock) return TextColor.fromRgb(appropriateColor( ((BeaconBeamBlock) block).getColor().getMapColor().col));
|
||||
return TextColor.fromRgb(appropriateColor( block.defaultMapColor().col));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -12,11 +12,11 @@ public class ParticleDisplay
|
||||
{
|
||||
public static void drawParticleLine(ServerPlayer player, Vec3 from, Vec3 to, String main, String accent, int count, double spread)
|
||||
{
|
||||
HolderLookup<ParticleType<?>> lookup = player.getLevel().holderLookup(Registries.PARTICLE_TYPE);
|
||||
HolderLookup<ParticleType<?>> lookup = player.level().holderLookup(Registries.PARTICLE_TYPE);
|
||||
ParticleOptions accentParticle = ParticleParser.getEffect(accent, lookup);
|
||||
ParticleOptions mainParticle = ParticleParser.getEffect(main, lookup);
|
||||
|
||||
if (accentParticle != null) player.getLevel().sendParticles(
|
||||
if (accentParticle != null) player.serverLevel().sendParticles(
|
||||
player,
|
||||
accentParticle,
|
||||
true,
|
||||
@@ -29,9 +29,9 @@ public class ParticleDisplay
|
||||
Vec3 incvec = to.subtract(from).normalize();// multiply(50/sqrt(lineLengthSq));
|
||||
for (Vec3 delta = new Vec3(0.0,0.0,0.0);
|
||||
delta.lengthSqr() < lineLengthSq;
|
||||
delta = delta.add(incvec.scale(player.level.random.nextFloat())))
|
||||
delta = delta.add(incvec.scale(player.level().random.nextFloat())))
|
||||
{
|
||||
player.getLevel().sendParticles(
|
||||
player.serverLevel().sendParticles(
|
||||
player,
|
||||
mainParticle,
|
||||
true,
|
||||
|
||||
@@ -89,7 +89,7 @@ public class HUDController
|
||||
case "overworld" -> Level.OVERWORLD;
|
||||
case "nether" -> Level.NETHER;
|
||||
case "end" -> Level.END;
|
||||
default -> player.level.dimension();
|
||||
default -> player.level().dimension();
|
||||
};
|
||||
return new Component[]{SpawnReporter.printMobcapsForDimension(server.getLevel(dim), false).get(0)};
|
||||
});
|
||||
|
||||
@@ -29,7 +29,7 @@ public abstract class ArmorStand_scarpetMarkerMixin extends LivingEntity
|
||||
@Inject(method = "readAdditionalSaveData", at = @At("HEAD"))
|
||||
private void checkScarpetMarkerUnloaded(CallbackInfo ci)
|
||||
{
|
||||
if (!level.isClientSide)
|
||||
if (!level().isClientSide)
|
||||
{
|
||||
if (getTags().contains(Auxiliary.MARKER_STRING))
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ import net.minecraft.world.level.chunk.DataLayer;
|
||||
import net.minecraft.world.level.chunk.LightChunkGetter;
|
||||
import net.minecraft.world.level.lighting.BlockLightSectionStorage;
|
||||
import net.minecraft.world.level.lighting.BlockLightSectionStorage.BlockDataLayerStorageMap;
|
||||
import net.minecraft.world.level.lighting.LayerLightEngine;
|
||||
import net.minecraft.world.level.lighting.LightEngine;
|
||||
import net.minecraft.world.level.lighting.LayerLightSectionStorage;
|
||||
|
||||
@Mixin(BlockLightSectionStorage.class)
|
||||
@@ -24,7 +24,7 @@ public abstract class BlockLightSectionStorage_scarpetChunkCreationMixin extends
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processRelight(final LayerLightEngine<?, ?> lightProvider, final long cPos)
|
||||
public void processRelight(final LightEngine<?, ?> lightProvider, final long cPos)
|
||||
{
|
||||
final DynamicGraphMinFixedPoint_resetChunkInterface levelPropagator = (DynamicGraphMinFixedPoint_resetChunkInterface) lightProvider;
|
||||
|
||||
@@ -62,4 +62,10 @@ public abstract class BlockLightSectionStorage_scarpetChunkCreationMixin extends
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightLevelByLong(long blockPos)
|
||||
{
|
||||
return getLightValue(blockPos);
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ public abstract class ExperienceOrb_xpNoCooldownMixin extends Entity
|
||||
|
||||
@Inject(method = "playerTouch", at = @At("HEAD"))
|
||||
private void addXP(Player player, CallbackInfo ci) {
|
||||
if (CarpetSettings.xpNoCooldown && !level.isClientSide) {
|
||||
if (CarpetSettings.xpNoCooldown && !level().isClientSide) {
|
||||
player.takeXpDelay = 0;
|
||||
// reducing the count to 1 and leaving vanilla to deal with it
|
||||
while (this.count > 1) {
|
||||
|
||||
@@ -24,11 +24,11 @@ public abstract class Guardian_renewableSpongesMixin extends Monster
|
||||
@Override
|
||||
public void thunderHit(ServerLevel serverWorld, LightningBolt lightningEntity)
|
||||
{ // isRemoved()
|
||||
if (!this.level.isClientSide && !this.isRemoved() && CarpetSettings.renewableSponges && !((Object)this instanceof ElderGuardian))
|
||||
if (!this.level().isClientSide && !this.isRemoved() && CarpetSettings.renewableSponges && !((Object)this instanceof ElderGuardian))
|
||||
{
|
||||
ElderGuardian elderGuardian = new ElderGuardian(EntityType.ELDER_GUARDIAN ,this.level);
|
||||
ElderGuardian elderGuardian = new ElderGuardian(EntityType.ELDER_GUARDIAN ,this.level());
|
||||
elderGuardian.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
|
||||
elderGuardian.finalizeSpawn(serverWorld ,this.level.getCurrentDifficultyAt(elderGuardian.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData)null, (CompoundTag)null);
|
||||
elderGuardian.finalizeSpawn(serverWorld ,this.level().getCurrentDifficultyAt(elderGuardian.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData)null, (CompoundTag)null);
|
||||
elderGuardian.setNoAi(this.isNoAi());
|
||||
|
||||
if (this.hasCustomName())
|
||||
@@ -37,7 +37,7 @@ public abstract class Guardian_renewableSpongesMixin extends Monster
|
||||
elderGuardian.setCustomNameVisible(this.isCustomNameVisible());
|
||||
}
|
||||
|
||||
this.level.addFreshEntity(elderGuardian);
|
||||
this.level().addFreshEntity(elderGuardian);
|
||||
this.discard(); // discard remove();
|
||||
}
|
||||
else
|
||||
|
||||
@@ -13,7 +13,7 @@ import static carpet.CarpetSettings.FungusGrowthMode.*;
|
||||
|
||||
@Mixin(HugeFungusFeature.class)
|
||||
public class HugeFungusFeatureMixin {
|
||||
@ModifyArgs(method = "place", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/levelgen/feature/HugeFungusFeature;placeStem(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/util/RandomSource;Lnet/minecraft/world/level/levelgen/feature/HugeFungusConfiguration;Lnet/minecraft/core/BlockPos;IZ)V"))
|
||||
@ModifyArgs(method = "place", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/levelgen/feature/HugeFungusFeature;placeStem(Lnet/minecraft/world/level/WorldGenLevel;Lnet/minecraft/util/RandomSource;Lnet/minecraft/world/level/levelgen/feature/HugeFungusConfiguration;Lnet/minecraft/core/BlockPos;IZ)V"))
|
||||
private void mixin(Args args) {
|
||||
boolean natural = !((HugeFungusConfiguration) args.get(2)).planted;
|
||||
args.set(5, natural && ((boolean) args.get(5)) ||
|
||||
|
||||
@@ -1,23 +1,25 @@
|
||||
package carpet.mixins;
|
||||
|
||||
import carpet.fakes.LightStorageInterface;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.gen.Invoker;
|
||||
|
||||
import carpet.fakes.ChunkLightProviderInterface;
|
||||
import carpet.fakes.Lighting_scarpetChunkCreationInterface;
|
||||
import net.minecraft.world.level.chunk.DataLayer;
|
||||
import net.minecraft.world.level.lighting.LayerLightEngine;
|
||||
import net.minecraft.world.level.lighting.LightEngine;
|
||||
import net.minecraft.world.level.lighting.LayerLightSectionStorage;
|
||||
|
||||
@Mixin(LayerLightEngine.class)
|
||||
@Mixin(LightEngine.class)
|
||||
public abstract class LayerLightEngine_scarpetChunkCreationMixin implements Lighting_scarpetChunkCreationInterface, ChunkLightProviderInterface
|
||||
{
|
||||
@Shadow
|
||||
@Final
|
||||
protected LayerLightSectionStorage<?> storage;
|
||||
|
||||
@Shadow protected abstract void clearQueuedSectionBlocks(final long l);
|
||||
|
||||
@Override
|
||||
public void removeLightData(final long pos)
|
||||
{
|
||||
@@ -31,6 +33,13 @@ public abstract class LayerLightEngine_scarpetChunkCreationMixin implements Ligh
|
||||
}
|
||||
|
||||
@Override
|
||||
@Invoker("getLevel")
|
||||
public abstract int callGetCurrentLevelFromSection(DataLayer array, long blockPos);
|
||||
public int callGetCurrentLevelFromSection(DataLayer array, long blockPos) {
|
||||
return ((LightStorageInterface)storage).getLightLevelByLong(blockPos);
|
||||
};
|
||||
|
||||
@Override
|
||||
public void clearQueuedSectionBlocksPublicAccess(long sectionPos)
|
||||
{
|
||||
clearQueuedSectionBlocks(sectionPos);
|
||||
}
|
||||
}
|
||||
+10
-8
@@ -1,10 +1,12 @@
|
||||
package carpet.mixins;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import carpet.fakes.Lighting_scarpetChunkCreationInterface;
|
||||
import net.minecraft.core.SectionPos;
|
||||
import net.minecraft.world.level.chunk.DataLayer;
|
||||
import net.minecraft.world.level.lighting.DataLayerStorageMap;
|
||||
import net.minecraft.world.level.lighting.LayerLightEngine;
|
||||
import net.minecraft.world.level.lighting.LightEngine;
|
||||
import net.minecraft.world.level.lighting.LayerLightSectionStorage;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
@@ -25,8 +27,8 @@ public abstract class LayerLightSectionStorage_scarpetChunkCreationMixin impleme
|
||||
@Shadow
|
||||
protected abstract DataLayer getDataLayer(final long sectionPos, final boolean cached);
|
||||
|
||||
@Shadow
|
||||
protected abstract void clearQueuedSectionBlocks(final LayerLightEngine<?, ?> storage, final long blockChunkPos);
|
||||
//@Shadow
|
||||
//protected abstract void clearQueuedSectionBlocks(final LightEngine<?, ?> storage, final long blockChunkPos);
|
||||
|
||||
@Shadow
|
||||
@Final
|
||||
@@ -42,7 +44,7 @@ public abstract class LayerLightSectionStorage_scarpetChunkCreationMixin impleme
|
||||
@Final
|
||||
protected Long2ObjectMap<DataLayer> queuedSections;
|
||||
|
||||
@Shadow protected abstract void enableLightSources(final long l, final boolean bl);
|
||||
//@Shadow protected abstract void enableLightSources(final long l, final boolean bl);
|
||||
|
||||
@Unique
|
||||
private final LongSet removedChunks = new LongOpenHashSet();
|
||||
@@ -63,10 +65,10 @@ public abstract class LayerLightSectionStorage_scarpetChunkCreationMixin impleme
|
||||
}
|
||||
|
||||
@Inject(
|
||||
method = "markNewInconsistencies(Lnet/minecraft/world/level/lighting/LayerLightEngine;ZZ)V",
|
||||
method = "markNewInconsistencies",
|
||||
at = @At("HEAD")
|
||||
)
|
||||
private void processData(final LayerLightEngine<?, ?> lightProvider, final boolean doSkylight, final boolean skipEdgeLightPropagation, final CallbackInfo ci)
|
||||
private void processData(final LightEngine<?, ?> lightProvider, final CallbackInfo ci)
|
||||
{
|
||||
// Process light removal
|
||||
|
||||
@@ -80,7 +82,7 @@ public abstract class LayerLightSectionStorage_scarpetChunkCreationMixin impleme
|
||||
|
||||
if (this.storingLightForSection(sectionPos))
|
||||
{
|
||||
this.clearQueuedSectionBlocks(lightProvider, sectionPos);
|
||||
((Lighting_scarpetChunkCreationInterface)lightProvider).clearQueuedSectionBlocksPublicAccess(sectionPos);
|
||||
|
||||
if (this.changedSections.add(sectionPos))
|
||||
this.updatingSectionData.copyDataLayer(sectionPos);
|
||||
@@ -108,7 +110,7 @@ public abstract class LayerLightSectionStorage_scarpetChunkCreationMixin impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processRelight(final LayerLightEngine<?, ?> lightProvider, final long pos)
|
||||
public void processRelight(final LightEngine<?, ?> lightProvider, final long pos)
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
|
||||
import carpet.fakes.Lighting_scarpetChunkCreationInterface;
|
||||
import net.minecraft.world.level.lighting.LayerLightEngine;
|
||||
import net.minecraft.world.level.lighting.LightEngine;
|
||||
import net.minecraft.world.level.lighting.LevelLightEngine;
|
||||
|
||||
@Mixin(LevelLightEngine.class)
|
||||
@@ -13,11 +13,11 @@ public abstract class LevelLightEngine_scarpetChunkCreationMixin implements Ligh
|
||||
{
|
||||
@Shadow
|
||||
@Final
|
||||
private LayerLightEngine<?, ?> blockEngine;
|
||||
private LightEngine<?, ?> blockEngine;
|
||||
|
||||
@Shadow
|
||||
@Final
|
||||
private LayerLightEngine<?, ?> skyEngine;
|
||||
private LightEngine<?, ?> skyEngine;
|
||||
|
||||
@Override
|
||||
public void removeLightData(final long pos)
|
||||
|
||||
@@ -22,6 +22,6 @@ public abstract class LivingEntity_cleanLogsMixin extends Entity
|
||||
@Redirect(method = "die", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;hasCustomName()Z"))
|
||||
private boolean shouldLogDeaths(LivingEntity livingEntity)
|
||||
{
|
||||
return livingEntity.hasCustomName() && CarpetSettings.cleanLogs && level.getGameRules().getBoolean(GameRules.RULE_SHOWDEATHMESSAGES);
|
||||
return livingEntity.hasCustomName() && CarpetSettings.cleanLogs && level().getGameRules().getBoolean(GameRules.RULE_SHOWDEATHMESSAGES);
|
||||
}
|
||||
}
|
||||
@@ -30,7 +30,7 @@ public abstract class LivingEntity_creativeFlyMixin extends Entity
|
||||
if (CarpetSettings.creativeFlyDrag != 0.09 && (Object)this instanceof Player)
|
||||
{
|
||||
Player self = (Player)(Object)(this);
|
||||
if (self.getAbilities().flying && ! onGround )
|
||||
if (self.getAbilities().flying && ! onGround() )
|
||||
return (float)(1.0-CarpetSettings.creativeFlyDrag);
|
||||
}
|
||||
return original;
|
||||
@@ -43,7 +43,7 @@ public abstract class LivingEntity_creativeFlyMixin extends Entity
|
||||
if (CarpetSettings.creativeFlySpeed != 1.0D && (Object)this instanceof Player)
|
||||
{
|
||||
Player self = (Player)(Object)(this);
|
||||
if (self.getAbilities().flying && !onGround)
|
||||
if (self.getAbilities().flying && !onGround())
|
||||
cir.setReturnValue( getFlyingSpeed() * (float)CarpetSettings.creativeFlySpeed);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,8 +37,8 @@ public abstract class LivingEntity_maxCollisionsMixin extends Entity
|
||||
int maxEntityCramming =-1;
|
||||
if (CarpetSettings.maxEntityCollisions > 0)
|
||||
{
|
||||
maxEntityCramming = this.level.getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING);
|
||||
entities = ((LevelInterface) this.level).getOtherEntitiesLimited(
|
||||
maxEntityCramming = this.level().getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING);
|
||||
entities = ((LevelInterface) this.level()).getOtherEntitiesLimited(
|
||||
this,
|
||||
this.getBoundingBox(),
|
||||
EntitySelector.pushableBy(this),
|
||||
@@ -46,11 +46,11 @@ public abstract class LivingEntity_maxCollisionsMixin extends Entity
|
||||
}
|
||||
else
|
||||
{
|
||||
entities = this.level.getEntities(this, this.getBoundingBox(), EntitySelector.pushableBy(this));
|
||||
entities = this.level().getEntities(this, this.getBoundingBox(), EntitySelector.pushableBy(this));
|
||||
}
|
||||
|
||||
if (!entities.isEmpty()) {
|
||||
if (maxEntityCramming < 0) maxEntityCramming = this.level.getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING);
|
||||
if (maxEntityCramming < 0) maxEntityCramming = this.level().getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING);
|
||||
if (maxEntityCramming > 0 && entities.size() > maxEntityCramming - 1 && this.random.nextInt(4) == 0) {
|
||||
int candidates = 0;
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ public abstract class MerchantResultSlot_scarpetEventMixin {
|
||||
target = "Lnet/minecraft/world/item/trading/Merchant;notifyTrade(Lnet/minecraft/world/item/trading/MerchantOffer;)V")
|
||||
)
|
||||
private void onTrade(Player player, ItemStack stack, CallbackInfo ci) {
|
||||
if(PLAYER_TRADES.isNeeded() && !player.level.isClientSide())
|
||||
if(PLAYER_TRADES.isNeeded() && !player.level().isClientSide())
|
||||
{
|
||||
PLAYER_TRADES.onTrade((ServerPlayer) player, merchant, slots.getActiveOffer());
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public abstract class Player_parrotMixin extends LivingEntity
|
||||
private void onTickMovement(CallbackInfo ci)
|
||||
{
|
||||
boolean parrots_will_drop = !CarpetSettings.persistentParrots || this.abilities.invulnerable;
|
||||
if (!this.level.isClientSide && ((parrots_will_drop && this.fallDistance > 0.5F) || this.isInWater() || this.abilities.flying || isSleeping()))
|
||||
if (!this.level().isClientSide && ((parrots_will_drop && this.fallDistance > 0.5F) || this.isInWater() || this.abilities.flying || isSleeping()))
|
||||
{
|
||||
this.removeEntitiesOnShoulder();
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ public abstract class Player_scarpetEventsMixin extends LivingEntity
|
||||
@Inject(method = "touch", at = @At("HEAD"))
|
||||
private void onEntityCollision(Entity entity, CallbackInfo ci)
|
||||
{
|
||||
if (PLAYER_COLLIDES_WITH_ENTITY.isNeeded() && !level.isClientSide)
|
||||
if (PLAYER_COLLIDES_WITH_ENTITY.isNeeded() && !level().isClientSide)
|
||||
{
|
||||
PLAYER_COLLIDES_WITH_ENTITY.onEntityHandAction((ServerPlayer)(Object)this, entity, null);
|
||||
}
|
||||
@@ -66,7 +66,7 @@ public abstract class Player_scarpetEventsMixin extends LivingEntity
|
||||
@Inject(method = "interactOn", cancellable = true, at = @At("HEAD"))
|
||||
private void doInteract(Entity entity, InteractionHand hand, CallbackInfoReturnable<InteractionResult> cir)
|
||||
{
|
||||
if (!level.isClientSide && PLAYER_INTERACTS_WITH_ENTITY.isNeeded())
|
||||
if (!level().isClientSide && PLAYER_INTERACTS_WITH_ENTITY.isNeeded())
|
||||
{
|
||||
if(PLAYER_INTERACTS_WITH_ENTITY.onEntityHandAction((ServerPlayer) (Object)this, entity, hand)) {
|
||||
cir.setReturnValue(InteractionResult.PASS);
|
||||
@@ -78,7 +78,7 @@ public abstract class Player_scarpetEventsMixin extends LivingEntity
|
||||
@Inject(method = "attack", at = @At("HEAD"), cancellable = true)
|
||||
private void onAttack(Entity target, CallbackInfo ci)
|
||||
{
|
||||
if (!level.isClientSide && PLAYER_ATTACKS_ENTITY.isNeeded() && target.isAttackable())
|
||||
if (!level().isClientSide && PLAYER_ATTACKS_ENTITY.isNeeded() && target.isAttackable())
|
||||
{
|
||||
if(PLAYER_ATTACKS_ENTITY.onEntityHandAction((ServerPlayer) (Object)this, target, null)) {
|
||||
ci.cancel();
|
||||
|
||||
@@ -72,11 +72,11 @@ public abstract class PrimedTntMixin extends Entity implements TntEntityInterfac
|
||||
private void onExplode(CallbackInfo ci)
|
||||
{
|
||||
if (LoggerRegistry.__tnt && logHelper != null)
|
||||
logHelper.onExploded(getX(), getY(), getZ(), this.level.getGameTime());
|
||||
logHelper.onExploded(getX(), getY(), getZ(), this.level().getGameTime());
|
||||
|
||||
if (mergedTNT > 1)
|
||||
for (int i = 0; i < mergedTNT - 1; i++)
|
||||
this.level.explode(this, this.getX(), this.getY() + (double)(this.getBbHeight() / 16.0F),
|
||||
this.level().explode(this, this.getX(), this.getY() + (double)(this.getBbHeight() / 16.0F),
|
||||
this.getZ(),
|
||||
4.0F,
|
||||
Level.ExplosionInteraction.TNT);
|
||||
@@ -90,9 +90,9 @@ public abstract class PrimedTntMixin extends Entity implements TntEntityInterfac
|
||||
// Merge code for combining tnt into a single entity if they happen to exist in the same spot, same fuse, no motion CARPET-XCOM
|
||||
if(CarpetSettings.mergeTNT){
|
||||
Vec3 velocity = getDeltaMovement();
|
||||
if(!level.isClientSide && mergeBool && velocity.x == 0 && velocity.y == 0 && velocity.z == 0){
|
||||
if(!level().isClientSide && mergeBool && velocity.x == 0 && velocity.y == 0 && velocity.z == 0){
|
||||
mergeBool = false;
|
||||
for(Entity entity : level.getEntities(this, this.getBoundingBox())){
|
||||
for(Entity entity : level().getEntities(this, this.getBoundingBox())){
|
||||
if(entity instanceof PrimedTnt && !entity.isRemoved()){
|
||||
PrimedTnt entityTNTPrimed = (PrimedTnt)entity;
|
||||
Vec3 tntVelocity = entityTNTPrimed.getDeltaMovement();
|
||||
@@ -113,7 +113,7 @@ public abstract class PrimedTntMixin extends Entity implements TntEntityInterfac
|
||||
{
|
||||
// Merge code, merge only tnt that have had a chance to move CARPET-XCOM
|
||||
Vec3 velocity = getDeltaMovement();
|
||||
if(!level.isClientSide && (velocity.y != 0 || velocity.x != 0 || velocity.z != 0)){
|
||||
if(!level().isClientSide && (velocity.y != 0 || velocity.x != 0 || velocity.z != 0)){
|
||||
mergeBool = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ public class ServerGamePacketListenerImplMixin
|
||||
// We should force onto the main thread here
|
||||
// ServerNetworkHandler.handleData can possibly mutate data that isn't
|
||||
// thread safe, and also allows for client commands to be executed
|
||||
PacketUtils.ensureRunningOnSameThread(packet, (ServerGamePacketListener) this, player.getLevel());
|
||||
PacketUtils.ensureRunningOnSameThread(packet, (ServerGamePacketListener) this, player.serverLevel());
|
||||
ServerNetworkHandler.handleData(packet.getData(), player);
|
||||
ci.cancel();
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ public abstract class ServerPlayer_scarpetEventMixin extends Player implements S
|
||||
private void logPreviousCoordinates(ServerLevel serverWorld, CallbackInfoReturnable<Entity> cir)
|
||||
{
|
||||
previousLocation = position();
|
||||
previousDimension = level.dimension(); //dimension type
|
||||
previousDimension = level().dimension(); //dimension type
|
||||
}
|
||||
|
||||
@Inject(method = "changeDimension", at = @At("RETURN"))
|
||||
|
||||
@@ -14,7 +14,7 @@ import net.minecraft.world.level.LightLayer;
|
||||
import net.minecraft.world.level.chunk.DataLayer;
|
||||
import net.minecraft.world.level.chunk.LightChunkGetter;
|
||||
import net.minecraft.world.level.lighting.BlockLightSectionStorage.BlockDataLayerStorageMap;
|
||||
import net.minecraft.world.level.lighting.LayerLightEngine;
|
||||
import net.minecraft.world.level.lighting.LightEngine;
|
||||
import net.minecraft.world.level.lighting.LayerLightSectionStorage;
|
||||
import net.minecraft.world.level.lighting.SkyLightSectionStorage;
|
||||
|
||||
@@ -26,7 +26,7 @@ public abstract class SkyLightSectionStorage_scarpetChunkCreationMixin extends L
|
||||
super(lightType, chunkProvider, lightData);
|
||||
}
|
||||
|
||||
@Shadow
|
||||
/*@Shadow
|
||||
@Final
|
||||
private LongSet sectionsToAddSourcesTo;
|
||||
|
||||
@@ -37,10 +37,11 @@ public abstract class SkyLightSectionStorage_scarpetChunkCreationMixin extends L
|
||||
@Shadow
|
||||
@Final
|
||||
private LongSet sectionsWithSources;
|
||||
*/
|
||||
|
||||
@Shadow protected abstract boolean isAboveData(final long pos);
|
||||
|
||||
@Shadow protected abstract boolean lightOnInSection(final long sectionPos);
|
||||
//@Shadow protected abstract boolean lightOnInSection(final long sectionPos);
|
||||
|
||||
@Override
|
||||
public void processRemoveLightData(final long cPos)
|
||||
@@ -48,16 +49,18 @@ public abstract class SkyLightSectionStorage_scarpetChunkCreationMixin extends L
|
||||
for (int y = -1; y < 17; ++y)
|
||||
{
|
||||
final long sectionPos = SectionPos.asLong(SectionPos.x(cPos), y, SectionPos.z(cPos));
|
||||
|
||||
/* do something with this later
|
||||
this.sectionsToAddSourcesTo.remove(sectionPos);
|
||||
this.sectionsToRemoveSourcesFrom.remove(sectionPos);
|
||||
|
||||
this.sectionsWithSources.remove(sectionPos);
|
||||
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processRelight(final LayerLightEngine<?, ?> lightProvider, final long cPos)
|
||||
public void processRelight(final LightEngine<?, ?> lightProvider, final long cPos)
|
||||
{
|
||||
final DynamicGraphMinFixedPoint_resetChunkInterface levelPropagator = (DynamicGraphMinFixedPoint_resetChunkInterface) lightProvider;
|
||||
|
||||
@@ -114,4 +117,10 @@ public abstract class SkyLightSectionStorage_scarpetChunkCreationMixin extends L
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightLevelByLong(long blockPos)
|
||||
{
|
||||
return getLightValue(blockPos);
|
||||
}
|
||||
}
|
||||
+12
-4
@@ -35,6 +35,8 @@ public abstract class ThreadedLevelLightEngine_scarpetChunkCreationMixin extends
|
||||
@Final
|
||||
private ChunkMap chunkMap;
|
||||
|
||||
//@Shadow public abstract void propagateLightSources(final ChunkPos chunkPos);
|
||||
|
||||
@Override
|
||||
@Invoker("updateChunkStatus")
|
||||
public abstract void invokeUpdateChunkStatus(ChunkPos pos);
|
||||
@@ -46,7 +48,7 @@ public abstract class ThreadedLevelLightEngine_scarpetChunkCreationMixin extends
|
||||
chunk.setLightCorrect(false);
|
||||
|
||||
this.addTask(pos.x, pos.z, () -> 0, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> {
|
||||
super.enableLightSources(pos, false);
|
||||
super.setLightEnabled(pos, false);
|
||||
((Lighting_scarpetChunkCreationInterface) this).removeLightData(SectionPos.getZeroNode(SectionPos.asLong(pos.x, 0, pos.z)));
|
||||
},
|
||||
() -> "Remove light data " + pos
|
||||
@@ -58,8 +60,14 @@ public abstract class ThreadedLevelLightEngine_scarpetChunkCreationMixin extends
|
||||
{
|
||||
final ChunkPos pos = chunk.getPos();
|
||||
|
||||
this.addTask(pos.x, pos.z, () -> 0, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> {
|
||||
super.enableLightSources(pos, true);
|
||||
propagateLightSources(pos);
|
||||
/*this.addTask(pos.x, pos.z, () -> 0, ThreadedLevelLightEngine.TaskType.PRE_UPDATE, Util.name(() -> {
|
||||
super.setLightEnabled(pos, true);
|
||||
|
||||
chunk.findBlockLightSources((lightPos, state) -> {
|
||||
final int lightEmission = state.getLightEmission();
|
||||
enqueueIncrease(lightPos.asLong(), LightEngine.QueueEntry.increaseLightFromEmission(lightEmission, isEmptyShape(state)));
|
||||
});
|
||||
|
||||
chunk.getLights().forEach(
|
||||
blockPos -> super.onBlockEmissionIncrease(blockPos, chunk.getLightEmission(blockPos))
|
||||
@@ -68,7 +76,7 @@ public abstract class ThreadedLevelLightEngine_scarpetChunkCreationMixin extends
|
||||
((Lighting_scarpetChunkCreationInterface) this).relight(SectionPos.getZeroNode(SectionPos.asLong(pos.x, 0, pos.z)));
|
||||
},
|
||||
() -> "Relight chunk " + pos
|
||||
));
|
||||
));*/
|
||||
|
||||
return CompletableFuture.runAsync(
|
||||
Util.name(() -> {
|
||||
|
||||
@@ -16,7 +16,11 @@ import org.spongepowered.asm.mixin.Shadow;
|
||||
@Mixin(ThreadedLevelLightEngine.class)
|
||||
public abstract class ThreadedLevelLightEngine_scarpetMixin extends LevelLightEngine implements ServerLightingProviderInterface
|
||||
{
|
||||
@Shadow public abstract void checkBlock(BlockPos pos);
|
||||
//@Shadow public abstract void checkBlock(BlockPos pos);
|
||||
|
||||
//@Shadow public abstract void setLightEnabled(final ChunkPos chunkPos, final boolean bl);
|
||||
|
||||
//@Shadow public abstract void propagateLightSources(final ChunkPos chunkPos);
|
||||
|
||||
public ThreadedLevelLightEngine_scarpetMixin(LightChunkGetter chunkProvider, boolean hasBlockLight, boolean hasSkyLight)
|
||||
{
|
||||
@@ -34,18 +38,19 @@ public abstract class ThreadedLevelLightEngine_scarpetMixin extends LevelLightEn
|
||||
//ChunkPos pos = new ChunkPos(x, z);
|
||||
int j;
|
||||
for(j = -1; j < 17; ++j) { // skip some recomp
|
||||
super.queueSectionData(LightLayer.BLOCK, SectionPos.of(pos, j), new DataLayer(), false);
|
||||
super.queueSectionData(LightLayer.SKY, SectionPos.of(pos, j), new DataLayer(), false);
|
||||
super.queueSectionData(LightLayer.BLOCK, SectionPos.of(pos, j), new DataLayer());
|
||||
super.queueSectionData(LightLayer.SKY, SectionPos.of(pos, j), new DataLayer());
|
||||
}
|
||||
for(j = 0; j < 16; ++j) {
|
||||
super.updateSectionStatus(SectionPos.of(pos, j), true);
|
||||
}
|
||||
|
||||
super.enableLightSources(pos, true);
|
||||
setLightEnabled(pos, true);
|
||||
|
||||
chunk.getLights().forEach((blockPos) -> {
|
||||
super.onBlockEmissionIncrease(blockPos, chunk.getLightEmission(blockPos));
|
||||
});
|
||||
propagateLightSources(pos);
|
||||
// chunk.getLights().forEach((blockPos) -> {
|
||||
// super.onBlockEmissionIncrease(blockPos, chunk.getLightEmission(blockPos));
|
||||
// });
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ public abstract class Villager_aiMixin extends AbstractVillager
|
||||
//boolean work = false;
|
||||
boolean sleep = false;
|
||||
boolean panic = this.brain.isActive(Activity.PANIC);
|
||||
long currentTime = this.level.getGameTime();
|
||||
long currentTime = this.level().getGameTime();
|
||||
if (optional_11.isPresent()) {
|
||||
sleep = (currentTime - optional_11.get()) < 24000L;
|
||||
}
|
||||
@@ -123,7 +123,7 @@ public abstract class Villager_aiMixin extends AbstractVillager
|
||||
if (itemStack_1.getItem() == Items.EMERALD)
|
||||
{
|
||||
GlobalPos bedPos = this.brain.getMemory(MemoryModuleType.HOME).orElse(null);
|
||||
if (bedPos == null || bedPos.dimension() != level.dimension()) // get Dimension
|
||||
if (bedPos == null || bedPos.dimension() != level().dimension()) // get Dimension
|
||||
{
|
||||
setUnhappy();
|
||||
((ServerLevel) getCommandSenderWorld()).sendParticles(new BlockParticleOption(ParticleTypes.BLOCK_MARKER, Blocks.BARRIER.defaultBlockState()), getX(), getY() + getEyeHeight() + 1, getZ(), 1, 0.1, 0.1, 0.1, 0.0);
|
||||
|
||||
@@ -85,7 +85,7 @@ public class EntityPlayerMPFake extends ServerPlayer
|
||||
{
|
||||
player.getServer().getPlayerList().remove(player);
|
||||
player.connection.disconnect(Component.translatable("multiplayer.disconnect.duplicate_login"));
|
||||
ServerLevel worldIn = player.getLevel();//.getWorld(player.dimension);
|
||||
ServerLevel worldIn = player.serverLevel();//.getWorld(player.dimension);
|
||||
GameProfile gameprofile = player.getGameProfile();
|
||||
EntityPlayerMPFake playerShadow = new EntityPlayerMPFake(server, worldIn, gameprofile, true);
|
||||
playerShadow.setChatSession(player.getChatSession());
|
||||
@@ -99,7 +99,7 @@ public class EntityPlayerMPFake extends ServerPlayer
|
||||
playerShadow.entityData.set(DATA_PLAYER_MODE_CUSTOMISATION, player.getEntityData().get(DATA_PLAYER_MODE_CUSTOMISATION));
|
||||
|
||||
|
||||
server.getPlayerList().broadcastAll(new ClientboundRotateHeadPacket(playerShadow, (byte) (player.yHeadRot * 256 / 360)), playerShadow.level.dimension());
|
||||
server.getPlayerList().broadcastAll(new ClientboundRotateHeadPacket(playerShadow, (byte) (player.yHeadRot * 256 / 360)), playerShadow.level().dimension());
|
||||
server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, playerShadow));
|
||||
//player.world.getChunkManager().updatePosition(playerShadow);
|
||||
playerShadow.getAbilities().flying = player.getAbilities().flying;
|
||||
@@ -143,7 +143,7 @@ public class EntityPlayerMPFake extends ServerPlayer
|
||||
if (this.getServer().getTickCount() % 10 == 0)
|
||||
{
|
||||
this.connection.resetPosition();
|
||||
this.getLevel().getChunkSource().move(this);
|
||||
this.serverLevel().getChunkSource().move(this);
|
||||
}
|
||||
try
|
||||
{
|
||||
|
||||
@@ -591,7 +591,7 @@ public class CarpetEventServer
|
||||
return handler.call(() ->
|
||||
Arrays.asList(
|
||||
new EntityValue(player),
|
||||
ValueConversions.of(itemstack, player.getLevel().registryAccess()),
|
||||
ValueConversions.of(itemstack, player.level().registryAccess()),
|
||||
StringValue.of(enumhand == InteractionHand.MAIN_HAND ? "mainhand" : "offhand")
|
||||
), player::createCommandSourceStack);
|
||||
}
|
||||
@@ -604,7 +604,7 @@ public class CarpetEventServer
|
||||
return handler.call(() ->
|
||||
Arrays.asList(
|
||||
new EntityValue(player),
|
||||
new BlockValue(null, player.getLevel(), blockpos),
|
||||
new BlockValue(null, player.serverLevel(), blockpos),
|
||||
StringValue.of(facing.getName())
|
||||
), player::createCommandSourceStack);
|
||||
}
|
||||
@@ -622,9 +622,9 @@ public class CarpetEventServer
|
||||
Vec3 vec3d = hitRes.getLocation().subtract(blockpos.getX(), blockpos.getY(), blockpos.getZ());
|
||||
return Arrays.asList(
|
||||
new EntityValue(player),
|
||||
ValueConversions.of(itemstack, player.getLevel().registryAccess()),
|
||||
ValueConversions.of(itemstack, player.level().registryAccess()),
|
||||
StringValue.of(enumhand == InteractionHand.MAIN_HAND ? "mainhand" : "offhand"),
|
||||
new BlockValue(null, player.getLevel(), blockpos),
|
||||
new BlockValue(null, player.serverLevel(), blockpos),
|
||||
StringValue.of(enumfacing.getName()),
|
||||
ListValue.of(
|
||||
new NumericValue(vec3d.x),
|
||||
@@ -648,7 +648,7 @@ public class CarpetEventServer
|
||||
return Arrays.asList(
|
||||
new EntityValue(player),
|
||||
StringValue.of(enumhand == InteractionHand.MAIN_HAND ? "mainhand" : "offhand"),
|
||||
new BlockValue(null, player.getLevel(), blockpos),
|
||||
new BlockValue(null, player.serverLevel(), blockpos),
|
||||
StringValue.of(enumfacing.getName()),
|
||||
ListValue.of(
|
||||
new NumericValue(vec3d.x),
|
||||
@@ -667,9 +667,9 @@ public class CarpetEventServer
|
||||
{
|
||||
return handler.call(() -> Arrays.asList(
|
||||
new EntityValue(player),
|
||||
ValueConversions.of(itemstack, player.getLevel().registryAccess()),
|
||||
ValueConversions.of(itemstack, player.level().registryAccess()),
|
||||
StringValue.of(enumhand == InteractionHand.MAIN_HAND ? "mainhand" : "offhand"),
|
||||
new BlockValue(null, player.getLevel(), pos)
|
||||
new BlockValue(null, player.serverLevel(), pos)
|
||||
), player::createCommandSourceStack);
|
||||
}
|
||||
};
|
||||
@@ -680,9 +680,9 @@ public class CarpetEventServer
|
||||
{
|
||||
handler.call(() -> Arrays.asList(
|
||||
new EntityValue(player),
|
||||
ValueConversions.of(itemstack, player.getLevel().registryAccess()),
|
||||
ValueConversions.of(itemstack, player.level().registryAccess()),
|
||||
StringValue.of(enumhand == InteractionHand.MAIN_HAND ? "mainhand" : "offhand"),
|
||||
new BlockValue(null, player.getLevel(), pos)
|
||||
new BlockValue(null, player.serverLevel(), pos)
|
||||
), player::createCommandSourceStack);
|
||||
return false;
|
||||
}
|
||||
@@ -693,7 +693,7 @@ public class CarpetEventServer
|
||||
public boolean onBlockBroken(ServerPlayer player, BlockPos pos, BlockState previousBS)
|
||||
{
|
||||
return handler.call(
|
||||
() -> Arrays.asList(new EntityValue(player), new BlockValue(previousBS, player.getLevel(), pos)),
|
||||
() -> Arrays.asList(new EntityValue(player), new BlockValue(previousBS, player.serverLevel(), pos)),
|
||||
player::createCommandSourceStack
|
||||
);
|
||||
}
|
||||
@@ -713,7 +713,7 @@ public class CarpetEventServer
|
||||
@Override
|
||||
public void onTrade(ServerPlayer player, Merchant merchant, MerchantOffer tradeOffer)
|
||||
{
|
||||
RegistryAccess regs = player.getLevel().registryAccess();
|
||||
RegistryAccess regs = player.level().registryAccess();
|
||||
handler.call(() -> Arrays.asList(
|
||||
new EntityValue(player),
|
||||
merchant instanceof final AbstractVillager villager ? new EntityValue(villager) : Value.NULL,
|
||||
@@ -728,7 +728,7 @@ public class CarpetEventServer
|
||||
@Override
|
||||
public boolean onItemAction(ServerPlayer player, InteractionHand enumhand, ItemStack itemstack)
|
||||
{
|
||||
handler.call(() -> Arrays.asList(new EntityValue(player), ValueConversions.of(itemstack, player.getLevel().registryAccess())), player::createCommandSourceStack);
|
||||
handler.call(() -> Arrays.asList(new EntityValue(player), ValueConversions.of(itemstack, player.level().registryAccess())), player::createCommandSourceStack);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
@@ -787,7 +787,7 @@ public class CarpetEventServer
|
||||
handler.call(() ->
|
||||
Arrays.asList(
|
||||
new EntityValue(player),
|
||||
ValueConversions.of(itemstack, player.getLevel().registryAccess()),
|
||||
ValueConversions.of(itemstack, player.level().registryAccess()),
|
||||
StringValue.of(enumhand == InteractionHand.MAIN_HAND ? "mainhand" : "offhand")
|
||||
), player::createCommandSourceStack);
|
||||
return false;
|
||||
@@ -802,7 +802,7 @@ public class CarpetEventServer
|
||||
return handler.call(() ->
|
||||
Arrays.asList(
|
||||
new EntityValue(player),
|
||||
ValueConversions.of(itemstack, player.getLevel().registryAccess()),
|
||||
ValueConversions.of(itemstack, player.level().registryAccess()),
|
||||
new StringValue(enumhand == InteractionHand.MAIN_HAND ? "mainhand" : "offhand")
|
||||
), player::createCommandSourceStack);
|
||||
}
|
||||
@@ -999,7 +999,7 @@ public class CarpetEventServer
|
||||
{
|
||||
return;
|
||||
}
|
||||
Registry<StatType<?>> registry = player.getLevel().registryAccess().registryOrThrow(Registries.STAT_TYPE);
|
||||
Registry<StatType<?>> registry = player.level().registryAccess().registryOrThrow(Registries.STAT_TYPE);
|
||||
handler.call(() -> Arrays.asList(
|
||||
new EntityValue(player),
|
||||
NBTSerializableValue.nameFromRegistryId(registry.getKey(stat.getType())),
|
||||
@@ -1105,7 +1105,7 @@ public class CarpetEventServer
|
||||
{
|
||||
handler.call(
|
||||
() -> Collections.singletonList(new EntityValue(entity)),
|
||||
() -> entity.getServer().createCommandSourceStack().withLevel((ServerLevel) entity.level).withPermission(Vanilla.MinecraftServer_getRunPermissionLevel(entity.getServer()))
|
||||
() -> entity.getServer().createCommandSourceStack().withLevel((ServerLevel) entity.level()).withPermission(Vanilla.MinecraftServer_getRunPermissionLevel(entity.getServer()))
|
||||
);
|
||||
}
|
||||
})).collect(Collectors.toUnmodifiableMap(Map.Entry::getKey, Map.Entry::getValue));
|
||||
@@ -1124,7 +1124,7 @@ public class CarpetEventServer
|
||||
{
|
||||
handler.call(
|
||||
() -> Arrays.asList(new EntityValue(entity), BooleanValue.of(created)),
|
||||
() -> entity.getServer().createCommandSourceStack().withLevel((ServerLevel) entity.level).withPermission(Vanilla.MinecraftServer_getRunPermissionLevel(entity.getServer()))
|
||||
() -> entity.getServer().createCommandSourceStack().withLevel((ServerLevel) entity.level()).withPermission(Vanilla.MinecraftServer_getRunPermissionLevel(entity.getServer()))
|
||||
);
|
||||
}
|
||||
}))
|
||||
@@ -1334,7 +1334,7 @@ public class CarpetEventServer
|
||||
valArgs.add(EntityValue.of(player));
|
||||
for (Object o : args)
|
||||
{
|
||||
valArgs.add(ValueConversions.guess(player.getLevel(), o));
|
||||
valArgs.add(ValueConversions.guess(player.serverLevel(), o));
|
||||
}
|
||||
return valArgs;
|
||||
}, player::createCommandSourceStack
|
||||
|
||||
@@ -437,7 +437,7 @@ public class Inventories
|
||||
{
|
||||
// stolen from LookTargetUtil.give((VillagerEntity)owner, droppedStack, (LivingEntity) owner);
|
||||
double dropY = livingEntity.getY() - 0.30000001192092896D + livingEntity.getEyeHeight();
|
||||
item = new ItemEntity(livingEntity.level, livingEntity.getX(), dropY, livingEntity.getZ(), droppedStack);
|
||||
item = new ItemEntity(livingEntity.level(), livingEntity.getX(), dropY, livingEntity.getZ(), droppedStack);
|
||||
Vec3 vec3d = livingEntity.getViewVector(1.0F).normalize().scale(0.3);// new Vec3d(0, 0.3, 0);
|
||||
item.setDeltaMovement(vec3d);
|
||||
item.setDefaultPickUpDelay();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package carpet.script.utils;
|
||||
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import net.minecraft.world.level.material.MapColor;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@@ -89,68 +89,68 @@ public class Colors
|
||||
entry(SoundType.POLISHED_DEEPSLATE, "polished_deepslate")
|
||||
);
|
||||
|
||||
public static final Map<MaterialColor, String> mapColourName = Map.ofEntries(
|
||||
entry(MaterialColor.NONE , "air" ),
|
||||
entry(MaterialColor.GRASS , "grass" ),
|
||||
entry(MaterialColor.SAND , "sand" ),
|
||||
entry(MaterialColor.WOOL , "wool" ),
|
||||
entry(MaterialColor.FIRE , "tnt" ),
|
||||
entry(MaterialColor.ICE , "ice" ),
|
||||
entry(MaterialColor.METAL , "iron" ),
|
||||
entry(MaterialColor.PLANT , "foliage" ),
|
||||
entry(MaterialColor.SNOW , "snow" ),
|
||||
entry(MaterialColor.CLAY , "clay" ),
|
||||
entry(MaterialColor.DIRT , "dirt" ),
|
||||
entry(MaterialColor.STONE , "stone" ),
|
||||
entry(MaterialColor.WATER , "water" ),
|
||||
entry(MaterialColor.WOOD , "wood" ),
|
||||
entry(MaterialColor.QUARTZ , "quartz" ),
|
||||
entry(MaterialColor.COLOR_ORANGE , "adobe" ),
|
||||
entry(MaterialColor.COLOR_MAGENTA , "magenta" ),
|
||||
entry(MaterialColor.COLOR_LIGHT_BLUE, "light_blue"),
|
||||
entry(MaterialColor.COLOR_YELLOW , "yellow" ),
|
||||
entry(MaterialColor.COLOR_LIGHT_GREEN , "lime" ),
|
||||
entry(MaterialColor.COLOR_PINK , "pink" ),
|
||||
entry(MaterialColor.COLOR_GRAY , "gray" ),
|
||||
entry(MaterialColor.COLOR_LIGHT_GRAY, "light_gray"),
|
||||
entry(MaterialColor.COLOR_CYAN , "cyan" ),
|
||||
entry(MaterialColor.COLOR_PURPLE , "purple" ),
|
||||
entry(MaterialColor.COLOR_BLUE , "blue" ),
|
||||
entry(MaterialColor.COLOR_BROWN , "brown" ),
|
||||
entry(MaterialColor.COLOR_GREEN , "green" ),
|
||||
entry(MaterialColor.COLOR_RED , "red" ),
|
||||
entry(MaterialColor.COLOR_BLACK , "black" ),
|
||||
entry(MaterialColor.GOLD , "gold" ),
|
||||
entry(MaterialColor.DIAMOND , "diamond" ),
|
||||
entry(MaterialColor.LAPIS , "lapis" ),
|
||||
entry(MaterialColor.EMERALD , "emerald" ),
|
||||
entry(MaterialColor.PODZOL , "obsidian" ),
|
||||
entry(MaterialColor.NETHER , "netherrack"), //TODO fix these
|
||||
entry(MaterialColor.TERRACOTTA_WHITE , "white_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_ORANGE , "orange_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_MAGENTA , "magenta_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_LIGHT_BLUE, "light_blue_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_YELLOW , "yellow_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_LIGHT_GREEN , "lime_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_PINK , "pink_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_GRAY , "gray_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_LIGHT_GRAY, "light_gray_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_CYAN , "cyan_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_PURPLE , "purple_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_BLUE , "blue_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_BROWN , "brown_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_GREEN , "green_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_RED , "red_terracotta" ),
|
||||
entry(MaterialColor.TERRACOTTA_BLACK , "black_terracotta" ),
|
||||
entry(MaterialColor.CRIMSON_NYLIUM , "crimson_nylium" ),
|
||||
entry(MaterialColor.CRIMSON_STEM , "crimson_stem" ),
|
||||
entry(MaterialColor.CRIMSON_HYPHAE , "crimson_hyphae" ),
|
||||
entry(MaterialColor.WARPED_NYLIUM , "warped_nylium" ),
|
||||
entry(MaterialColor.WARPED_STEM , "warped_stem" ),
|
||||
entry(MaterialColor.WARPED_HYPHAE , "warped_hyphae" ),
|
||||
entry(MaterialColor.WARPED_WART_BLOCK , "warped_wart" ),
|
||||
entry(MaterialColor.DEEPSLATE , "deepslate" ),
|
||||
entry(MaterialColor.RAW_IRON , "raw_iron" ),
|
||||
entry(MaterialColor.GLOW_LICHEN , "glow_lichen" )
|
||||
public static final Map<MapColor, String> mapColourName = Map.ofEntries(
|
||||
entry(MapColor.NONE , "air" ),
|
||||
entry(MapColor.GRASS , "grass" ),
|
||||
entry(MapColor.SAND , "sand" ),
|
||||
entry(MapColor.WOOL , "wool" ),
|
||||
entry(MapColor.FIRE , "tnt" ),
|
||||
entry(MapColor.ICE , "ice" ),
|
||||
entry(MapColor.METAL , "iron" ),
|
||||
entry(MapColor.PLANT , "foliage" ),
|
||||
entry(MapColor.SNOW , "snow" ),
|
||||
entry(MapColor.CLAY , "clay" ),
|
||||
entry(MapColor.DIRT , "dirt" ),
|
||||
entry(MapColor.STONE , "stone" ),
|
||||
entry(MapColor.WATER , "water" ),
|
||||
entry(MapColor.WOOD , "wood" ),
|
||||
entry(MapColor.QUARTZ , "quartz" ),
|
||||
entry(MapColor.COLOR_ORANGE , "adobe" ),
|
||||
entry(MapColor.COLOR_MAGENTA , "magenta" ),
|
||||
entry(MapColor.COLOR_LIGHT_BLUE, "light_blue"),
|
||||
entry(MapColor.COLOR_YELLOW , "yellow" ),
|
||||
entry(MapColor.COLOR_LIGHT_GREEN , "lime" ),
|
||||
entry(MapColor.COLOR_PINK , "pink" ),
|
||||
entry(MapColor.COLOR_GRAY , "gray" ),
|
||||
entry(MapColor.COLOR_LIGHT_GRAY, "light_gray"),
|
||||
entry(MapColor.COLOR_CYAN , "cyan" ),
|
||||
entry(MapColor.COLOR_PURPLE , "purple" ),
|
||||
entry(MapColor.COLOR_BLUE , "blue" ),
|
||||
entry(MapColor.COLOR_BROWN , "brown" ),
|
||||
entry(MapColor.COLOR_GREEN , "green" ),
|
||||
entry(MapColor.COLOR_RED , "red" ),
|
||||
entry(MapColor.COLOR_BLACK , "black" ),
|
||||
entry(MapColor.GOLD , "gold" ),
|
||||
entry(MapColor.DIAMOND , "diamond" ),
|
||||
entry(MapColor.LAPIS , "lapis" ),
|
||||
entry(MapColor.EMERALD , "emerald" ),
|
||||
entry(MapColor.PODZOL , "obsidian" ),
|
||||
entry(MapColor.NETHER , "netherrack"), //TODO fix these
|
||||
entry(MapColor.TERRACOTTA_WHITE , "white_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_ORANGE , "orange_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_MAGENTA , "magenta_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_LIGHT_BLUE, "light_blue_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_YELLOW , "yellow_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_LIGHT_GREEN , "lime_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_PINK , "pink_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_GRAY , "gray_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_LIGHT_GRAY, "light_gray_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_CYAN , "cyan_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_PURPLE , "purple_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_BLUE , "blue_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_BROWN , "brown_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_GREEN , "green_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_RED , "red_terracotta" ),
|
||||
entry(MapColor.TERRACOTTA_BLACK , "black_terracotta" ),
|
||||
entry(MapColor.CRIMSON_NYLIUM , "crimson_nylium" ),
|
||||
entry(MapColor.CRIMSON_STEM , "crimson_stem" ),
|
||||
entry(MapColor.CRIMSON_HYPHAE , "crimson_hyphae" ),
|
||||
entry(MapColor.WARPED_NYLIUM , "warped_nylium" ),
|
||||
entry(MapColor.WARPED_STEM , "warped_stem" ),
|
||||
entry(MapColor.WARPED_HYPHAE , "warped_hyphae" ),
|
||||
entry(MapColor.WARPED_WART_BLOCK , "warped_wart" ),
|
||||
entry(MapColor.DEEPSLATE , "deepslate" ),
|
||||
entry(MapColor.RAW_IRON , "raw_iron" ),
|
||||
entry(MapColor.GLOW_LICHEN , "glow_lichen" )
|
||||
);
|
||||
}
|
||||
@@ -12,12 +12,12 @@ public class EntityTools
|
||||
*/
|
||||
public static void genericJump(Entity e)
|
||||
{
|
||||
if (!e.isOnGround() && !e.isInWaterOrBubble() && !e.isInLava())
|
||||
if (!e.onGround() && !e.isInWaterOrBubble() && !e.isInLava())
|
||||
{
|
||||
return;
|
||||
}
|
||||
float m = e.level.getBlockState(e.blockPosition()).getBlock().getJumpFactor();
|
||||
float g = e.level.getBlockState(BlockPos.containing(e.getX(), e.getBoundingBox().minY - 0.5000001D, e.getZ())).getBlock().getJumpFactor();
|
||||
float m = e.level().getBlockState(e.blockPosition()).getBlock().getJumpFactor();
|
||||
float g = e.level().getBlockState(BlockPos.containing(e.getX(), e.getBoundingBox().minY - 0.5000001D, e.getZ())).getBlock().getJumpFactor();
|
||||
float jumpVelocityMultiplier = m == 1.0D ? g : m;
|
||||
float jumpStrength = (0.42F * jumpVelocityMultiplier);
|
||||
Vec3 vec3d = e.getDeltaMovement();
|
||||
|
||||
@@ -767,15 +767,15 @@ public class ShapeDispatcher
|
||||
{
|
||||
return;
|
||||
}
|
||||
particle = getParticleData("block_marker " + blocks.getKey(Block.byItem(this.item.getItem())), p.level.registryAccess());
|
||||
particle = getParticleData("block_marker " + blocks.getKey(Block.byItem(this.item.getItem())), p.level().registryAccess());
|
||||
}
|
||||
else
|
||||
{
|
||||
particle = getParticleData("block_marker " + blocks.getKey(this.blockState.getBlock()), p.level.registryAccess());
|
||||
particle = getParticleData("block_marker " + blocks.getKey(this.blockState.getBlock()), p.level().registryAccess());
|
||||
}
|
||||
|
||||
Vec3 v = relativiseRender(p.level, this.pos, 0);
|
||||
p.getLevel().sendParticles(p, particle, true, v.x, v.y, v.z, 1, 0.0, 0.0, 0.0, 0.0);
|
||||
Vec3 v = relativiseRender(p.level(), this.pos, 0);
|
||||
p.serverLevel().sendParticles(p, particle, true, v.x, v.y, v.z, 1, 0.0, 0.0, 0.0, 0.0);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -868,14 +868,14 @@ public class ShapeDispatcher
|
||||
double density = Math.max(2.0, from.distanceTo(to) / 50 / (a + 0.1));
|
||||
return p ->
|
||||
{
|
||||
if (p.level.dimension() == shapeDimension)
|
||||
if (p.level().dimension() == shapeDimension)
|
||||
{
|
||||
particleMesh(
|
||||
Collections.singletonList(p),
|
||||
replacementParticle(p.level.registryAccess()),
|
||||
replacementParticle(p.level().registryAccess()),
|
||||
density,
|
||||
relativiseRender(p.level, from, 0),
|
||||
relativiseRender(p.level, to, 0)
|
||||
relativiseRender(p.level(), from, 0),
|
||||
relativiseRender(p.level(), to, 0)
|
||||
);
|
||||
}
|
||||
};
|
||||
@@ -966,19 +966,19 @@ public class ShapeDispatcher
|
||||
Vec3 vecA = vertexList.get(i);
|
||||
if (relative.get(i))
|
||||
{
|
||||
vecA = relativiseRender(p.level, vecA, 0);
|
||||
vecA = relativiseRender(p.level(), vecA, 0);
|
||||
}
|
||||
i++;
|
||||
Vec3 vecB = vertexList.get(i);
|
||||
if (relative.get(i))
|
||||
{
|
||||
vecB = relativiseRender(p.level, vecB, 0);
|
||||
vecB = relativiseRender(p.level(), vecB, 0);
|
||||
}
|
||||
i++;
|
||||
Vec3 vecC = vertexList.get(i);
|
||||
if (relative.get(i))
|
||||
{
|
||||
vecC = relativiseRender(p.level, vecC, 0);
|
||||
vecC = relativiseRender(p.level(), vecC, 0);
|
||||
}
|
||||
alterDrawTriangles(vecA, vecB, vecC);
|
||||
}
|
||||
@@ -987,19 +987,19 @@ public class ShapeDispatcher
|
||||
Vec3 vec0 = vertexList.get(0);
|
||||
if (relative.get(0))
|
||||
{
|
||||
vec0 = relativiseRender(p.level, vec0, 0);
|
||||
vec0 = relativiseRender(p.level(), vec0, 0);
|
||||
}
|
||||
Vec3 vec1 = vertexList.get(1);
|
||||
if (relative.get(1))
|
||||
{
|
||||
vec1 = relativiseRender(p.level, vec1, 0);
|
||||
vec1 = relativiseRender(p.level(), vec1, 0);
|
||||
}
|
||||
for (int i = 2; i < vertexList.size(); i++)
|
||||
{
|
||||
Vec3 vec = vertexList.get(i);
|
||||
if (relative.get(i))
|
||||
{
|
||||
vec = relativiseRender(p.level, vec, 0);
|
||||
vec = relativiseRender(p.level(), vec, 0);
|
||||
}
|
||||
alterDrawTriangles(vec0, vec1, vec);
|
||||
vec1 = vec;
|
||||
@@ -1009,19 +1009,19 @@ public class ShapeDispatcher
|
||||
Vec3 vecA = vertexList.get(0);
|
||||
if (relative.get(0))
|
||||
{
|
||||
vecA = relativiseRender(p.level, vecA, 0);
|
||||
vecA = relativiseRender(p.level(), vecA, 0);
|
||||
}
|
||||
Vec3 vecB = vertexList.get(1);
|
||||
if (relative.get(1))
|
||||
{
|
||||
vecB = relativiseRender(p.level, vecB, 0);
|
||||
vecB = relativiseRender(p.level(), vecB, 0);
|
||||
}
|
||||
for (int i = 2; i < vertexList.size(); i++)
|
||||
{
|
||||
Vec3 vec = vertexList.get(i);
|
||||
if (relative.get(i))
|
||||
{
|
||||
vec = relativiseRender(p.level, vec, 0);
|
||||
vec = relativiseRender(p.level(), vec, 0);
|
||||
}
|
||||
alterDrawTriangles(vecA, vecB, vec);
|
||||
vecA = vecB;
|
||||
@@ -1061,16 +1061,16 @@ public class ShapeDispatcher
|
||||
public Consumer<ServerPlayer> alternative()
|
||||
{
|
||||
return p -> {
|
||||
if (p.level.dimension() != this.shapeDimension)
|
||||
if (p.level().dimension() != this.shapeDimension)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (fa > 0.0f)
|
||||
{
|
||||
ParticleOptions locparticledata = getParticleData(String.format(Locale.ROOT, "dust %.1f %.1f %.1f %.1f", fr, fg, fb, fa), p.level.registryAccess());
|
||||
ParticleOptions locparticledata = getParticleData(String.format(Locale.ROOT, "dust %.1f %.1f %.1f %.1f", fr, fg, fb, fa), p.level().registryAccess());
|
||||
for (Vec3 v : getAlterPoint(p))
|
||||
{
|
||||
p.getLevel().sendParticles(p, locparticledata, true,
|
||||
p.serverLevel().sendParticles(p, locparticledata, true,
|
||||
v.x, v.y, v.z, 1,
|
||||
0.0, 0.0, 0.0, 0.0);
|
||||
}
|
||||
@@ -1205,13 +1205,13 @@ public class ShapeDispatcher
|
||||
double density = Math.max(2.0, from.distanceTo(to) / 50) / (a + 0.1);
|
||||
return p ->
|
||||
{
|
||||
if (p.level.dimension() == shapeDimension)
|
||||
if (p.level().dimension() == shapeDimension)
|
||||
{
|
||||
drawParticleLine(
|
||||
Collections.singletonList(p),
|
||||
replacementParticle(p.level.registryAccess()),
|
||||
relativiseRender(p.level, from, 0),
|
||||
relativiseRender(p.level, to, 0),
|
||||
replacementParticle(p.level().registryAccess()),
|
||||
relativiseRender(p.level(), from, 0),
|
||||
relativiseRender(p.level(), to, 0),
|
||||
density
|
||||
);
|
||||
}
|
||||
@@ -1279,8 +1279,8 @@ public class ShapeDispatcher
|
||||
return p ->
|
||||
{
|
||||
int partno = Math.min(1000, 20 * subdivisions);
|
||||
RandomSource rand = p.level.getRandom();
|
||||
ServerLevel world = p.getLevel();
|
||||
RandomSource rand = p.level().getRandom();
|
||||
ServerLevel world = p.serverLevel();
|
||||
ParticleOptions particle = replacementParticle(world.registryAccess());
|
||||
|
||||
Vec3 ccenter = relativiseRender(world, center, 0);
|
||||
@@ -1376,8 +1376,8 @@ public class ShapeDispatcher
|
||||
return p ->
|
||||
{
|
||||
int partno = (int) Math.min(1000, Math.sqrt(20 * subdivisions * (1 + height)));
|
||||
RandomSource rand = p.level.getRandom();
|
||||
ServerLevel world = p.getLevel();
|
||||
RandomSource rand = p.level().getRandom();
|
||||
ServerLevel world = p.serverLevel();
|
||||
ParticleOptions particle = replacementParticle(world.registryAccess());
|
||||
|
||||
Vec3 ccenter = relativiseRender(world, center, 0);
|
||||
@@ -2183,7 +2183,7 @@ public class ShapeDispatcher
|
||||
int parts = 0;
|
||||
for (ServerPlayer player : playerList)
|
||||
{
|
||||
ServerLevel world = player.getLevel();
|
||||
ServerLevel world = player.serverLevel();
|
||||
world.sendParticles(player, particle, true,
|
||||
(towards.x) / 2 + from.x, (towards.y) / 2 + from.y, (towards.z) / 2 + from.z, particles / 3,
|
||||
towards.x / 6, towards.y / 6, towards.z / 6, 0.0);
|
||||
@@ -2200,7 +2200,7 @@ public class ShapeDispatcher
|
||||
int dev = 2 * divider;
|
||||
for (ServerPlayer player : playerList)
|
||||
{
|
||||
ServerLevel world = player.getLevel();
|
||||
ServerLevel world = player.serverLevel();
|
||||
world.sendParticles(player, particle, true,
|
||||
(towards.x) / center + from.x, (towards.y) / center + from.y, (towards.z) / center + from.z, particles / divider,
|
||||
towards.x / dev, towards.y / dev, towards.z / dev, 0.0);
|
||||
@@ -2224,7 +2224,7 @@ public class ShapeDispatcher
|
||||
int pcount = 0;
|
||||
if (distance < 100)
|
||||
{
|
||||
RandomSource rand = players.get(0).level.random;
|
||||
RandomSource rand = players.get(0).level().random;
|
||||
int particles = (int) (distance / density) + 1;
|
||||
Vec3 towards = to.subtract(from);
|
||||
for (int i = 0; i < particles; i++)
|
||||
@@ -2232,7 +2232,7 @@ public class ShapeDispatcher
|
||||
Vec3 at = from.add(towards.scale(rand.nextDouble()));
|
||||
for (ServerPlayer player : players)
|
||||
{
|
||||
player.getLevel().sendParticles(player, particle, true,
|
||||
player.serverLevel().sendParticles(player, particle, true,
|
||||
at.x, at.y, at.z, 1,
|
||||
0.0, 0.0, 0.0, 0.0);
|
||||
pcount++;
|
||||
@@ -2253,7 +2253,7 @@ public class ShapeDispatcher
|
||||
{
|
||||
for (ServerPlayer player : players)
|
||||
{
|
||||
player.getLevel().sendParticles(player, particle, true,
|
||||
player.serverLevel().sendParticles(player, particle, true,
|
||||
delta.x + from.x, delta.y + from.y, delta.z + from.z, 1,
|
||||
0.0, 0.0, 0.0, 0.0);
|
||||
pcount++;
|
||||
|
||||
@@ -66,16 +66,16 @@ public class SnoopyCommandSource extends CommandSourceStack
|
||||
public SnoopyCommandSource(ServerPlayer player, Component[] error, List<Component> output)
|
||||
{
|
||||
super(player, player.position(), player.getRotationVector(),
|
||||
player.level instanceof final ServerLevel serverLevel ? serverLevel : null,
|
||||
player.level() instanceof final ServerLevel serverLevel ? serverLevel : null,
|
||||
player.server.getProfilePermissions(player.getGameProfile()), player.getName().getString(), player.getDisplayName(),
|
||||
player.level.getServer(), player);
|
||||
player.level().getServer(), player);
|
||||
this.output = player;
|
||||
this.position = player.position();
|
||||
this.world = player.level instanceof final ServerLevel serverLevel ? serverLevel : null;
|
||||
this.world = player.level() instanceof final ServerLevel serverLevel ? serverLevel : null;
|
||||
this.level = player.server.getProfilePermissions(player.getGameProfile());
|
||||
this.simpleName = player.getName().getString();
|
||||
this.name = player.getDisplayName();
|
||||
this.server = player.level.getServer();
|
||||
this.server = player.level().getServer();
|
||||
this.entity = player;
|
||||
this.resultConsumer = (ctx, succ, res) -> {
|
||||
};
|
||||
|
||||
@@ -31,7 +31,7 @@ public class Tracer
|
||||
Vec3 pos = source.getEyePosition(partialTicks);
|
||||
Vec3 rotation = source.getViewVector(partialTicks);
|
||||
Vec3 reachEnd = pos.add(rotation.x * reach, rotation.y * reach, rotation.z * reach);
|
||||
return source.level.clip(new ClipContext(pos, reachEnd, ClipContext.Block.OUTLINE, fluids ?
|
||||
return source.level().clip(new ClipContext(pos, reachEnd, ClipContext.Block.OUTLINE, fluids ?
|
||||
ClipContext.Fluid.ANY : ClipContext.Fluid.NONE, source));
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Tracer
|
||||
|
||||
public static EntityHitResult rayTraceEntities(Entity source, Vec3 start, Vec3 end, AABB box, Predicate<Entity> predicate, double maxSqDistance)
|
||||
{
|
||||
Level world = source.level;
|
||||
Level world = source.level();
|
||||
double targetDistance = maxSqDistance;
|
||||
Entity target = null;
|
||||
Vec3 targetHitPos = null;
|
||||
|
||||
@@ -165,7 +165,7 @@ public class WorldTools
|
||||
List<ServerPlayer> players = world.getChunkSource().chunkMap.getPlayers(chunkPos, false);
|
||||
if (!players.isEmpty())
|
||||
{
|
||||
ClientboundLevelChunkWithLightPacket packet = new ClientboundLevelChunkWithLightPacket(worldChunk, world.getLightEngine(), null, null, false); // false seems to update neighbours as well.
|
||||
ClientboundLevelChunkWithLightPacket packet = new ClientboundLevelChunkWithLightPacket(worldChunk, world.getLightEngine(), null, null); // false seems to update neighbours as well.
|
||||
players.forEach(p -> p.connection.send(packet));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -434,12 +434,12 @@ public class EntityValue extends Value
|
||||
put("motion_x", (e, a) -> new NumericValue(e.getDeltaMovement().x));
|
||||
put("motion_y", (e, a) -> new NumericValue(e.getDeltaMovement().y));
|
||||
put("motion_z", (e, a) -> new NumericValue(e.getDeltaMovement().z));
|
||||
put("on_ground", (e, a) -> BooleanValue.of(e.isOnGround()));
|
||||
put("on_ground", (e, a) -> BooleanValue.of(e.onGround()));
|
||||
put("name", (e, a) -> new StringValue(e.getName().getString()));
|
||||
put("display_name", (e, a) -> new FormattedTextValue(e.getDisplayName()));
|
||||
put("command_name", (e, a) -> new StringValue(e.getScoreboardName()));
|
||||
put("custom_name", (e, a) -> e.hasCustomName() ? new StringValue(e.getCustomName().getString()) : Value.NULL);
|
||||
put("type", (e, a) -> nameFromRegistryId(e.getLevel().registryAccess().registryOrThrow(Registries.ENTITY_TYPE).getKey(e.getType())));
|
||||
put("type", (e, a) -> nameFromRegistryId(e.level().registryAccess().registryOrThrow(Registries.ENTITY_TYPE).getKey(e.getType())));
|
||||
put("is_riding", (e, a) -> BooleanValue.of(e.isPassenger()));
|
||||
put("is_ridden", (e, a) -> BooleanValue.of(e.isVehicle()));
|
||||
put("passengers", (e, a) -> ListValue.wrap(e.getPassengers().stream().map(EntityValue::new)));
|
||||
@@ -489,7 +489,7 @@ public class EntityValue extends Value
|
||||
put("immune_to_frost", (e, a) -> BooleanValue.of(!e.canFreeze()));
|
||||
|
||||
put("invulnerable", (e, a) -> BooleanValue.of(e.isInvulnerable()));
|
||||
put("dimension", (e, a) -> nameFromRegistryId(e.level.dimension().location())); // getDimId
|
||||
put("dimension", (e, a) -> nameFromRegistryId(e.level().dimension().location())); // getDimId
|
||||
put("height", (e, a) -> new NumericValue(e.getDimensions(Pose.STANDING).height));
|
||||
put("width", (e, a) -> new NumericValue(e.getDimensions(Pose.STANDING).width));
|
||||
put("eye_height", (e, a) -> new NumericValue(e.getEyeHeight()));
|
||||
@@ -516,7 +516,7 @@ public class EntityValue extends Value
|
||||
}
|
||||
return Value.NULL;
|
||||
});
|
||||
put("home", (e, a) -> e instanceof final Mob mob ? (mob.getRestrictRadius() > 0) ? new BlockValue(null, (ServerLevel) e.getLevel(), mob.getRestrictCenter()) : Value.FALSE : Value.NULL);
|
||||
put("home", (e, a) -> e instanceof final Mob mob ? (mob.getRestrictRadius() > 0) ? new BlockValue(null, (ServerLevel) e.level(), mob.getRestrictCenter()) : Value.FALSE : Value.NULL);
|
||||
put("spawn_point", (e, a) -> {
|
||||
if (e instanceof final ServerPlayer spe)
|
||||
{
|
||||
@@ -566,7 +566,7 @@ public class EntityValue extends Value
|
||||
|
||||
put("brain", (e, a) -> {
|
||||
String module = a.getString();
|
||||
MemoryModuleType<?> moduleType = e.getLevel().registryAccess().registryOrThrow(Registries.MEMORY_MODULE_TYPE).get(InputValidator.identifierOf(module));
|
||||
MemoryModuleType<?> moduleType = e.level().registryAccess().registryOrThrow(Registries.MEMORY_MODULE_TYPE).get(InputValidator.identifierOf(module));
|
||||
if (moduleType == MemoryModuleType.DUMMY)
|
||||
{
|
||||
return Value.NULL;
|
||||
@@ -704,7 +704,7 @@ public class EntityValue extends Value
|
||||
{
|
||||
return Value.NULL;
|
||||
}
|
||||
return new BlockValue(null, sp.getLevel(), pos);
|
||||
return new BlockValue(null, sp.serverLevel(), pos);
|
||||
}
|
||||
return Value.NULL;
|
||||
});
|
||||
@@ -831,7 +831,7 @@ public class EntityValue extends Value
|
||||
{
|
||||
return Value.NULL;
|
||||
}
|
||||
Registry<Attribute> attributes = e.getLevel().registryAccess().registryOrThrow(Registries.ATTRIBUTE);
|
||||
Registry<Attribute> attributes = e.level().registryAccess().registryOrThrow(Registries.ATTRIBUTE);
|
||||
if (a == null)
|
||||
{
|
||||
AttributeMap container = el.getAttributes();
|
||||
@@ -1711,7 +1711,7 @@ public class EntityValue extends Value
|
||||
|
||||
});
|
||||
put("item", (e, v) -> {
|
||||
ItemStack item = ValueConversions.getItemStackFromValue(v, true, e.level.registryAccess());
|
||||
ItemStack item = ValueConversions.getItemStackFromValue(v, true, e.level().registryAccess());
|
||||
if (e instanceof final ItemEntity itementity)
|
||||
{
|
||||
itementity.setItem(item);
|
||||
@@ -1745,7 +1745,7 @@ public class EntityValue extends Value
|
||||
}
|
||||
CompoundTag tag = new CompoundTag();
|
||||
tag.put("Data", getEntity().saveWithoutId(new CompoundTag()));
|
||||
Registry<EntityType<?>> reg = getEntity().level.registryAccess().registryOrThrow(Registries.ENTITY_TYPE);
|
||||
Registry<EntityType<?>> reg = getEntity().level().registryAccess().registryOrThrow(Registries.ENTITY_TYPE);
|
||||
tag.put("Name", StringTag.valueOf(reg.getKey(getEntity().getType()).toString()));
|
||||
return tag;
|
||||
}
|
||||
|
||||
@@ -265,7 +265,7 @@ public class ScreenValue extends Value
|
||||
{
|
||||
Map<Value, Value> data = new HashMap<>();
|
||||
data.put(StringValue.of("slot"), NumericValue.of(slotId));
|
||||
data.put(StringValue.of("stack"), ValueConversions.of(stack, player.level.registryAccess()));
|
||||
data.put(StringValue.of("stack"), ValueConversions.of(stack, player.level().registryAccess()));
|
||||
ScreenValue.this.callListener(ScreenValue.this.player, "slot_update", data);
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ import net.minecraft.world.level.block.state.properties.Property;
|
||||
import net.minecraft.world.level.levelgen.structure.BoundingBox;
|
||||
import net.minecraft.world.level.levelgen.structure.StructurePiece;
|
||||
import net.minecraft.world.level.levelgen.structure.StructureStart;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import net.minecraft.world.level.material.MapColor;
|
||||
import net.minecraft.world.level.pathfinder.Node;
|
||||
import net.minecraft.world.level.pathfinder.Path;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
@@ -84,7 +84,7 @@ public class ValueConversions
|
||||
return of(world.dimension().location());
|
||||
}
|
||||
|
||||
public static Value of(MaterialColor color)
|
||||
public static Value of(MapColor color)
|
||||
{
|
||||
return ListValue.of(StringValue.of(Colors.mapColourName.get(color)), ofRGB(color.col));
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ public class SpawnReporter
|
||||
return;
|
||||
}
|
||||
}
|
||||
Pair<ResourceKey<Level>, MobCategory> key = Pair.of(mob.level.dimension(), cat);
|
||||
Pair<ResourceKey<Level>, MobCategory> key = Pair.of(mob.level().dimension(), cat);
|
||||
long count = spawn_stats.get(key).getOrDefault(mob.getType(), 0L);
|
||||
spawn_stats.get(key).put(mob.getType(), count + 1);
|
||||
spawned_mobs.get(key).put(Pair.of(mob.getType(), pos));
|
||||
|
||||
@@ -18,7 +18,7 @@ import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import net.minecraft.world.level.material.MapColor;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
@@ -32,34 +32,34 @@ import static java.util.Map.entry;
|
||||
public class WoolTool
|
||||
{
|
||||
/**
|
||||
* A map of the {@link MaterialColor} to the {@link DyeColor} which is used in {@link WoolTool#getWoolColorAtPosition}
|
||||
* A map of the {@link net.minecraft.world.level.material.MapColor} to the {@link DyeColor} which is used in {@link WoolTool#getWoolColorAtPosition}
|
||||
* to get the colour of wool at a position.
|
||||
*/
|
||||
private static final Map<MaterialColor,DyeColor> Material2Dye = Arrays.stream(DyeColor.values())
|
||||
.collect(Collectors.toUnmodifiableMap(DyeColor::getMaterialColor, Function.identity()));
|
||||
private static final Map<MapColor,DyeColor> Material2Dye = Arrays.stream(DyeColor.values())
|
||||
.collect(Collectors.toUnmodifiableMap(DyeColor::getMapColor, Function.identity()));
|
||||
|
||||
/**
|
||||
* A map of all the wool colours to their respective colours in the {@link Messenger#m} format so the name of the counter
|
||||
* gets printed in colour.
|
||||
*/
|
||||
|
||||
public static final Map<MaterialColor,String> Material2DyeName = Map.ofEntries(
|
||||
entry(MaterialColor.SNOW, "w "),
|
||||
entry(MaterialColor.COLOR_ORANGE, "#F9801D "),
|
||||
entry(MaterialColor.COLOR_MAGENTA, "m "),
|
||||
entry(MaterialColor.COLOR_LIGHT_BLUE, "t "),
|
||||
entry(MaterialColor.COLOR_YELLOW, "y "),
|
||||
entry(MaterialColor.COLOR_LIGHT_GREEN, "l "),
|
||||
entry(MaterialColor.COLOR_PINK, "#FFACCB "),
|
||||
entry(MaterialColor.COLOR_GRAY, "f "),
|
||||
entry(MaterialColor.COLOR_LIGHT_GRAY, "g "),
|
||||
entry(MaterialColor.COLOR_CYAN, "c "),
|
||||
entry(MaterialColor.COLOR_PURPLE, "p "),
|
||||
entry(MaterialColor.COLOR_BLUE, "v "),
|
||||
entry(MaterialColor.COLOR_BROWN, "#835432 "),
|
||||
entry(MaterialColor.COLOR_GREEN, "e "),
|
||||
entry(MaterialColor.COLOR_RED, "r "),
|
||||
entry(MaterialColor.COLOR_BLACK, "k ")
|
||||
public static final Map<MapColor,String> Material2DyeName = Map.ofEntries(
|
||||
entry(MapColor.SNOW, "w "),
|
||||
entry(MapColor.COLOR_ORANGE, "#F9801D "),
|
||||
entry(MapColor.COLOR_MAGENTA, "m "),
|
||||
entry(MapColor.COLOR_LIGHT_BLUE, "t "),
|
||||
entry(MapColor.COLOR_YELLOW, "y "),
|
||||
entry(MapColor.COLOR_LIGHT_GREEN, "l "),
|
||||
entry(MapColor.COLOR_PINK, "#FFACCB "),
|
||||
entry(MapColor.COLOR_GRAY, "f "),
|
||||
entry(MapColor.COLOR_LIGHT_GRAY, "g "),
|
||||
entry(MapColor.COLOR_CYAN, "c "),
|
||||
entry(MapColor.COLOR_PURPLE, "p "),
|
||||
entry(MapColor.COLOR_BLUE, "v "),
|
||||
entry(MapColor.COLOR_BROWN, "#835432 "),
|
||||
entry(MapColor.COLOR_GREEN, "e "),
|
||||
entry(MapColor.COLOR_RED, "r "),
|
||||
entry(MapColor.COLOR_BLACK, "k ")
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user