23w16a
This commit is contained in:
1 parent
97ab52a917
commit
d68c252180
11 files changed
+23
-35
No files matched your search
+2
-2
@@ -3,10 +3,10 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check https://fabricmc.net/develop/
|
# check https://fabricmc.net/develop/
|
||||||
minecraft_version=23w14a
|
minecraft_version=23w16a
|
||||||
loader_version=0.14.19
|
loader_version=0.14.19
|
||||||
jsr305_version=3.0.2
|
jsr305_version=3.0.2
|
||||||
fabric_version=0.77.0+1.19.4
|
fabric_version=0.78.0+1.20
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.4.104
|
mod_version = 1.4.104
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ import net.minecraft.world.level.block.entity.BlockEntity;
|
|||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.chunk.ChunkAccess;
|
import net.minecraft.world.level.chunk.ChunkAccess;
|
||||||
import net.minecraft.world.level.material.FluidState;
|
import net.minecraft.world.level.material.FluidState;
|
||||||
import net.minecraft.world.level.material.Material;
|
|
||||||
import net.minecraft.world.level.storage.loot.LootContext;
|
import net.minecraft.world.level.storage.loot.LootContext;
|
||||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
|
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
|
|||||||
@@ -99,13 +99,14 @@ public abstract class ChunkMap_scarpetChunkCreationMixin implements ThreadedAnvi
|
|||||||
@Shadow
|
@Shadow
|
||||||
protected abstract boolean promoteChunkMap();
|
protected abstract boolean promoteChunkMap();
|
||||||
|
|
||||||
@Shadow
|
|
||||||
protected abstract CompletableFuture<Either<List<ChunkAccess>, ChunkLoadingFailure>> getChunkRangeFuture (final ChunkPos centerChunk, final int margin, final IntFunction<ChunkStatus> distanceToStatus);
|
|
||||||
|
|
||||||
@Shadow
|
@Shadow
|
||||||
protected abstract Iterable<ChunkHolder> getChunks();
|
protected abstract Iterable<ChunkHolder> getChunks();
|
||||||
|
|
||||||
|
|
||||||
|
@Shadow protected abstract CompletableFuture<Either<List<ChunkAccess>, ChunkLoadingFailure>> getChunkRangeFuture(final ChunkHolder chunkHolder, final int i, final IntFunction<ChunkStatus> intFunction);
|
||||||
|
|
||||||
|
//@Shadow protected abstract void postLoadProtoChunk(final ServerLevel serverLevel, final List<CompoundTag> list);
|
||||||
|
|
||||||
ThreadLocal<Boolean> generated = ThreadLocal.withInitial(() -> null);
|
ThreadLocal<Boolean> generated = ThreadLocal.withInitial(() -> null);
|
||||||
|
|
||||||
// in protoChunkToFullChunk
|
// in protoChunkToFullChunk
|
||||||
@@ -289,7 +290,8 @@ public abstract class ChunkMap_scarpetChunkCreationMixin implements ThreadedAnvi
|
|||||||
if (!(chunk.getStatus().isOrAfter(ChunkStatus.LIGHT.getParent()))) return;
|
if (!(chunk.getStatus().isOrAfter(ChunkStatus.LIGHT.getParent()))) return;
|
||||||
((ServerLightingProviderInterface) this.lightEngine).removeLightData(chunk);
|
((ServerLightingProviderInterface) this.lightEngine).removeLightData(chunk);
|
||||||
this.addRelightTicket(pos);
|
this.addRelightTicket(pos);
|
||||||
final CompletableFuture<?> lightFuture = this.getChunkRangeFuture (pos, 1, (pos_) -> ChunkStatus.LIGHT)
|
ChunkHolder chunkHolder = this.updatingChunkMap.get(pos.toLong());
|
||||||
|
final CompletableFuture<?> lightFuture = this.getChunkRangeFuture(chunkHolder, 1, (pos_) -> ChunkStatus.LIGHT)
|
||||||
.thenCompose(
|
.thenCompose(
|
||||||
either -> either.map(
|
either -> either.map(
|
||||||
list -> ((ServerLightingProviderInterface) this.lightEngine).relight(chunk),
|
list -> ((ServerLightingProviderInterface) this.lightEngine).relight(chunk),
|
||||||
@@ -414,7 +416,7 @@ public abstract class ChunkMap_scarpetChunkCreationMixin implements ThreadedAnvi
|
|||||||
{
|
{
|
||||||
final ChunkPos pos = chunk.getPos();
|
final ChunkPos pos = chunk.getPos();
|
||||||
|
|
||||||
lightFutures.add(this.getChunkRangeFuture (pos, 1, (pos_) -> ChunkStatus.LIGHT).thenCompose(
|
lightFutures.add(this.getChunkRangeFuture (this.updatingChunkMap.get(pos.toLong()), 1, (pos_) -> ChunkStatus.LIGHT).thenCompose(
|
||||||
either -> either.map(
|
either -> either.map(
|
||||||
list -> ((ServerLightingProviderInterface) this.lightEngine).relight(chunk),
|
list -> ((ServerLightingProviderInterface) this.lightEngine).relight(chunk),
|
||||||
unloaded -> {
|
unloaded -> {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public class FlowingFluid_liquidDamageDisabledMixin
|
|||||||
method = "canHoldFluid",
|
method = "canHoldFluid",
|
||||||
at = @At(
|
at = @At(
|
||||||
value = "INVOKE",
|
value = "INVOKE",
|
||||||
target = "Lnet/minecraft/world/level/material/Material;blocksMotion()Z"
|
target = "Lnet/minecraft/world/level/block/state/BlockState;blocksMotion()Z"
|
||||||
),
|
),
|
||||||
cancellable = true
|
cancellable = true
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import net.minecraft.world.item.ItemStack;
|
|||||||
import net.minecraft.world.item.PickaxeItem;
|
import net.minecraft.world.item.PickaxeItem;
|
||||||
import net.minecraft.world.item.Tier;
|
import net.minecraft.world.item.Tier;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.material.Material;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
|
||||||
@Mixin(PickaxeItem.class)
|
@Mixin(PickaxeItem.class)
|
||||||
@@ -21,9 +21,10 @@ public class PickaxeItem_missingToolsMixin extends DiggerItem
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getDestroySpeed(ItemStack stack, BlockState state) {
|
public float getDestroySpeed(ItemStack stack, BlockState state) {
|
||||||
Material material = state.getMaterial();
|
if (CarpetSettings.missingTools && state.getBlock().getSoundType(state) == SoundType.GLASS)
|
||||||
if (CarpetSettings.missingTools && material == Material.GLASS)
|
{
|
||||||
return speed;
|
return speed;
|
||||||
|
}
|
||||||
return super.getDestroySpeed(stack, state);
|
return super.getDestroySpeed(stack, state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+2
-2
@@ -8,13 +8,13 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
@Mixin(SculkSensorBlockEntity.VibrationConfig.class)
|
@Mixin(SculkSensorBlockEntity.VibrationUser.class)
|
||||||
public class SculkSensorBlockEntityVibrationConfig_sculkSensorRangeMixin
|
public class SculkSensorBlockEntityVibrationConfig_sculkSensorRangeMixin
|
||||||
{
|
{
|
||||||
@Inject(method = "getListenerRadius", at = @At("HEAD"), cancellable = true)
|
@Inject(method = "getListenerRadius", at = @At("HEAD"), cancellable = true)
|
||||||
private void sculkSensorRange(CallbackInfoReturnable<Integer> cir)
|
private void sculkSensorRange(CallbackInfoReturnable<Integer> cir)
|
||||||
{
|
{
|
||||||
if (CarpetSettings.sculkSensorRange != SculkSensorBlockEntity.VibrationConfig.LISTENER_RANGE) {
|
if (CarpetSettings.sculkSensorRange != SculkSensorBlockEntity.VibrationUser.LISTENER_RANGE) {
|
||||||
cir.setReturnValue(CarpetSettings.sculkSensorRange);
|
cir.setReturnValue(CarpetSettings.sculkSensorRange);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -527,7 +527,7 @@ public class WorldAccess
|
|||||||
booleanStateTest(c, "flammable", lv, (s, p) -> s.ignitedByLava()));
|
booleanStateTest(c, "flammable", lv, (s, p) -> s.ignitedByLava()));
|
||||||
|
|
||||||
expression.addContextFunction("transparent", -1, (c, t, lv) ->
|
expression.addContextFunction("transparent", -1, (c, t, lv) ->
|
||||||
booleanStateTest(c, "transparent", lv, (s, p) -> !s.getMaterial().isSolid()));
|
booleanStateTest(c, "transparent", lv, (s, p) -> !s.isSolid()));
|
||||||
|
|
||||||
/*this.expr.addContextFunction("opacity", -1, (c, t, lv) ->
|
/*this.expr.addContextFunction("opacity", -1, (c, t, lv) ->
|
||||||
genericStateTest(c, "opacity", lv, (s, p, w) -> new NumericValue(s.getOpacity(w, p))));
|
genericStateTest(c, "opacity", lv, (s, p, w) -> new NumericValue(s.getOpacity(w, p))));
|
||||||
@@ -1162,8 +1162,7 @@ public class WorldAccess
|
|||||||
|
|
||||||
expression.addContextFunction("material", -1, (c, t, lv) -> {
|
expression.addContextFunction("material", -1, (c, t, lv) -> {
|
||||||
c.host.issueDeprecation("material(...)"); // deprecated for block_state()
|
c.host.issueDeprecation("material(...)"); // deprecated for block_state()
|
||||||
return stateStringQuery(c, "material", lv, (s, p) ->
|
return StringValue.of("unknown");
|
||||||
Colors.materialName.getOrDefault(s.getMaterial(), "unknown"));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
expression.addContextFunction("map_colour", -1, (c, t, lv) ->
|
expression.addContextFunction("map_colour", -1, (c, t, lv) ->
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package carpet.script.utils;
|
package carpet.script.utils;
|
||||||
|
|
||||||
import net.minecraft.world.level.block.SoundType;
|
import net.minecraft.world.level.block.SoundType;
|
||||||
import net.minecraft.world.level.material.Material;
|
|
||||||
import net.minecraft.world.level.material.MaterialColor;
|
import net.minecraft.world.level.material.MaterialColor;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -154,13 +153,4 @@ public class Colors
|
|||||||
entry(MaterialColor.RAW_IRON , "raw_iron" ),
|
entry(MaterialColor.RAW_IRON , "raw_iron" ),
|
||||||
entry(MaterialColor.GLOW_LICHEN , "glow_lichen" )
|
entry(MaterialColor.GLOW_LICHEN , "glow_lichen" )
|
||||||
);
|
);
|
||||||
|
|
||||||
public static final Map<Material, String> materialName = Map.ofEntries(
|
|
||||||
entry(Material.PLANT , "plant" ),
|
|
||||||
entry(Material.DEPRECATED_REPLACEABLE, "vegetation" ),
|
|
||||||
entry(Material.SAND , "sand" ),
|
|
||||||
entry(Material.WOOD , "wood" ),
|
|
||||||
entry(Material.GLASS , "glass" ),
|
|
||||||
entry(Material.STONE , "stone" )
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
@@ -45,7 +45,7 @@ public class SnoopyCommandSource extends CommandSourceStack
|
|||||||
super(CommandSource.NULL, original.getPosition(), original.getRotation(), original.getLevel(), Vanilla.MinecraftServer_getRunPermissionLevel(original.getServer()),
|
super(CommandSource.NULL, original.getPosition(), original.getRotation(), original.getLevel(), Vanilla.MinecraftServer_getRunPermissionLevel(original.getServer()),
|
||||||
original.getTextName(), original.getDisplayName(), original.getServer(), original.getEntity(), false,
|
original.getTextName(), original.getDisplayName(), original.getServer(), original.getEntity(), false,
|
||||||
(ctx, succ, res) -> {
|
(ctx, succ, res) -> {
|
||||||
}, EntityAnchorArgument.Anchor.FEET, CommandSigningContext.ANONYMOUS, TaskChainer.immediate(original.getServer()));
|
}, EntityAnchorArgument.Anchor.FEET, CommandSigningContext.ANONYMOUS, TaskChainer.immediate(original.getServer()), i -> {});
|
||||||
this.output = CommandSource.NULL;
|
this.output = CommandSource.NULL;
|
||||||
this.position = original.getPosition();
|
this.position = original.getPosition();
|
||||||
this.world = original.getLevel();
|
this.world = original.getLevel();
|
||||||
@@ -92,7 +92,7 @@ public class SnoopyCommandSource extends CommandSourceStack
|
|||||||
{
|
{
|
||||||
super(output, pos, rot, world, level,
|
super(output, pos, rot, world, level,
|
||||||
simpleName, name, server, entity, false,
|
simpleName, name, server, entity, false,
|
||||||
consumer, entityAnchor, context, TaskChainer.immediate(server));
|
consumer, entityAnchor, context, TaskChainer.immediate(server), i -> {});
|
||||||
this.output = output;
|
this.output = output;
|
||||||
this.position = pos;
|
this.position = pos;
|
||||||
this.rotation = rot;
|
this.rotation = rot;
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import net.minecraft.world.level.LightLayer;
|
|||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.material.Material;
|
|
||||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
@@ -28,7 +27,6 @@ public class BlockInfo
|
|||||||
public static List<Component> blockInfo(BlockPos pos, ServerLevel world)
|
public static List<Component> blockInfo(BlockPos pos, ServerLevel world)
|
||||||
{
|
{
|
||||||
BlockState state = world.getBlockState(pos);
|
BlockState state = world.getBlockState(pos);
|
||||||
Material material = state.getMaterial();
|
|
||||||
Block block = state.getBlock();
|
Block block = state.getBlock();
|
||||||
String metastring = "";
|
String metastring = "";
|
||||||
final Registry<Block> blocks = world.registryAccess().registryOrThrow(Registries.BLOCK);
|
final Registry<Block> blocks = world.registryAccess().registryOrThrow(Registries.BLOCK);
|
||||||
@@ -51,9 +49,8 @@ public class BlockInfo
|
|||||||
Math.max(world.getBrightness(LightLayer.BLOCK, pos),world.getBrightness(LightLayer.SKY, pos)) ,
|
Math.max(world.getBrightness(LightLayer.BLOCK, pos),world.getBrightness(LightLayer.SKY, pos)) ,
|
||||||
Math.max(world.getBrightness(LightLayer.BLOCK, pos.above()),world.getBrightness(LightLayer.SKY, pos.above())))));
|
Math.max(world.getBrightness(LightLayer.BLOCK, pos.above()),world.getBrightness(LightLayer.SKY, pos.above())))));
|
||||||
lst.add(Messenger.s(String.format(" - Brightness in: %.2f, above: %.2f", world.getLightLevelDependentMagicValue(pos), world.getLightLevelDependentMagicValue(pos.above()))));
|
lst.add(Messenger.s(String.format(" - Brightness in: %.2f, above: %.2f", world.getLightLevelDependentMagicValue(pos), world.getLightLevelDependentMagicValue(pos.above()))));
|
||||||
lst.add(Messenger.s(String.format(" - Is opaque: %s", material.isSolid() )));
|
lst.add(Messenger.s(String.format(" - Is opaque: %s", state.isSolid() )));
|
||||||
//lst.add(Messenger.s(String.format(" - Light opacity: %d", state.getOpacity(world,pos))));
|
//lst.add(Messenger.s(String.format(" - Light opacity: %d", state.getOpacity(world,pos))));
|
||||||
lst.add(Messenger.s(String.format(" - Blocks light: %s", state.getMaterial().isSolidBlocking())));
|
|
||||||
//lst.add(Messenger.s(String.format(" - Emitted light: %d", state.getLightValue())));
|
//lst.add(Messenger.s(String.format(" - Emitted light: %d", state.getLightValue())));
|
||||||
//lst.add(Messenger.s(String.format(" - Picks neighbour light value: %s", state.useNeighborBrightness(world, pos))));
|
//lst.add(Messenger.s(String.format(" - Picks neighbour light value: %s", state.useNeighborBrightness(world, pos))));
|
||||||
lst.add(Messenger.s(""));
|
lst.add(Messenger.s(""));
|
||||||
@@ -62,7 +59,6 @@ public class BlockInfo
|
|||||||
lst.add(Messenger.s(String.format(" - Blocks movement in air: %s", !state.isPathfindable(world,pos, PathComputationType.AIR))));
|
lst.add(Messenger.s(String.format(" - Blocks movement in air: %s", !state.isPathfindable(world,pos, PathComputationType.AIR))));
|
||||||
lst.add(Messenger.s(String.format(" - Blocks movement in liquids: %s", !state.isPathfindable(world,pos, PathComputationType.WATER))));
|
lst.add(Messenger.s(String.format(" - Blocks movement in liquids: %s", !state.isPathfindable(world,pos, PathComputationType.WATER))));
|
||||||
lst.add(Messenger.s(String.format(" - Can burn: %s", state.ignitedByLava())));
|
lst.add(Messenger.s(String.format(" - Can burn: %s", state.ignitedByLava())));
|
||||||
lst.add(Messenger.s(String.format(" - Requires a tool: %s", !material.isReplaceable()))); //?maybe
|
|
||||||
lst.add(Messenger.s(String.format(" - Hardness: %.2f", state.getDestroySpeed(world, pos))));
|
lst.add(Messenger.s(String.format(" - Hardness: %.2f", state.getDestroySpeed(world, pos))));
|
||||||
lst.add(Messenger.s(String.format(" - Blast resistance: %.2f", block.getExplosionResistance())));
|
lst.add(Messenger.s(String.format(" - Blast resistance: %.2f", block.getExplosionResistance())));
|
||||||
lst.add(Messenger.s(String.format(" - Ticks randomly: %s", block.isRandomlyTicking(state))));
|
lst.add(Messenger.s(String.format(" - Ticks randomly: %s", block.isRandomlyTicking(state))));
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ accessible class net/minecraft/world/level/border/WorldBorder$BorderExtent
|
|||||||
accessible class net/minecraft/world/level/border/WorldBorder$StaticBorderExtent
|
accessible class net/minecraft/world/level/border/WorldBorder$StaticBorderExtent
|
||||||
accessible class net/minecraft/server/MinecraftServer$ReloadableResources
|
accessible class net/minecraft/server/MinecraftServer$ReloadableResources
|
||||||
accessible class net/minecraft/world/level/biome/Biome$ClimateSettings
|
accessible class net/minecraft/world/level/biome/Biome$ClimateSettings
|
||||||
|
accessible class net/minecraft/world/level/block/entity/SculkSensorBlockEntity$VibrationUser
|
||||||
|
|
||||||
accessible method net/minecraft/world/level/border/WorldBorder getListeners ()Ljava/util/List;
|
accessible method net/minecraft/world/level/border/WorldBorder getListeners ()Ljava/util/List;
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user