26.2-snap-6
This commit is contained in:
1 parent
6e332f9c0b
commit
83aea79da0
8 files changed
+79
-51
No files matched your search
+1
-1
@@ -7,7 +7,7 @@ org.gradle.configuration-cache=false
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check https://fabricmc.net/develop/
|
# check https://fabricmc.net/develop/
|
||||||
minecraft_version=26.2-snapshot-4
|
minecraft_version=26.2-snapshot-6
|
||||||
loader_version=0.19.2
|
loader_version=0.19.2
|
||||||
loom_version=1.15-SNAPSHOT
|
loom_version=1.15-SNAPSHOT
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ import net.minecraft.client.renderer.LevelRenderer;
|
|||||||
import net.minecraft.client.renderer.LevelTargetBundle;
|
import net.minecraft.client.renderer.LevelTargetBundle;
|
||||||
import net.minecraft.client.renderer.RenderBuffers;
|
import net.minecraft.client.renderer.RenderBuffers;
|
||||||
import net.minecraft.client.renderer.ShaderManager;
|
import net.minecraft.client.renderer.ShaderManager;
|
||||||
|
import net.minecraft.client.renderer.SubmitNodeCollector;
|
||||||
|
import net.minecraft.client.renderer.SubmitNodeStorage;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher;
|
||||||
import net.minecraft.client.renderer.chunk.ChunkSectionsToRender;
|
import net.minecraft.client.renderer.chunk.ChunkSectionsToRender;
|
||||||
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
||||||
@@ -44,6 +46,8 @@ public class LevelRenderer_scarpetRenderMixin
|
|||||||
|
|
||||||
@Shadow @Final private LevelRenderState levelRenderState;
|
@Shadow @Final private LevelRenderState levelRenderState;
|
||||||
|
|
||||||
|
@Shadow @Final private SubmitNodeStorage submitNodeStorage;
|
||||||
|
|
||||||
@Inject(method = "<init>", at = @At("RETURN"))
|
@Inject(method = "<init>", at = @At("RETURN"))
|
||||||
private void addRenderers(EntityRenderDispatcher entityRenderDispatcher, BlockEntityRenderDispatcher blockEntityRenderDispatcher, ModelManager modelManager, TextureManager textureManager, AtlasManager atlasManager, ShaderManager shaderManager, GameRenderer gameRenderer, int width, int height, CallbackInfo ci)
|
private void addRenderers(EntityRenderDispatcher entityRenderDispatcher, BlockEntityRenderDispatcher blockEntityRenderDispatcher, ModelManager modelManager, TextureManager textureManager, AtlasManager atlasManager, ShaderManager shaderManager, GameRenderer gameRenderer, int width, int height, CallbackInfo ci)
|
||||||
{
|
{
|
||||||
@@ -52,10 +56,10 @@ public class LevelRenderer_scarpetRenderMixin
|
|||||||
|
|
||||||
@Inject(method = "render", at = @At(
|
@Inject(method = "render", at = @At(
|
||||||
value = "INVOKE",
|
value = "INVOKE",
|
||||||
|
target = "Lnet/minecraft/client/renderer/LevelRenderer;addMainPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/renderer/feature/FeatureRenderDispatcher$PreparedFrame;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lnet/minecraft/client/renderer/state/level/LevelRenderState;Lnet/minecraft/util/profiling/ProfilerFiller;Lnet/minecraft/client/renderer/chunk/ChunkSectionsToRender;)V",
|
||||||
//target = "Lnet/minecraft/client/renderer/LevelRenderer;addAlwaysOnTopPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;)V",
|
//target = "Lnet/minecraft/client/renderer/LevelRenderer;addAlwaysOnTopPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;)V",
|
||||||
//target = "Lnet/minecraft/client/renderer/LevelRenderer;submitFeatures(Lnet/minecraft/client/renderer/state/level/LevelRenderState;Lnet/minecraft/client/renderer/SubmitNodeCollector;Z)V",
|
//target = "Lnet/minecraft/client/renderer/LevelRenderer;submitFeatures(Lnet/minecraft/client/renderer/state/level/LevelRenderState;Lnet/minecraft/client/renderer/SubmitNodeCollector;Z)V",
|
||||||
target = "Lnet/minecraft/client/renderer/LevelRenderer;addMainPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lnet/minecraft/client/renderer/state/level/LevelRenderState;Lnet/minecraft/util/profiling/ProfilerFiller;Lnet/minecraft/client/renderer/chunk/ChunkSectionsToRender;)V",
|
//target = "Lnet/minecraft/client/renderer/LevelRenderer;addMainPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lnet/minecraft/client/renderer/state/level/LevelRenderState;Lnet/minecraft/util/profiling/ProfilerFiller;Lnet/minecraft/client/renderer/chunk/ChunkSectionsToRender;)V",
|
||||||
//target = "Lnet/minecraft/client/renderer/LevelRenderer;addLateDebugPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/renderer/state/level/CameraRenderState;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Matrix4fc;)V",
|
//target = "Lnet/minecraft/client/renderer/LevelRenderer;addLateDebugPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/renderer/state/level/CameraRenderState;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Matrix4fc;)V",
|
||||||
shift = At.Shift.AFTER
|
shift = At.Shift.AFTER
|
||||||
))
|
))
|
||||||
@@ -70,9 +74,9 @@ public class LevelRenderer_scarpetRenderMixin
|
|||||||
final float deltaPartialTick = deltaTracker.getGameTimeDeltaPartialTick(false);
|
final float deltaPartialTick = deltaTracker.getGameTimeDeltaPartialTick(false);
|
||||||
FramePass pass = frameGraphBuilder.addPass("scarpet_shapes");
|
FramePass pass = frameGraphBuilder.addPass("scarpet_shapes");
|
||||||
targets.main = pass.readsAndWrites(targets.main);
|
targets.main = pass.readsAndWrites(targets.main);
|
||||||
pass.executes(() -> CarpetClient.shapes.render(renderBuffers, levelRenderState, modelViewMatrix, deltaPartialTick));
|
pass.executes(() -> CarpetClient.shapes.render(submitNodeStorage, levelRenderState, modelViewMatrix, deltaPartialTick));
|
||||||
featureRenderDispatcher.renderAllFeatures();
|
//featureRenderDispatcher.renderAllFeatures(submitNodeStorage);
|
||||||
renderBuffers.bufferSource().uploadAndDraw();
|
//renderBuffers.bufferSource().uploadAndDraw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -53,7 +53,8 @@ public abstract class PistonHeadRenderer_movableBEMixin implements BlockEntityRe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Inject(method = "submit(Lnet/minecraft/client/renderer/blockentity/state/PistonHeadRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;)V",
|
@Inject(method = "submit(Lnet/minecraft/client/renderer/blockentity/state/PistonHeadRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;)V",
|
||||||
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/SubmitNodeCollector;submitMovingBlock(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/block/MovingBlockRenderState;)V",
|
at = @At(value = "INVOKE",
|
||||||
|
target = "Lnet/minecraft/client/renderer/SubmitNodeCollector;submitMovingBlock(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/block/MovingBlockRenderState;I)V",
|
||||||
ordinal = 0))
|
ordinal = 0))
|
||||||
private void endMethod(PistonHeadRenderState pistonHeadRenderState, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState cameraRenderState, CallbackInfo ci)
|
private void endMethod(PistonHeadRenderState pistonHeadRenderState, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState cameraRenderState, CallbackInfo ci)
|
||||||
//private void endMethod(PistonMovingBlockEntity pistonBlockEntity_1, float partialTicks, PoseStack matrixStack_1, int i, int j, Vec3 vec3, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay, SubmitNodeCollector submitNodeCollector, CallbackInfo ci)
|
//private void endMethod(PistonMovingBlockEntity pistonBlockEntity_1, float partialTicks, PoseStack matrixStack_1, int i, int j, Vec3 vec3, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay, SubmitNodeCollector submitNodeCollector, CallbackInfo ci)
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ public class StructurePiece_scarpetPlopMixin
|
|||||||
{
|
{
|
||||||
@Redirect(method = "placeBlock", at = @At(
|
@Redirect(method = "placeBlock", at = @At(
|
||||||
value = "INVOKE",
|
value = "INVOKE",
|
||||||
target = "Lnet/minecraft/world/level/chunk/ChunkAccess;markPosForPostprocessing(Lnet/minecraft/core/BlockPos;)V"
|
target = "Lnet/minecraft/world/level/chunk/ChunkAccess;markPosForPostProcessing(Lnet/minecraft/core/BlockPos;)V"
|
||||||
))
|
))
|
||||||
private void markOrNot(ChunkAccess chunk, BlockPos pos)
|
private void markOrNot(ChunkAccess chunk, BlockPos pos)
|
||||||
{
|
{
|
||||||
if (!CarpetSettings.skipGenerationChecks.get()) chunk.markPosForPostprocessing(pos);
|
if (!CarpetSettings.skipGenerationChecks.get()) chunk.markPosForPostProcessing(pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18,9 +18,12 @@ import com.google.common.collect.Lists;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import com.mojang.serialization.DataResult;
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.network.chat.TextColor;
|
||||||
import net.minecraft.resources.Identifier;
|
import net.minecraft.resources.Identifier;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.ServerScoreboard;
|
import net.minecraft.server.ServerScoreboard;
|
||||||
@@ -36,6 +39,7 @@ import net.minecraft.world.scores.ScoreAccess;
|
|||||||
import net.minecraft.world.scores.ScoreHolder;
|
import net.minecraft.world.scores.ScoreHolder;
|
||||||
import net.minecraft.world.scores.Scoreboard;
|
import net.minecraft.world.scores.Scoreboard;
|
||||||
import net.minecraft.world.scores.Team;
|
import net.minecraft.world.scores.Team;
|
||||||
|
import net.minecraft.world.scores.TeamColor;
|
||||||
import net.minecraft.world.scores.criteria.ObjectiveCriteria;
|
import net.minecraft.world.scores.criteria.ObjectiveCriteria;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
@@ -433,18 +437,20 @@ public class Scoreboards
|
|||||||
case "color" -> {
|
case "color" -> {
|
||||||
if (!modifying)
|
if (!modifying)
|
||||||
{
|
{
|
||||||
return new StringValue(team.getColor().getName());
|
return new StringValue(team.getColor().get().getSerializedName());
|
||||||
}
|
}
|
||||||
if (!(settingVal instanceof StringValue))
|
if (!(settingVal instanceof StringValue))
|
||||||
{
|
{
|
||||||
throw new InternalExpressionException("'team_property' requires a string as the third argument for the property " + propertyVal.getString());
|
throw new InternalExpressionException("'team_property' requires a string as the third argument for the property " + propertyVal.getString());
|
||||||
}
|
}
|
||||||
ChatFormatting color = ChatFormatting.getByName(settingVal.getString().toUpperCase());
|
TeamColor teamColor = TeamColor.byName(settingVal.getString().toLowerCase());
|
||||||
if (color == null || !color.isColor())
|
//DataResult<TextColor> color = TextColor.parseColor(settingVal.getString().toUpperCase());
|
||||||
|
//ChatFormatting color = ChatFormatting.valueOf(settingVal.getString().toUpperCase());;
|
||||||
|
if (teamColor == null)
|
||||||
{
|
{
|
||||||
throw new InternalExpressionException("Unknown value for property " + propertyVal.getString() + ": " + settingVal.getString());
|
throw new InternalExpressionException("Unknown value for property " + propertyVal.getString() + ": " + settingVal.getString());
|
||||||
}
|
}
|
||||||
team.setColor(color);
|
team.setColor(Optional.of(teamColor));
|
||||||
}
|
}
|
||||||
case "deathMessageVisibility" -> {
|
case "deathMessageVisibility" -> {
|
||||||
if (!modifying)
|
if (!modifying)
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ import net.minecraft.commands.CommandBuildContext;
|
|||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.CommandSourceStack;
|
||||||
import net.minecraft.commands.SharedSuggestionProvider;
|
import net.minecraft.commands.SharedSuggestionProvider;
|
||||||
import net.minecraft.commands.arguments.AngleArgument;
|
import net.minecraft.commands.arguments.AngleArgument;
|
||||||
import net.minecraft.commands.arguments.ColorArgument;
|
import net.minecraft.commands.arguments.TeamColorArgument;
|
||||||
import net.minecraft.commands.arguments.CompoundTagArgument;
|
import net.minecraft.commands.arguments.CompoundTagArgument;
|
||||||
import net.minecraft.commands.arguments.DimensionArgument;
|
import net.minecraft.commands.arguments.DimensionArgument;
|
||||||
import net.minecraft.commands.arguments.EntityAnchorArgument;
|
import net.minecraft.commands.arguments.EntityAnchorArgument;
|
||||||
@@ -108,6 +108,7 @@ import net.minecraft.world.level.biome.Biome;
|
|||||||
import net.minecraft.world.phys.Vec2;
|
import net.minecraft.world.phys.Vec2;
|
||||||
import net.minecraft.world.scores.ScoreHolder;
|
import net.minecraft.world.scores.ScoreHolder;
|
||||||
|
|
||||||
|
import net.minecraft.world.scores.TeamColor;
|
||||||
import org.jspecify.annotations.Nullable;
|
import org.jspecify.annotations.Nullable;
|
||||||
|
|
||||||
import static net.minecraft.commands.Commands.argument;
|
import static net.minecraft.commands.Commands.argument;
|
||||||
@@ -144,10 +145,10 @@ public abstract class CommandArgument
|
|||||||
(c, p) -> ValueConversions.ofBlockPredicate(c.getSource().getServer().registryAccess(), BlockPredicateArgument.getBlockPredicate(c, p)),
|
(c, p) -> ValueConversions.ofBlockPredicate(c.getSource().getServer().registryAccess(), BlockPredicateArgument.getBlockPredicate(c, p)),
|
||||||
param -> (ctx, builder) -> ctx.getArgument(param, BlockPredicateArgument.class).listSuggestions(ctx, builder)
|
param -> (ctx, builder) -> ctx.getArgument(param, BlockPredicateArgument.class).listSuggestions(ctx, builder)
|
||||||
),
|
),
|
||||||
new VanillaUnconfigurableArgument("teamcolor", ColorArgument::color,
|
new VanillaUnconfigurableArgument("teamcolor", TeamColorArgument::teamColor,
|
||||||
(c, p) -> {
|
(c, p) -> {
|
||||||
ChatFormatting format = ColorArgument.getColor(c, p);
|
TeamColor format = TeamColorArgument.getTeamColor(c, p);
|
||||||
return ListValue.of(StringValue.of(format.getName()), ValueConversions.ofRGB(format.getColor()));
|
return ListValue.of(StringValue.of(format.getSerializedName()), ValueConversions.ofRGB(format.rgb()));
|
||||||
},
|
},
|
||||||
false
|
false
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import net.minecraft.world.level.levelgen.feature.featuresize.TwoLayersFeatureSi
|
|||||||
import net.minecraft.world.level.levelgen.feature.foliageplacers.BlobFoliagePlacer;
|
import net.minecraft.world.level.levelgen.feature.foliageplacers.BlobFoliagePlacer;
|
||||||
import net.minecraft.world.level.levelgen.feature.foliageplacers.FancyFoliagePlacer;
|
import net.minecraft.world.level.levelgen.feature.foliageplacers.FancyFoliagePlacer;
|
||||||
import net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProvider;
|
import net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProvider;
|
||||||
|
import net.minecraft.world.level.levelgen.feature.stateproviders.RuleBasedStateProvider;
|
||||||
import net.minecraft.world.level.levelgen.heightproviders.ConstantHeight;
|
import net.minecraft.world.level.levelgen.heightproviders.ConstantHeight;
|
||||||
import net.minecraft.world.level.levelgen.structure.BoundingBox;
|
import net.minecraft.world.level.levelgen.structure.BoundingBox;
|
||||||
import net.minecraft.world.level.levelgen.structure.Structure;
|
import net.minecraft.world.level.levelgen.structure.Structure;
|
||||||
@@ -65,6 +66,8 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProc
|
|||||||
|
|
||||||
import org.jspecify.annotations.Nullable;
|
import org.jspecify.annotations.Nullable;
|
||||||
|
|
||||||
|
import static net.minecraft.world.level.levelgen.feature.configurations.TreeConfiguration.CAN_PLACE_BELOW_TREE_TRUNKS;
|
||||||
|
|
||||||
public class FeatureGenerator
|
public class FeatureGenerator
|
||||||
{
|
{
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -272,16 +275,19 @@ public class FeatureGenerator
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static RuleBasedStateProvider belowTrees = RuleBasedStateProvider.ifTrueThenProvide(CAN_PLACE_BELOW_TREE_TRUNKS, Blocks.DIRT);
|
||||||
|
|
||||||
private static TreeConfiguration.TreeConfigurationBuilder createTree(Block block, Block block2, int i, int j, int k, int l)
|
private static TreeConfiguration.TreeConfigurationBuilder createTree(Block block, Block block2, int i, int j, int k, int l)
|
||||||
{
|
{
|
||||||
return new TreeConfiguration.TreeConfigurationBuilder(BlockStateProvider.simple(block), new StraightTrunkPlacer(i, j, k), BlockStateProvider.simple(block2), new BlobFoliagePlacer(ConstantInt.of(l), ConstantInt.of(0), 3), new TwoLayersFeatureSize(1, 0, 1));
|
return new TreeConfiguration.TreeConfigurationBuilder(BlockStateProvider.simple(block), new StraightTrunkPlacer(i, j, k), BlockStateProvider.simple(block2), new BlobFoliagePlacer(ConstantInt.of(l), ConstantInt.of(0), 3), new TwoLayersFeatureSize(1, 0, 1), belowTrees);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Map<String, Function<ServerLevel, Thing>> featureMap = new HashMap<>()
|
public static final Map<String, Function<ServerLevel, Thing>> featureMap = new HashMap<>()
|
||||||
{{
|
{{
|
||||||
|
|
||||||
|
// TODO remove this using what place feature is using
|
||||||
put("oak_bees", l -> simpleTree(createTree(Blocks.OAK_LOG, Blocks.OAK_LEAVES, 4, 2, 0, 2).ignoreVines().decorators(List.of(new BeehiveDecorator(1.00F))).build()));
|
put("oak_bees", l -> simpleTree(createTree(Blocks.OAK_LOG, Blocks.OAK_LEAVES, 4, 2, 0, 2).ignoreVines().decorators(List.of(new BeehiveDecorator(1.00F))).build()));
|
||||||
put("fancy_oak_bees", l -> simpleTree((new TreeConfiguration.TreeConfigurationBuilder(BlockStateProvider.simple(Blocks.OAK_LOG), new FancyTrunkPlacer(3, 11, 0), BlockStateProvider.simple(Blocks.OAK_LEAVES), new FancyFoliagePlacer(ConstantInt.of(2), ConstantInt.of(4), 4), new TwoLayersFeatureSize(0, 0, 0, OptionalInt.of(4)))).ignoreVines().decorators(List.of(new BeehiveDecorator(1.00F))).build()));
|
put("fancy_oak_bees", l -> simpleTree((new TreeConfiguration.TreeConfigurationBuilder(BlockStateProvider.simple(Blocks.OAK_LOG), new FancyTrunkPlacer(3, 11, 0), BlockStateProvider.simple(Blocks.OAK_LEAVES), new FancyFoliagePlacer(ConstantInt.of(2), ConstantInt.of(4), 4), new TwoLayersFeatureSize(0, 0, 0, OptionalInt.of(4)), belowTrees)).ignoreVines().decorators(List.of(new BeehiveDecorator(1.00F))).build()));
|
||||||
put("birch_bees", l -> simpleTree(createTree(Blocks.BIRCH_LOG, Blocks.BIRCH_LEAVES, 5, 2, 0, 2).ignoreVines().decorators(List.of(new BeehiveDecorator(1.00F))).build()));
|
put("birch_bees", l -> simpleTree(createTree(Blocks.BIRCH_LOG, Blocks.BIRCH_LEAVES, 5, 2, 0, 2).ignoreVines().decorators(List.of(new BeehiveDecorator(1.00F))).build()));
|
||||||
|
|
||||||
put("coral_tree", l -> simplePlop(Feature.CORAL_TREE, FeatureConfiguration.NONE));
|
put("coral_tree", l -> simplePlop(Feature.CORAL_TREE, FeatureConfiguration.NONE));
|
||||||
|
|||||||
@@ -6,11 +6,10 @@ import carpet.script.utils.shapes.ShapeDirection;
|
|||||||
|
|
||||||
import com.mojang.blaze3d.pipeline.RenderTarget;
|
import com.mojang.blaze3d.pipeline.RenderTarget;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import com.mojang.blaze3d.vertex.ByteBufferBuilder;
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.blaze3d.vertex.VertexFormat;
|
import com.mojang.blaze3d.vertex.VertexFormat;
|
||||||
import com.mojang.blaze3d.vertex.VertexFormat.Mode;
|
//import com.mojang.blaze3d.vertex.VertexFormat.Mode;
|
||||||
import com.mojang.math.Axis;
|
import com.mojang.math.Axis;
|
||||||
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
|
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
|
||||||
|
|
||||||
@@ -26,8 +25,8 @@ import net.minecraft.client.gui.Font;
|
|||||||
import net.minecraft.client.gui.components.debug.DebugScreenEntries;
|
import net.minecraft.client.gui.components.debug.DebugScreenEntries;
|
||||||
import net.minecraft.client.gui.font.TextRenderable;
|
import net.minecraft.client.gui.font.TextRenderable;
|
||||||
import net.minecraft.client.multiplayer.ClientLevel;
|
import net.minecraft.client.multiplayer.ClientLevel;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
//import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.RenderBuffers;
|
import net.minecraft.client.renderer.SubmitNodeStorage;
|
||||||
import net.minecraft.client.renderer.block.BlockModelRenderState;
|
import net.minecraft.client.renderer.block.BlockModelRenderState;
|
||||||
import net.minecraft.client.renderer.entity.DisplayRenderer;
|
import net.minecraft.client.renderer.entity.DisplayRenderer;
|
||||||
import net.minecraft.client.renderer.rendertype.RenderType;
|
import net.minecraft.client.renderer.rendertype.RenderType;
|
||||||
@@ -115,7 +114,7 @@ public class ShapesRenderer
|
|||||||
labels = new HashMap<>();
|
labels = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void render(RenderBuffers renderBuffers, LevelRenderState cameraa, Matrix4fc matrix4f, float partialTick)
|
public void render(SubmitNodeStorage submitNodeStorage, LevelRenderState cameraa, Matrix4fc matrix4f, float partialTick)
|
||||||
{
|
{
|
||||||
Runnable token = Carpet.startProfilerSection("Scarpet client");
|
Runnable token = Carpet.startProfilerSection("Scarpet client");
|
||||||
// posestack is not needed anymore - left as TODO to cleanup later
|
// posestack is not needed anymore - left as TODO to cleanup later
|
||||||
@@ -169,7 +168,7 @@ public class ShapesRenderer
|
|||||||
shapes.get(dimensionType).values().forEach(s -> {
|
shapes.get(dimensionType).values().forEach(s -> {
|
||||||
if ((!s.shape.debug || entityBoxes) && s.shouldRender(dimensionType))
|
if ((!s.shape.debug || entityBoxes) && s.shouldRender(dimensionType))
|
||||||
{
|
{
|
||||||
s.renderLines(matrices, cameraX, cameraY, cameraZ, partialTick, cameraa, s.shape.seethrough ? onTop : normal);
|
s.renderLines(matrices, cameraX, cameraY, cameraZ, partialTick, cameraa, s.shape.seethrough ? onTop : normal, submitNodeStorage );
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// faces
|
// faces
|
||||||
@@ -191,23 +190,23 @@ public class ShapesRenderer
|
|||||||
labels.get(dimensionType).values().forEach(s -> {
|
labels.get(dimensionType).values().forEach(s -> {
|
||||||
if ((!s.shape.debug || entityBoxes) && s.shouldRender(dimensionType))
|
if ((!s.shape.debug || entityBoxes) && s.shouldRender(dimensionType))
|
||||||
{
|
{
|
||||||
s.renderLines(matrices, cameraX, cameraY, cameraZ, partialTick, cameraa, s.shape.seethrough ? onTop : normal);
|
s.renderLines(matrices, cameraX, cameraY, cameraZ, partialTick, cameraa, s.shape.seethrough ? onTop : normal, submitNodeStorage );
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
MultiBufferSource.BufferSource bufferSource = renderBuffers.bufferSource();
|
//MultiBufferSource.BufferSource bufferSource = renderBuffers. bufferSource();
|
||||||
bufferSource.uploadAndDraw();
|
//bufferSource.uploadAndDraw();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
normal.submit(client.gameRenderer.featureRenderDispatcher().getSubmitNodeStorage(), cameraa.cameraRenderState, false);
|
normal.submit(submitNodeStorage, cameraa.cameraRenderState, false);
|
||||||
bufferSource.uploadAndDraw();
|
//bufferSource.uploadAndDraw();
|
||||||
|
|
||||||
if (false) {
|
if (false) {
|
||||||
final RenderTarget mainRenderTarget = Minecraft.getInstance().gameRenderer.mainRenderTarget();
|
final RenderTarget mainRenderTarget = Minecraft.getInstance().gameRenderer.mainRenderTarget();
|
||||||
RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(mainRenderTarget.getDepthTexture(), 1.0);
|
RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(mainRenderTarget.getDepthTexture(), 1.0);
|
||||||
onTop.submit(client.gameRenderer.featureRenderDispatcher().getSubmitNodeStorage(), cameraa.cameraRenderState, true);
|
onTop.submit(submitNodeStorage, cameraa.cameraRenderState, true);
|
||||||
bufferSource.uploadAndDraw();
|
//bufferSource.uploadAndDraw();
|
||||||
|
|
||||||
RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(Minecraft.getInstance().gameRenderer.mainRenderTarget().getDepthTexture(), 1.0);
|
RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(Minecraft.getInstance().gameRenderer.mainRenderTarget().getDepthTexture(), 1.0);
|
||||||
|
|
||||||
@@ -286,7 +285,7 @@ public class ShapesRenderer
|
|||||||
long expiryTick;
|
long expiryTick;
|
||||||
double renderEpsilon;
|
double renderEpsilon;
|
||||||
|
|
||||||
public abstract void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives);
|
public abstract void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives, SubmitNodeStorage submitNodeStorage);
|
||||||
|
|
||||||
public void renderFaces(double cx, double cy, double cz, float partialTick, DrawableGizmoPrimitives primitives)
|
public void renderFaces(double cx, double cy, double cz, float partialTick, DrawableGizmoPrimitives primitives)
|
||||||
{
|
{
|
||||||
@@ -360,7 +359,7 @@ public class ShapesRenderer
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderLines(PoseStack matrices, double cx, double cy,
|
public void renderLines(PoseStack matrices, double cx, double cy,
|
||||||
double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives)
|
double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives, SubmitNodeStorage submitNodeStorage)
|
||||||
{
|
{
|
||||||
if (shape.a == 0.0)
|
if (shape.a == 0.0)
|
||||||
{
|
{
|
||||||
@@ -417,7 +416,7 @@ public class ShapesRenderer
|
|||||||
|
|
||||||
blockState = shape.blockState;
|
blockState = shape.blockState;
|
||||||
|
|
||||||
MultiBufferSource.BufferSource immediate = client.gameRenderer.renderBuffers().bufferSource();
|
//MultiBufferSource.BufferSource immediate = client.gameRenderer.renderBuffers().bufferSource();
|
||||||
if (!isitem)
|
if (!isitem)
|
||||||
{
|
{
|
||||||
// draw the block itself
|
// draw the block itself
|
||||||
@@ -433,7 +432,7 @@ public class ShapesRenderer
|
|||||||
//renderState.model = state;
|
//renderState.model = state;
|
||||||
//renderState.block = blockState.getBlock();
|
//renderState.block = blockState.getBlock();
|
||||||
|
|
||||||
renderState.submit(matrices, client.gameRenderer.featureRenderDispatcher().getSubmitNodeStorage(), light, OverlayTexture.NO_OVERLAY, EntityRenderState.NO_OUTLINE);
|
renderState.submit(matrices, submitNodeStorage, light, OverlayTexture.NO_OVERLAY, EntityRenderState.NO_OUTLINE);
|
||||||
|
|
||||||
|
|
||||||
//client.getBlockRenderer().renderSingleBlock(blockState, matrices, immediate, light, OverlayTexture.NO_OVERLAY);
|
//client.getBlockRenderer().renderSingleBlock(blockState, matrices, immediate, light, OverlayTexture.NO_OVERLAY);
|
||||||
@@ -476,7 +475,7 @@ public class ShapesRenderer
|
|||||||
//matrices.mulPose(levelRenderState.cameraRenderState.);
|
//matrices.mulPose(levelRenderState.cameraRenderState.);
|
||||||
|
|
||||||
|
|
||||||
blockEntityRenderer.submit(state, matrices,client.gameRenderer.featureRenderDispatcher().getSubmitNodeStorage(), levelRenderState.cameraRenderState);
|
blockEntityRenderer.submit(state, matrices,submitNodeStorage, levelRenderState.cameraRenderState);
|
||||||
//blockEntityRenderer.submit(BlockEntity, partialTick,
|
//blockEntityRenderer.submit(BlockEntity, partialTick,
|
||||||
// matrices, light, OverlayTexture.NO_OVERLAY, camera1.getPosition(), null, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage());
|
// matrices, light, OverlayTexture.NO_OVERLAY, camera1.getPosition(), null, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage());
|
||||||
|
|
||||||
@@ -492,14 +491,14 @@ public class ShapesRenderer
|
|||||||
|
|
||||||
final ItemStackRenderState itemState = new ItemStackRenderState();
|
final ItemStackRenderState itemState = new ItemStackRenderState();
|
||||||
client.getItemModelResolver().updateForTopItem(itemState, shape.item, ItemDisplayContext.FIXED, client.level, null, 0);
|
client.getItemModelResolver().updateForTopItem(itemState, shape.item, ItemDisplayContext.FIXED, client.level, null, 0);
|
||||||
itemState.submit(matrices, client.gameRenderer.featureRenderDispatcher().getSubmitNodeStorage(), light, OverlayTexture.NO_OVERLAY, EntityRenderState.NO_OUTLINE);
|
itemState.submit(matrices, submitNodeStorage, light, OverlayTexture.NO_OVERLAY, EntityRenderState.NO_OUTLINE);
|
||||||
|
|
||||||
//client.getItemRenderer().renderStatic(shape.item, transformType, light,
|
//client.getItemRenderer().renderStatic(shape.item, transformType, light,
|
||||||
// OverlayTexture.NO_OVERLAY, matrices, immediate, client.level, (int) shape.key(client.level.registryAccess()));
|
// OverlayTexture.NO_OVERLAY, matrices, immediate, client.level, (int) shape.key(client.level.registryAccess()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
matrices.popPose();
|
matrices.popPose();
|
||||||
immediate.uploadAndDraw();
|
//immediate.uploadAndDraw();
|
||||||
////RenderSystem.disableCull();
|
////RenderSystem.disableCull();
|
||||||
////RenderSystem.disableDepthTest();
|
////RenderSystem.disableDepthTest();
|
||||||
////RenderSystem.depthMask(false);
|
////RenderSystem.depthMask(false);
|
||||||
@@ -523,7 +522,7 @@ public class ShapesRenderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives)
|
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives, SubmitNodeStorage submitNodeStorage)
|
||||||
{
|
{
|
||||||
if (shape.a == 0.0)
|
if (shape.a == 0.0)
|
||||||
{
|
{
|
||||||
@@ -575,22 +574,33 @@ public class ShapesRenderer
|
|||||||
}
|
}
|
||||||
//try (ByteBufferBuilder bbb = new ByteBufferBuilder(RenderType.TRANSIENT_BUFFER_SIZE))
|
//try (ByteBufferBuilder bbb = new ByteBufferBuilder(RenderType.TRANSIENT_BUFFER_SIZE))
|
||||||
//{
|
//{
|
||||||
MultiBufferSource.BufferSource immediate = Minecraft.getInstance().gameRenderer.renderBuffers().bufferSource();
|
//MultiBufferSource.BufferSource immediate = Minecraft.getInstance().gameRenderer.renderBuffers().bufferSource();
|
||||||
|
|
||||||
// text doesn't appear if backgroud is set
|
// text doesn't appear if backgroud is set
|
||||||
///script run draw_shape('label', 100, 'pos', [200, 100, 200], 'text', 'Hewwo World!', 'color', 0xffffffff, 'fill', 0x33333333)
|
///script run draw_shape('label', 100, 'pos', [200, 100, 200], 'text', 'Hewwo World!', 'color', 0xffffffff, 'fill', 0x33333333)
|
||||||
//textRenderer.drawInBatch(shape.value, text_x, 0.0F, shape.textcolor, false, matrices.last().pose(), immediate, Font.DisplayMode.SEE_THROUGH, shape.textbck, 15728880);
|
//textRenderer.drawInBatch(shape.value, text_x, 0.0F, shape.textcolor, false, matrices.last().pose(), immediate, Font.DisplayMode.SEE_THROUGH, shape.textbck, 15728880);
|
||||||
|
|
||||||
final Font.PreparedText preparedText = textRenderer.prepareText(shape.value.getVisualOrderText(), text_x, 0.0F, shape.textcolor, false, false,0);
|
final Font.PreparedText preparedText = textRenderer.prepareText(shape.value.getVisualOrderText(), text_x, 0.0F, shape.textcolor, false, false,0);
|
||||||
preparedText.visit(new Font.GlyphVisitor() {
|
|
||||||
|
/*preparedText.visit(new Font.GlyphVisitor() {
|
||||||
@Override
|
@Override
|
||||||
public void acceptRenderable(final TextRenderable renderable) {
|
public void acceptRenderable(final TextRenderable renderable) {
|
||||||
final VertexConsumer buffer = immediate.getBuffer(renderable.renderType(Font.DisplayMode.NORMAL));
|
final VertexConsumer buffer = getVertexBuilder(renderable.renderType(Font.DisplayMode.NORMAL));
|
||||||
renderable.render(matrices.last().pose(), buffer, LightCoordsUtil.FULL_BRIGHT, false);
|
renderable.render(matrices.last().pose(), buffer, LightCoordsUtil.FULL_BRIGHT, false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
immediate.uploadAndDraw();
|
preparedText.visit(new Font.GlyphVisitor() {
|
||||||
|
@Override
|
||||||
|
public void acceptRenderable(final TextRenderable renderable) {
|
||||||
|
//final VertexConsumer buffer = immediate.getBuffer(renderable.renderType(Font.DisplayMode.NORMAL));
|
||||||
|
renderable.render(matrices.last().pose(), buffer, LightCoordsUtil.FULL_BRIGHT, false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
//immediate.uploadAndDraw();
|
||||||
//}
|
//}
|
||||||
matrices.popPose();
|
matrices.popPose();
|
||||||
////RenderSystem.enableCull();
|
////RenderSystem.enableCull();
|
||||||
@@ -626,7 +636,7 @@ public class ShapesRenderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives)
|
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives, SubmitNodeStorage submitNodeStorage)
|
||||||
{
|
{
|
||||||
if (shape.a == 0.0)
|
if (shape.a == 0.0)
|
||||||
{
|
{
|
||||||
@@ -670,7 +680,7 @@ public class ShapesRenderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives)
|
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives, SubmitNodeStorage submitNodeStorage)
|
||||||
{
|
{
|
||||||
Vec3 v1 = shape.relativiseRender(client.level, shape.from, partialTick);
|
Vec3 v1 = shape.relativiseRender(client.level, shape.from, partialTick);
|
||||||
Vec3 v2 = shape.relativiseRender(client.level, shape.to, partialTick);
|
Vec3 v2 = shape.relativiseRender(client.level, shape.to, partialTick);
|
||||||
@@ -685,8 +695,8 @@ public class ShapesRenderer
|
|||||||
public static class RenderedPolyface extends RenderedShape<ShapeDispatcher.Polyface>
|
public static class RenderedPolyface extends RenderedShape<ShapeDispatcher.Polyface>
|
||||||
{
|
{
|
||||||
// mode now can only be 4, 5, or 6
|
// mode now can only be 4, 5, or 6
|
||||||
private static final VertexFormat.Mode[] faceIndices = new VertexFormat.Mode[]{
|
//private static final VertexFormat.Mode[] faceIndices = new VertexFormat.Mode[]{
|
||||||
Mode.LINES, Mode.LINES, Mode.DEBUG_LINES, Mode.DEBUG_LINE_STRIP, Mode.TRIANGLES, Mode.TRIANGLE_STRIP, Mode.TRIANGLE_FAN, Mode.QUADS};
|
// Mode.LINES, Mode.LINES, Mode.DEBUG_LINES, Mode.DEBUG_LINE_STRIP, Mode.TRIANGLES, Mode.TRIANGLE_STRIP, Mode.TRIANGLE_FAN, Mode.QUADS};
|
||||||
|
|
||||||
private static final RenderType [] renderTypes = new RenderType[] {
|
private static final RenderType [] renderTypes = new RenderType[] {
|
||||||
RenderTypes.lines(),
|
RenderTypes.lines(),
|
||||||
@@ -742,7 +752,7 @@ public class ShapesRenderer
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderLines(PoseStack matrices, double cx, double cy,
|
public void renderLines(PoseStack matrices, double cx, double cy,
|
||||||
double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives)
|
double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives, SubmitNodeStorage submitNodeStorage)
|
||||||
{
|
{
|
||||||
if (shape.a == 0)
|
if (shape.a == 0)
|
||||||
{
|
{
|
||||||
@@ -877,7 +887,7 @@ public class ShapesRenderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives)
|
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives, SubmitNodeStorage submitNodeStorage)
|
||||||
{
|
{
|
||||||
if (shape.a == 0.0)
|
if (shape.a == 0.0)
|
||||||
{
|
{
|
||||||
@@ -913,7 +923,7 @@ public class ShapesRenderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives)
|
public void renderLines(PoseStack matrices, double cx, double cy, double cz, float partialTick, LevelRenderState levelRenderState, DrawableGizmoPrimitives primitives, SubmitNodeStorage submitNodeStorage)
|
||||||
{
|
{
|
||||||
if (shape.a == 0.0)
|
if (shape.a == 0.0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in new issue
Block a user