Compare commits

...

2 Commits

8 changed files with 108 additions and 26 deletions

View File

@ -2,13 +2,13 @@
org.gradle.jvmargs=-Xmx1G org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
minecraft_version=b1.7.3 minecraft_version=b1.7.3
loader_version=1.0.0 loader_version=1.0.0
plasma_build=22 plasma_build=22
#This is actually 1.1.0, but that decided it didn't want to build on maven #This is actually 1.1.0, but that decided it didn't want to build on maven
api_version=1.1.0.1 api_version=1.1.0.1
# Mod Properties # Mod Properties
mod_version = 1.0.0 mod_version = 1.0.0
maven_group = xyz.pixelatedw.finalbeta maven_group = xyz.pixelatedw.finalbeta
archives_base_name = finalbeta archives_base_name = finalbeta

View File

@ -17,9 +17,10 @@ public class ModConfig {
public static final Option<Boolean> SUGAR_CANE_ON_SAND = make("Sugar Cane on sand", true, "Allows sugar canes to be placed on sand"); public static final Option<Boolean> SUGAR_CANE_ON_SAND = make("Sugar Cane on sand", true, "Allows sugar canes to be placed on sand");
public static final Option<Boolean> ADD_MORE_SOUNDS = make("Add more sounds", true, public static final Option<Boolean> ADD_MORE_SOUNDS = make("Add more sounds", true,
"Links a few more sounds from your local 'resources' folder with the game, namely for item breaking, minecarts and chests"); "Links a few more sounds from your local 'resources' folder with the game, namely for item breaking, minecarts and chests");
public static final Option<Boolean> ENABLE_CLOUDS = make("Enable Clouds", true, public static final Option<Boolean> ENABLE_CLOUDS = make("Enable Clouds", true, "Enables the rendering of clouds");
"Enables the rendering of clouds"); public static final Option<Boolean> DISABLE_ID_TAGS = make("Disable ID Tags", true,
"Disables id tags showing above entities in F3 mode");
public static final Option<Boolean> FIX_BOW_MODEL = make("Fix bow model", true, public static final Option<Boolean> FIX_BOW_MODEL = make("Fix bow model", true,
"Makes the box model held by players and skeletons bigger and facing forward"); "Makes the box model held by players and skeletons bigger and facing forward");
public static final Option<Boolean> FIX_MINECART_FLICKERING = make("Fix minecart flickering", true, public static final Option<Boolean> FIX_MINECART_FLICKERING = make("Fix minecart flickering", true,
@ -38,7 +39,7 @@ public class ModConfig {
"Fixes saddles not dropping when killing saddled pigs"); "Fixes saddles not dropping when killing saddled pigs");
public static final Option<Boolean> FIX_FURNACE_LAVA_BUCKET = make("Fix furnace lava bucket", true, public static final Option<Boolean> FIX_FURNACE_LAVA_BUCKET = make("Fix furnace lava bucket", true,
"Fixes furnaces consuming the bucket when using lava buckets as fuel"); "Fixes furnaces consuming the bucket when using lava buckets as fuel");
private static ModConfig instance = new ModConfig(); private static ModConfig instance = new ModConfig();
public static final ModConfig instance() { public static final ModConfig instance() {
return instance; return instance;
@ -77,7 +78,7 @@ public class ModConfig {
public <T> T get(Option<T> o) { public <T> T get(Option<T> o) {
return this.fileConfig.getOrElse(o.name, o.defaultValue); return this.fileConfig.getOrElse(o.name, o.defaultValue);
} }
public <T> T set(Option<T> o, T value) { public <T> T set(Option<T> o, T value) {
return this.fileConfig.set(o.name, value); return this.fileConfig.set(o.name, value);
} }
@ -101,7 +102,7 @@ public class ModConfig {
public T get() { public T get() {
return ModConfig.instance().get(this); return ModConfig.instance().get(this);
} }
public void set(T value) { public void set(T value) {
ModConfig.instance().set(this, value); ModConfig.instance().set(this, value);
} }

View File

@ -2,8 +2,11 @@ package xyz.pixelatedw.finalbeta;
import java.lang.management.ManagementFactory; import java.lang.management.ManagementFactory;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.time.Duration;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.Player;
import net.minecraft.stat.Stats;
public class WyHelper { public class WyHelper {
@ -18,6 +21,25 @@ public class WyHelper {
return null; return null;
} }
public static boolean isTimeBehind() {
// int currentPlayTime = WyHelper.getInstance().statManager.getStatAmount(Stats.playOneMinute)
return false;
}
public static long getTicksPlayed() {
return WyHelper.getInstance().statManager.getStatAmount(Stats.playOneMinute);
}
public static long getRealDaysPlayed() {
int seconds = WyHelper.getInstance().statManager.getStatAmount(Stats.playOneMinute) / 20;
return Duration.ofSeconds(seconds).toDays();
}
public static long getGameDaysPlayed() {
int seconds = WyHelper.getInstance().statManager.getStatAmount(Stats.playOneMinute) / 20;
return Duration.ofSeconds(seconds).toMinutes() / 20;
}
public static boolean isDebug() { public static boolean isDebug() {
return ManagementFactory.getRuntimeMXBean().getInputArguments().toString().indexOf("-agentlib:jdwp") > 0; return ManagementFactory.getRuntimeMXBean().getInputArguments().toString().indexOf("-agentlib:jdwp") > 0;
} }
@ -30,7 +52,8 @@ public class WyHelper {
return val < min ? min : Math.min(val, max); return val < min ? min : Math.min(val, max);
} }
// public static void cheatCommand(Player player) { public static void cheatCommand(Player player) {
// player.dropItem(new ItemInstance(Tile.SNOW)); // player.dropItem(new ItemInstance(Tile.SNOW));
// Random rand = new Random(); // Random rand = new Random();
// player.level.playSound(player, "random.break", 1, (rand.nextFloat() - rand.nextFloat()) * 0.2F + 1.0F); // player.level.playSound(player, "random.break", 1, (rand.nextFloat() - rand.nextFloat()) * 0.2F + 1.0F);
@ -59,5 +82,5 @@ public class WyHelper {
// player.level.getProperties().setRainTime(0); // player.level.getProperties().setRainTime(0);
// player.level.getProperties().setThundering(false); // player.level.getProperties().setThundering(false);
// player.level.getProperties().setThunderTime(0); // player.level.getProperties().setThunderTime(0);
// } }
} }

View File

@ -2,6 +2,7 @@ package xyz.pixelatedw.finalbeta.mixin;
import java.util.Random; import java.util.Random;
import org.lwjgl.input.Keyboard;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
@ -12,6 +13,7 @@ import net.minecraft.entity.player.ClientPlayer;
import net.minecraft.entity.player.Player; import net.minecraft.entity.player.Player;
import net.minecraft.inventory.Inventory; import net.minecraft.inventory.Inventory;
import xyz.pixelatedw.finalbeta.ModConfig; import xyz.pixelatedw.finalbeta.ModConfig;
import xyz.pixelatedw.finalbeta.WyHelper;
@Mixin(ClientPlayer.class) @Mixin(ClientPlayer.class)
public class ClientPlayerMixin { public class ClientPlayerMixin {
@ -20,10 +22,10 @@ public class ClientPlayerMixin {
@Inject(method = "method_136", at = @At("TAIL")) @Inject(method = "method_136", at = @At("TAIL"))
public void onKeyPressed(int key, boolean state, CallbackInfo ci) { public void onKeyPressed(int key, boolean state, CallbackInfo ci) {
// if (WyHelper.isDebug() && key == 25 && state) { if (WyHelper.isDebug() && key == Keyboard.KEY_Z && state) {
// Player player = (Player) (Object) this; Player player = (Player) (Object) this;
// WyHelper.cheatCommand(player); WyHelper.cheatCommand(player);
// } }
} }
@Inject(method = "openChestScreen", at = @At("TAIL")) @Inject(method = "openChestScreen", at = @At("TAIL"))

View File

@ -27,7 +27,7 @@ public class ContainerScreenMixin extends ScreenMixin {
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/container/ContainerScreen;renderForeground()V", shift = Shift.AFTER)) @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/container/ContainerScreen;renderForeground()V", shift = Shift.AFTER))
public void onRender(int i, int j, float f, CallbackInfo ci) { public void onRender(int i, int j, float f, CallbackInfo ci) {
ContainerScreen screen = ((ContainerScreen) (Object) this); ContainerScreen screen = ((ContainerScreen) (Object) this);
PlayerInventory selectedItem = minecraft.player.inventory; PlayerInventory selectedItem = this.minecraft.player.inventory;
int posX = (screen.width - this.containerWidth) / 2; int posX = (screen.width - this.containerWidth) / 2;
int posY = (screen.height - this.containerHeight) / 2; int posY = (screen.height - this.containerHeight) / 2;
@ -42,10 +42,8 @@ public class ContainerScreenMixin extends ScreenMixin {
if (selectedItem.getCursorItem() != null) { if (selectedItem.getCursorItem() != null) {
GL11.glTranslatef(0.0F, 0.0F, 32.0F); GL11.glTranslatef(0.0F, 0.0F, 32.0F);
itemRenderer.renderItemInstance(minecraft.textRenderer, minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8, itemRenderer.renderItemInstance(this.minecraft.textRenderer, this.minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8, j - posY - 8);
j - posY - 8); itemRenderer.method_1488(this.minecraft.textRenderer, this.minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8, j - posY - 8);
itemRenderer.method_1488(minecraft.textRenderer, minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8,
j - posY - 8);
} }
GL11.glDisable(32826); GL11.glDisable(32826);

View File

@ -2,9 +2,14 @@ package xyz.pixelatedw.finalbeta.mixin;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.model.EntityModel;
import net.minecraft.entity.LivingEntity;
import xyz.pixelatedw.finalbeta.ModConfig;
@Mixin(LivingEntityRenderer.class) @Mixin(LivingEntityRenderer.class)
public class LivingEntityRendererMixin { public class LivingEntityRendererMixin {
@ -13,4 +18,11 @@ public class LivingEntityRendererMixin {
@Shadow @Shadow
protected EntityModel model; protected EntityModel model;
@Inject(method = "method_821", at = @At("HEAD"), cancellable = true)
public void method_821(LivingEntity entity, double d, double d1, double d2, CallbackInfo ci) {
if (ModConfig.DISABLE_ID_TAGS.get()) {
ci.cancel();
}
}
} }

View File

@ -0,0 +1,45 @@
package xyz.pixelatedw.finalbeta.mixin;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Slice;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.gui.Overlay;
import net.minecraft.client.render.TextRenderer;
import xyz.pixelatedw.finalbeta.WyHelper;
@Mixin(Overlay.class)
public class OverlayMixin extends DrawableHelper {
@Shadow
private Minecraft minecraft;
@Inject(
method = "render(FZII)V",
at = @At(
value = "INVOKE",
target = "Lorg/lwjgl/opengl/GL11;glPopMatrix()V"
),
slice = @Slice(
from = @At(
value = "INVOKE",
target = "drawTextWithShadow(Lnet/minecraft/client/render/TextRenderer;Ljava/lang/String;III)V"
),
to = @At(
value = "FIELD",
target = "jukeboxMessageTime:I",
opcode = Opcodes.GETFIELD
)
)
)
public void render(float f, boolean flag, int i, int j, CallbackInfo ci) {
TextRenderer textRenderer = this.minecraft.textRenderer;
this.drawTextWithShadow(textRenderer, "Days Played: " + WyHelper.getGameDaysPlayed() + " (" + WyHelper.getRealDaysPlayed() + ")", 2, 96, 14737632);
}
}

View File

@ -27,7 +27,8 @@
"FurnaceEntityMixin", "FurnaceEntityMixin",
"WorldRendererMixin", "WorldRendererMixin",
"VideoSettingsScreenMixin", "VideoSettingsScreenMixin",
"TileMixin" "TileMixin",
"OverlayMixin"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1