Skip to content

Commit

Permalink
iris shaders compat
Browse files Browse the repository at this point in the history
sync fixes
  • Loading branch information
CmdrJane committed Sep 4, 2021
1 parent a7b6665 commit 2a7bae6
Show file tree
Hide file tree
Showing 10 changed files with 72 additions and 17 deletions.
4 changes: 3 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ dependencies {

modImplementation "curse.maven:charm-318872:3393290"
modImplementation "curse.maven:simple-utilities-356722:3349846"
modImplementation "curse.maven:litematica-308892:3387062"
modApi "curse.maven:malilib-303119:3387061"
modImplementation "curse.maven:litematica-308892:3379278"
modImplementation "curse.maven:iris-455508:3404785"
implementation "com.moandjiezana.toml:toml4j:0.7.2"
implementation "com.electronwill.night-config:core:3.6.2"
implementation "com.electronwill.night-config:toml:3.6.2"
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ yarn_mappings=1.17.1+build.46
loader_version=0.11.6

# Mod Properties
mod_version = 1.4.2
mod_version = 1.4.2-v3
maven_group = net.fabricmc
archives_base_name = time-and-wind

Expand Down
9 changes: 9 additions & 0 deletions src/main/java/ru/aiefu/timeandwind/NetworkPacketsID.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.aiefu.timeandwind;

import net.minecraft.util.Identifier;

public class NetworkPacketsID {
public static final Identifier SYNC_CONFIG = new Identifier(TimeAndWind.MOD_ID, "sync_config");
public static final Identifier CFG_DEBUG_INFO = new Identifier(TimeAndWind.MOD_ID, "cfg_debug_info");
public static final Identifier WORLD_ID_CLIPBOARD = new Identifier(TimeAndWind.MOD_ID, "world_id_clipboard");
}
6 changes: 2 additions & 4 deletions src/main/java/ru/aiefu/timeandwind/TAWCommands.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import io.netty.buffer.Unpooled;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.passive.VillagerEntity;
import net.minecraft.network.PacketByteBuf;
Expand All @@ -14,7 +13,6 @@
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.LiteralText;
import net.minecraft.util.Identifier;

import java.io.File;
import java.util.ArrayList;
Expand Down Expand Up @@ -62,7 +60,7 @@ public static int reloadCfg(ServerCommandSource source) throws CommandSyntaxExce
public static int printCurrentWorldId(ServerCommandSource source) throws CommandSyntaxException {
String id = source.getPlayer().world.getRegistryKey().getValue().toString();
source.sendFeedback(new LiteralText(id), false);
ServerPlayNetworking.send(source.getPlayer(), new Identifier(TimeAndWind.MOD_ID, "world_id_clipboard"), new PacketByteBuf(Unpooled.buffer()).writeString(id));
ServerPlayNetworking.send(source.getPlayer(), NetworkPacketsID.WORLD_ID_CLIPBOARD, new PacketByteBuf(Unpooled.buffer()).writeString(id));
return 0;
}
public static int printAmbientDarkness(ServerCommandSource source) throws CommandSyntaxException {
Expand Down Expand Up @@ -93,7 +91,7 @@ public static int getTimeConfig(ServerCommandSource source) throws CommandSyntax
if(TimeAndWind.timeDataMap.containsKey(worldId)) {
TimeDataStorage storage = TimeAndWind.timeDataMap.get(worldId);
source.sendFeedback(new LiteralText("Server config for current world: Day Duration: " + storage.dayDuration + " Night Duration: " + storage.nightDuration), true);
ServerPlayNetworking.send(player, new Identifier(TimeAndWind.MOD_ID, "cfg_debug_info"), new PacketByteBuf(Unpooled.buffer()));
ServerPlayNetworking.send(player, NetworkPacketsID.CFG_DEBUG_INFO, new PacketByteBuf(Unpooled.buffer()));
} else source.sendError(new LiteralText("No Data found for current world on server side"));
return 0;
}
Expand Down
7 changes: 6 additions & 1 deletion src/main/java/ru/aiefu/timeandwind/TimeAndWind.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtList;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.Identifier;
import net.minecraft.world.World;
Expand Down Expand Up @@ -53,6 +54,10 @@ public void craftPaths(){
}
}

public static void checkConfig(MinecraftServer server){

}

public static void sendConfigSyncPacket(ServerPlayerEntity player){
if(!player.getServer().isHost(player.getGameProfile())) {
NbtList listTag = new NbtList();
Expand All @@ -68,7 +73,7 @@ public static void sendConfigSyncPacket(ServerPlayerEntity player){
}
NbtCompound tag = new NbtCompound();
tag.put("tawConfig", listTag);
ServerPlayNetworking.send(player, new Identifier(MOD_ID, "sync_config"), new PacketByteBuf(Unpooled.buffer()).writeNbt(tag));
ServerPlayNetworking.send(player, NetworkPacketsID.SYNC_CONFIG, new PacketByteBuf(Unpooled.buffer()).writeNbt(tag));
LOGGER.info("[Time & Wind] Sending config to player");
}
}
Expand Down
11 changes: 3 additions & 8 deletions src/main/java/ru/aiefu/timeandwind/TimeAndWindClient.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package ru.aiefu.timeandwind;

import io.netty.buffer.Unpooled;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtList;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.text.LiteralText;
import net.minecraft.util.Identifier;
import net.minecraft.util.Util;
Expand All @@ -29,7 +27,7 @@ public void onInitializeClient() {
dim.setCycleDuration(tag.getLong("dayD"), tag.getLong("nightD"));
}
});
ClientPlayNetworking.registerGlobalReceiver(new Identifier(TimeAndWind.MOD_ID, "sync_config"), (client, handler, buf, responseSender) -> {
ClientPlayNetworking.registerGlobalReceiver(NetworkPacketsID.SYNC_CONFIG, (client, handler, buf, responseSender) -> {
if(buf.readableBytes() > 0 ){
NbtCompound nbtCMP = buf.readNbt();
if(nbtCMP != null) {
Expand All @@ -50,13 +48,10 @@ public void onInitializeClient() {
dim.setCycleDuration(storage.dayDuration, storage.nightDuration);
}
TimeAndWind.LOGGER.info("[Time & Wind] Configuration synchronized");
return;
}
}
TimeAndWind.LOGGER.warn("[Time & Wind] Sync failed, requesting resync");
ClientPlayNetworking.send(new Identifier(TimeAndWind.MOD_ID, "request_resync"), new PacketByteBuf(Unpooled.buffer()));
});
ClientPlayNetworking.registerGlobalReceiver(new Identifier(TimeAndWind.MOD_ID, "cfg_debug_info"), (client, handler, buf, responseSender) -> {
ClientPlayNetworking.registerGlobalReceiver(NetworkPacketsID.CFG_DEBUG_INFO, (client, handler, buf, responseSender) -> {
try {
String worldId = client.world.getRegistryKey().getValue().toString();
if (TimeAndWind.timeDataMap.containsKey(worldId)) {
Expand All @@ -68,7 +63,7 @@ public void onInitializeClient() {
e.printStackTrace();
}
});
ClientPlayNetworking.registerGlobalReceiver(new Identifier(TimeAndWind.MOD_ID, "world_id_clipboard"), (client, handler, buf, responseSender) -> {
ClientPlayNetworking.registerGlobalReceiver(NetworkPacketsID.WORLD_ID_CLIPBOARD, (client, handler, buf, responseSender) -> {
try{
if(buf.readableBytes() > 0) {
String string = buf.readString();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package ru.aiefu.timeandwind.mixin;

import net.coderbot.iris.uniforms.HardcodedCustomUniforms;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;
import ru.aiefu.timeandwind.IDimType;

@Pseudo
@Mixin(HardcodedCustomUniforms.class)
public class HardcodedCustomUniformsMixins {
@ModifyConstant(method = "getTimeAngle()F", constant = @Constant(floatValue = 24000.0F), remap = false)
private static float patchTAWTA(float f){
return (float) ((IDimType) MinecraftClient.getInstance().world.getDimension()).getCycleDuration();
}
@ModifyConstant(method = "getWorldDayTime()I", constant = @Constant(longValue = 24000L), remap = false)
private static long patchTAWWDT(long l){
return ((IDimType) MinecraftClient.getInstance().world.getDimension()).getCycleDuration();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

@Mixin(PlayerManager.class)
public class PlayerManagerMixins {
@Inject(method = "onPlayerConnect", at = @At(value = "INVOKE", target = "net/minecraft/server/network/ServerPlayNetworkHandler.sendPacket(Lnet/minecraft/network/Packet;)V", shift = At.Shift.BEFORE, ordinal = 0))
@Inject(method = "onPlayerConnect", at = @At("HEAD"))
private void syncTimeDurationOnJoin(ClientConnection connection, ServerPlayerEntity player, CallbackInfo ci){
TimeAndWind.sendConfigSyncPacket(player);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package ru.aiefu.timeandwind.mixin;

import net.coderbot.iris.uniforms.WorldTimeUniforms;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;
import ru.aiefu.timeandwind.IDimType;

@Pseudo
@Mixin(WorldTimeUniforms.class)
public class WorldTimeUniformMixins {
@ModifyConstant(method = "getWorldDayTime()I", constant = @Constant(longValue = 24000L), remap = false)
private static long patchTAWWDT(long f){
return ((IDimType) MinecraftClient.getInstance().world.getDimension()).getCycleDuration();
}
@ModifyConstant(method = "getWorldDay()I", constant = @Constant(longValue = 24000L), remap = false)
private static long patchTAWWD(long l){
return ((IDimType) MinecraftClient.getInstance().world.getDimension()).getCycleDuration();
}
}
4 changes: 3 additions & 1 deletion src/main/resources/taw.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
"client": [
"DebugHudMixins",
"SimpleUtilsMixins",
"WorldRendererMixins"
"WorldRendererMixins",
"WorldTimeUniformMixins",
"HardcodedCustomUniformsMixins"
],
"injectors": {
"defaultRequire": 1
Expand Down

0 comments on commit 2a7bae6

Please sign in to comment.