Compare commits

...

3 Commits

Author SHA1 Message Date
Markil3
ed84dbd6c7 Fabric 1.14-1.2 Mod Release 2021-08-30 22:29:13 -06:00
Markil3
c5d703e748 Allows some items to not trigger a hand/crosshair update.
This is helpful if one is using Firework rockets to fly around the landscape.
2021-08-30 21:09:19 -06:00
Markil3
9a2a120352 Changes how the mod handles status bars slightly.
This should somewhat increase compatibility with the AppleSkin mod.
2021-07-22 13:20:27 -06:00
5 changed files with 63 additions and 6 deletions

1
.gitignore vendored
View File

@@ -32,3 +32,4 @@ bin/
run/
/logs/
/remappedSrc/

View File

@@ -12,6 +12,6 @@ modmenu_version=1.6.3-95
autoconfig_version=2.2.0
# Mod Properties
mod_version = 1.1.1
mod_version = 1.2
maven_group = markil3
archives_base_name = immersive_hud

View File

@@ -1,6 +1,10 @@
package markil3.immersive_hud;
import net.minecraft.item.Item;
import net.minecraft.item.Items;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.registry.Registry;
//import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
@@ -8,6 +12,12 @@ import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
import static markil3.immersive_hud.Main.TICKS_PER_SECOND;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* Configuration manager of this mod, which reads from and writes to this mod's
* configuration file.
@@ -90,6 +100,7 @@ public class ConfigManager
private boolean showArmor = true;
private double minHealth = 0.5;
private int minHunger = 17;
private Identifier[] ignoredItems = new Identifier[]{Registry.ITEM.getId(Items.FIREWORK_ROCKET)};
/**
* Returns the instance of this class.
@@ -250,6 +261,16 @@ public class ConfigManager
return this.minHunger;
}
/**
* Obtains a collection of items that won't cause hands and crosshairs to show when used.
*
* @return A set of ignored items.
*/
public Set<Item> getIgnoredItems()
{
return Arrays.stream(ignoredItems).map(Registry.ITEM::get).collect(Collectors.toSet());
}
/**
* Sets the time that the hands are allowed to display.
*
@@ -321,6 +342,16 @@ public class ConfigManager
{
this.minHunger = MathHelper.clamp(boundary, 0, 20);
}
/**
* Sets which items won't cause the hands and crosshairs to show when used.
*
* @param items - A set of ignored items.
*/
public void setIgnoredItems(Item... items)
{
this.ignoredItems = Arrays.stream(items).map(Registry.ITEM::getId).toArray(Identifier[]::new);
}
/**
* Saves changes to this mod's configuration.
*/

View File

@@ -48,7 +48,9 @@ import net.minecraft.util.math.MathHelper;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import java.util.Set;
/**
* Contains the logic for changing the HUD.
@@ -250,6 +252,8 @@ public class TimerUtils
ConfigManager.getInstance().getExperienceTime();
ConfigManager.TimeValues jump =
ConfigManager.getInstance().getJumpTime();
ConfigManager.TimeValues healthTimes = ConfigManager.getInstance().getHealthTime();
ConfigManager.TimeValues hungerTimes = ConfigManager.getInstance().getHungerTime();
float hotbarAlpha = Main.getAlpha(hotbarTime,
hotbar.getMaxTime(),
@@ -263,8 +267,21 @@ public class TimerUtils
jump.getMaxTime(),
jump.getFadeInTime(),
jump.getFadeOutTime());
float statusAlpha = Main.getAlpha(healthTime,
healthTimes.getMaxTime(),
healthTimes.getFadeInTime(),
healthTimes.getFadeOutTime());
statusAlpha = Math.max(statusAlpha, Main.getAlpha(hungerTime,
hungerTimes.getMaxTime(),
hungerTimes.getFadeInTime(),
hungerTimes.getFadeOutTime()));
/*
* Draw it in its standard location until it is completely transparent, then move it
* instantly.
*/
statusAlpha = (float) Math.ceil(statusAlpha);
return 7 * (1 - Math.max(experienceAlpha,
jumpAlpha)) + 22 * (1 - hotbarAlpha);
jumpAlpha)) + 22 * (1 - hotbarAlpha) + 42 * (1 - statusAlpha);
}
/**
@@ -289,6 +306,7 @@ public class TimerUtils
LivingEntity entity;
Item item;
Iterator<ItemStack> hands;
Set<Item> ignored;
if (mc.getCameraEntity() instanceof LivingEntity)
{
entity = (LivingEntity) mc.getCameraEntity();
@@ -314,6 +332,14 @@ public class TimerUtils
.map(ItemStack::getItem)
.orElse(null);
}
if (item != null)
{
ignored = ConfigManager.getInstance().getIgnoredItems();
if (ignored.contains(item))
{
return;
}
}
crosshairTime = ConfigManager.getInstance().getCrosshairTime();
if (hand == Hand.MAIN_HAND)
{

View File

@@ -330,9 +330,8 @@ public class HudHook
*/
@Inject(method = "renderStatusBars()V", at = @At(value = "INVOKE",
target = "Lnet" +
"/minecraft/util/profiler/Profiler;swap" +
"(Ljava/lang/String;)V",
ordinal = 1))
"/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V",
ordinal = 1, shift = At.Shift.BY, by = 3))
public void renderFood(CallbackInfo callbackInfo)
{
LOGGER.debug("Rendering food");