Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions build.fabric.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ sourceSets {
}

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

base {
Expand Down
13 changes: 9 additions & 4 deletions build.neoforge.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("net.neoforged.moddev") version "2.0.137"
id("net.neoforged.moddev") version "2.0.141"
id("java")
}
val modVersion = property("mod.version").toString()
Expand Down Expand Up @@ -45,13 +45,18 @@ sourceSets {
resources.srcDir(
"${rootDir}/versions/datagen/${sc.current.version.substringBeforeLast("-")}/src/main/generated"
)
java {
val platform = "de/clickism/clicksigns/platform"
exclude("$platform/fabric/**")
exclude("$platform/forge/**")
}
}
}

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

base {
Expand Down
4 changes: 3 additions & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ stonecutter {
}
}
version("1.20.1", "fabric", "forge")
vcsVersion = "1.20.1-fabric"
version("1.20.4", "fabric")
version("1.21.1", "fabric", "neoforge")
vcsVersion = "1.21.1-fabric"
}
}
2 changes: 1 addition & 1 deletion src/main/java/de/clickism/clicksigns/ClickSigns.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public class ClickSigns {
public static void initialize() {
ClickSignsBlocks.initialize();
ClickSignsBlockEntityTypes.initialize();
PacketRegistry.register(RoadSignUpdatePacket.TYPE);
PacketRegistry.register(RoadSignUpdatePacket.SUBTYPE);
Platform.network().register(); // Register network
// Add reload listener
Platform.get().addReloadListener(new TileSetListener());
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/de/clickism/clicksigns/ClickSignsBlocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ public class ClickSignsBlocks {
*/
public static final Supplier<Block> ROAD_SIGN = Platform.get().registerBlockWithItem(
"road_sign",
BlockBehaviour.Properties.copy(Blocks.STONE),
//?if < 1.20.4
/*BlockBehaviour.Properties.copy(Blocks.STONE),*/
//? if >= 1.20.4
BlockBehaviour.Properties.ofFullCopy(Blocks.STONE),
RoadSignBlock::new
);

Expand Down
23 changes: 21 additions & 2 deletions src/main/java/de/clickism/clicksigns/block/RoadSignBlock.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.clickism.clicksigns.block;

import com.mojang.serialization.MapCodec;
import de.clickism.clicksigns.entity.RoadSignBlockEntity;
import de.clickism.clicksigns.gui.GuiUtils;
import de.clickism.clicksigns.gui.screen.overview.SignOverviewScreen;
Expand All @@ -9,8 +10,10 @@
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.BaseEntityBlock;
import net.minecraft.world.level.block.RenderShape;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext;
Expand All @@ -27,6 +30,8 @@
public class RoadSignBlock extends HorizontalFacingBlockWithEntity {

// Shapes for each facing direction
//? if >= 1.20.4
public static final MapCodec<RoadSignBlock> CODEC = simpleCodec(RoadSignBlock::new);
private static final double THICKNESS = 0.03;
private static final VoxelShape NORTH_SHAPE = Shapes.box(0, 0, 0, 1, 1, THICKNESS);
private static final VoxelShape SOUTH_SHAPE = NORTH_SHAPE.move(0, 0, 1 - THICKNESS);
Expand All @@ -37,6 +42,12 @@ public RoadSignBlock(Properties properties) {
super(properties);
}

//? if >= 1.20.4 {
@Override
protected MapCodec<? extends BaseEntityBlock> codec() {
return null;
}//? }

@Override
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
return new RoadSignBlockEntity(pos, state);
Expand All @@ -62,12 +73,17 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
}

@Override
public @NotNull InteractionResult use(
//? if < 1.21.1
/*public*/
//? if >= 1.21.1
protected
@NotNull InteractionResult /*? if < 1.21.1 {*/ /*use*/ /*?} elif >= 1.21.1 {*/ useWithoutItem /*?}*/(
@NotNull BlockState state,
@NotNull Level level,
@NotNull BlockPos pos,
@NotNull Player player,
@NotNull InteractionHand hand,
//? if < 1.21.1
/*@NotNull InteractionHand hand,*/
@NotNull BlockHitResult hit
) {
if (!level.isClientSide) return InteractionResult.SUCCESS;
Expand Down Expand Up @@ -101,4 +117,7 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
public @NotNull RenderShape getRenderShape(@NotNull BlockState state) {
return RenderShape.INVISIBLE;
}
//? if >= 1.21.1 {

//? }
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import de.clickism.clicksigns.sign.RoadSign;
import de.clickism.clicksigns.util.nbt.NbtReaderWriterImpl;
import net.minecraft.core.BlockPos;
import net.minecraft.core.HolderLookup;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
Expand Down Expand Up @@ -62,22 +63,39 @@ public void setChanged() {
return ClientboundBlockEntityDataPacket.create(this);
}

//Inverse comma syntax is pain
@Override
public @NotNull CompoundTag getUpdateTag() {
public @NotNull CompoundTag getUpdateTag(
//? if >= 1.21.1
HolderLookup.Provider provider
) {
var tag = new CompoundTag();
this.saveAdditional(tag);
this.saveAdditional(
tag
//? if >= 1.21.1
, provider
);
return tag;
}

@Override
protected void saveAdditional(CompoundTag tag) {
super.saveAdditional(tag);
protected void saveAdditional(
CompoundTag tag
//? if >= 1.21.1
, HolderLookup.Provider provider
) {
super.saveAdditional(
tag
//? if >= 1.21.1
, provider
);
if (this.roadSign == null) return;
var writer = new NbtReaderWriterImpl(tag);
RoadSign.NBT_WRITER.write(writer, this.roadSign);
}

@Override
//? if < 1.21.1 {
/*@Override
public void load(CompoundTag tag) {
super.load(tag);
var reader = new NbtReaderWriterImpl(tag);
Expand All @@ -87,4 +105,17 @@ public void load(CompoundTag tag) {
ClickSigns.LOGGER.error("Failed to read road sign from block entity at {}", worldPosition, e);
}
}
*///? }
//? if >= 1.21.1 {
@Override
public void loadAdditional(CompoundTag tag, HolderLookup.Provider provider) {
super.loadAdditional(tag, provider);
var reader = new NbtReaderWriterImpl(tag);
try {
this.roadSign = RoadSign.NBT_READER.read(reader);
} catch (Exception e) {
ClickSigns.LOGGER.error("Failed to read road sign from block entity at {}", worldPosition, e);
}
}
//? }
}
10 changes: 7 additions & 3 deletions src/main/java/de/clickism/clicksigns/gui/screen/BaseScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,20 @@ protected BaseScreen(Component title, @Nullable Screen parent) {

@Override
public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTick) {
this.renderBackground(graphics);
this.actualRenderBackground(graphics);
hoveredWidget = GuiUtils.findFirstHoveredWidget(this, mouseX, mouseY);
super.render(graphics, mouseX, mouseY, partialTick);
}

@Override
public void renderBackground(GuiGraphics graphics) {
public void actualRenderBackground(GuiGraphics graphics) {
graphics.fillGradient(0, 0, this.width, this.height, -0x4FEFEFF0, -0x3FEFEFF0);
}

@Override
public void renderBackground(GuiGraphics graphics /*? if >= 1.21.1 {*/, int i, int j, float f /*? }*/) {
actualRenderBackground(graphics);
}

@Override
public void onClose() {
GuiUtils.openScreen(parent);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,12 +108,13 @@ private void renderScrollbar(GuiGraphics guiGraphics) {
}

@Override
public boolean mouseScrolled(double d, double e, double f) {
public boolean mouseScrolled(double d, double e, double f/*? if >= 1.20.4 {*/, double g /*? }*/) {
if (!this.visible) return false;
this.scroll(this.scrollAmount - f * SCROLL_RATE);
return true;
}


/**
* Set the scroll amount and clamp it.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package de.clickism.clicksigns.gui.widget;

import net.minecraft.SharedConstants;
//? if < 1.21.1
/*import net.minecraft.SharedConstants;*/
//? if >= 1.21.1
import net.minecraft.util.StringUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiGraphics;
Expand Down Expand Up @@ -275,8 +278,12 @@ public boolean listening() {
* @param input the input string to filter
* @return the filtered string
*/

protected String filterInput(String input) {
return SharedConstants.filterText(input);
//? if < 1.21.1
/*return SharedConstants.filterText(input);*/
//? if >= 1.21.1
return StringUtil.filterText(input);
}

@Override
Expand Down Expand Up @@ -354,7 +361,10 @@ protected void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, flo
@Override
public boolean charTyped(char c, int modifiers) {
if (!listening()) return false;
if (!SharedConstants.isAllowedChatCharacter(c)) return false;
//? if < 1.21.1
/*if (!SharedConstants.isAllowedChatCharacter(c)) return false;*/
//? if >= 1.21.1
if (!StringUtil.isAllowedChatCharacter(c)) return false;
insertText(Character.toString(c));
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@
import de.clickism.clicksigns.sign.RoadSign;
import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos;
//? if >= 1.21.1 {
import io.netty.buffer.ByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.codec.StreamDecoder;
import net.minecraft.network.codec.StreamMemberEncoder;
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
//? }

/**
* Packet for updating a road sign
Expand All @@ -19,10 +26,10 @@ public record RoadSignUpdatePacket(
BlockPos pos,
RoadSign roadSign
) implements Packet {

public static final PacketType<RoadSignUpdatePacket> TYPE = new PacketType<>(
public static final PacketType<RoadSignUpdatePacket> SUBTYPE = new PacketType<>(
ClickSigns.identifier("road_sign_update"),
// Writer
//? if < 1.21.1 {
/*// Writer
(buf, packet) -> {
buf.writeBlockPos(packet.pos());
RoadSign.PACKET_WRITER.accept(buf, packet.roadSign());
Expand All @@ -32,7 +39,20 @@ public record RoadSignUpdatePacket(
BlockPos pos = buf.readBlockPos();
RoadSign roadSign = RoadSign.PACKET_READER.apply(buf);
return new RoadSignUpdatePacket(pos, roadSign);
},
},*///? }
//? if >= 1.21.1 {
StreamCodec.of(
(buf, packet) -> {
buf.writeBlockPos(packet.pos());
RoadSign.PACKET.encode(buf, packet.roadSign());
},
(buf) -> {
BlockPos pos = buf.readBlockPos();
RoadSign roadSign = RoadSign.PACKET.decode(buf);
return new RoadSignUpdatePacket(pos, roadSign);
}
),
//? }
// Server Handler
(packet, player) -> {
var level = player.serverLevel();
Expand All @@ -54,8 +74,20 @@ public record RoadSignUpdatePacket(
}
);

@Override
public PacketType<?> subtype() {
return SUBTYPE;
}
//? if < 1.21.1 {
/*public static final PacketType<RoadSignUpdatePacket> TYPE = SUBTYPE;
@Override
public PacketType<?> type() {
return TYPE;
}
*///? } elif >= 1.21.1 {
public static final Type<RoadSignUpdatePacket> TYPE = new CustomPacketPayload.Type<RoadSignUpdatePacket>(SUBTYPE.id());
public Type<? extends Packet> type() {
return TYPE;
};
//? }
}
4 changes: 3 additions & 1 deletion src/main/java/de/clickism/clicksigns/platform/Platform.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ static Platform get() {
return de.clickism.clicksigns.platform.fabric.FabricPlatform.INSTANCE;
//? } elif forge {
/*return de.clickism.clicksigns.platform.forge.ForgePlatform.INSTANCE;
*///? } else {
*///? } elif neoforge {
/*return de.clickism.clicksigns.platform.neoforge.NeoForgePlatform.INSTANCE;
*///? } else {
/*throw new UnsupportedOperationException("No platform implementation found");
*///? }
}
Expand Down
Loading