mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-10 20:45:10 +01:00
added a clientside config option to toggle the rainbow debugger
also added to a command to control the config option
This commit is contained in:
parent
dbfc429391
commit
53a5ef6357
@ -5,6 +5,7 @@ import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.simibubi.create.foundation.behaviour.filtering.FilteringCountUpdatePacket;
|
||||
import com.simibubi.create.foundation.command.ConfigureConfigPacket;
|
||||
import com.simibubi.create.foundation.packet.NbtPacket;
|
||||
import com.simibubi.create.foundation.packet.SimplePacketBase;
|
||||
import com.simibubi.create.modules.contraptions.components.contraptions.chassis.ConfigureChassisPacket;
|
||||
@ -45,6 +46,7 @@ public enum AllPackets {
|
||||
// Server to Client
|
||||
SYMMETRY_EFFECT(SymmetryEffectPacket.class, SymmetryEffectPacket::new),
|
||||
BEAM_EFFECT(BlockzapperBeamPacket.class, BlockzapperBeamPacket::new),
|
||||
CONFIGURE_CONFIG(ConfigureConfigPacket.class, ConfigureConfigPacket::new),
|
||||
|
||||
;
|
||||
|
||||
|
@ -21,6 +21,7 @@ public class CreateClientConfig {
|
||||
|
||||
public BooleanValue enableTooltips;
|
||||
public DoubleValue fanParticleDensity;
|
||||
public BooleanValue enableRainbowDebug;
|
||||
|
||||
CreateClientConfig(final ForgeConfigSpec.Builder builder) {
|
||||
builder.comment(
|
||||
@ -36,6 +37,11 @@ public class CreateClientConfig {
|
||||
fanParticleDensity = builder.comment("", "Controls the average amount of fan particles spawned per tick.")
|
||||
.translation(basePath + name).defineInRange(name, .5D, 0D, 1D);
|
||||
|
||||
name = "enableRainbowDebug";
|
||||
enableRainbowDebug = builder.comment("", "Show colorful debug information while the F3-Menu is open.")
|
||||
.translation(basePath + name).define(name, true);
|
||||
|
||||
|
||||
builder.pop();
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,43 @@
|
||||
package com.simibubi.create.foundation.command;
|
||||
|
||||
import com.simibubi.create.CreateClientConfig;
|
||||
import com.simibubi.create.foundation.packet.SimplePacketBase;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.fml.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class ConfigureConfigPacket extends SimplePacketBase {
|
||||
|
||||
private String option;
|
||||
private String value;
|
||||
|
||||
public ConfigureConfigPacket(String option, String value) {
|
||||
this.option = option;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public ConfigureConfigPacket(PacketBuffer buffer) {
|
||||
this.option = buffer.readString();
|
||||
this.value = buffer.readString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(PacketBuffer buffer) {
|
||||
buffer.writeString(option);
|
||||
buffer.writeString(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(Supplier<NetworkEvent.Context> ctx) {
|
||||
ctx.get().enqueueWork(() -> DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> {
|
||||
if (option.equals("rainbowDebug")){
|
||||
CreateClientConfig.instance.enableRainbowDebug.set(Boolean.parseBoolean(value));
|
||||
}
|
||||
}));
|
||||
|
||||
ctx.get().setPacketHandled(true);
|
||||
}
|
||||
}
|
@ -2,12 +2,18 @@ package com.simibubi.create.foundation.command;
|
||||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import net.minecraft.command.CommandSource;
|
||||
import net.minecraft.command.Commands;
|
||||
|
||||
public class CreateCommand {
|
||||
|
||||
public CreateCommand(CommandDispatcher<CommandSource> dispatcher){
|
||||
|
||||
KillTPSCommand.register(dispatcher);
|
||||
|
||||
dispatcher.register(Commands.literal("create")
|
||||
.then(ToggleDebugCommand.register())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
package com.simibubi.create.foundation.command;
|
||||
|
||||
import com.mojang.brigadier.arguments.BoolArgumentType;
|
||||
import com.mojang.brigadier.builder.ArgumentBuilder;
|
||||
import com.simibubi.create.AllPackets;
|
||||
import com.simibubi.create.CreateClientConfig;
|
||||
import net.minecraft.command.CommandSource;
|
||||
import net.minecraft.command.Commands;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.util.text.StringTextComponent;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.fml.network.PacketDistributor;
|
||||
|
||||
public class ToggleDebugCommand {
|
||||
|
||||
static ArgumentBuilder<CommandSource, ?> register() {
|
||||
return Commands.literal("toggleDebug")
|
||||
.requires(cs -> cs.hasPermissionLevel(0))
|
||||
.then(Commands.argument("value", BoolArgumentType.bool())
|
||||
.executes(ctx -> {
|
||||
boolean value = BoolArgumentType.getBool(ctx, "value");
|
||||
System.out.println("Command toggleDebug " + value);
|
||||
|
||||
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> CreateClientConfig.instance.enableRainbowDebug.set(value));
|
||||
|
||||
DistExecutor.runWhenOn(Dist.DEDICATED_SERVER, () -> () ->
|
||||
AllPackets.channel.send(
|
||||
PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) ctx.getSource().getEntity()),
|
||||
new ConfigureConfigPacket("rainbowDebug", String.valueOf(value))));
|
||||
|
||||
ctx.getSource().sendFeedback(new StringTextComponent((value ? "enabled" : "disabled") + " rainbow debug"), true);
|
||||
|
||||
return 1;
|
||||
}));
|
||||
}
|
||||
}
|
@ -4,6 +4,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.CreateClientConfig;
|
||||
import com.simibubi.create.foundation.utility.TessellatorHelper;
|
||||
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
||||
|
||||
@ -61,7 +63,7 @@ public class KineticDebugger {
|
||||
}
|
||||
|
||||
public static boolean isActive() {
|
||||
return Minecraft.getInstance().gameSettings.showDebugInfo;
|
||||
return Minecraft.getInstance().gameSettings.showDebugInfo && CreateClientConfig.instance.enableRainbowDebug.get();
|
||||
}
|
||||
|
||||
public static KineticTileEntity getSelectedTE() {
|
||||
|
Loading…
Reference in New Issue
Block a user