Skip to content

Commit

Permalink
Keybind Shit
Browse files Browse the repository at this point in the history
  • Loading branch information
Leclowndu93150 committed Jun 9, 2024
1 parent c40e769 commit e0e8b96
Show file tree
Hide file tree
Showing 17 changed files with 173 additions and 99 deletions.
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@ neo_version_range=[20.6,)

loader_version_range=[2,)

mod_id=flightutils
mod_id=modular_angelring

mod_name=Flight Utilities
mod_name=Modular Angel Ring

mod_license=All Rights Reserved

mod_version=1.0.0

mod_group_id=com.leclowndu93150.flightutils
mod_group_id=com.leclowndu93150.modular_angelring

mod_authors=Leclowndu93150

Expand Down
24 changes: 0 additions & 24 deletions src/main/java/com/leclowndu93150/flightutils/FlightUtilsMain.java

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.leclowndu93150.modular_angelring;

import com.leclowndu93150.modular_angelring.common.AngelRingItem;
import com.leclowndu93150.modular_angelring.registry.CreativeTabRegistry;
import com.leclowndu93150.modular_angelring.registry.DataComponentRegistry;
import com.leclowndu93150.modular_angelring.registry.ItemRegistry;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.common.Mod;

@Mod(AngelRingMain.MODID)
public class AngelRingMain {
public static final String MODID = "modular_angelring";



public AngelRingMain(IEventBus modEventBus) {
CreativeTabRegistry.CREATIVE_MODE_TABS.register(modEventBus);
ItemRegistry.ITEMS.register(modEventBus);
DataComponentRegistry.COMPONENTS.register(modEventBus);
modEventBus.addListener(AngelRingItem::registerCapabilities);
}

}
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
package com.leclowndu93150.flightutils.common;
package com.leclowndu93150.modular_angelring.common;

import com.leclowndu93150.flightutils.registry.ItemRegistry;
import com.leclowndu93150.modular_angelring.registry.ItemRegistry;
import com.leclowndu93150.modular_angelring.registry.KeyBindRegistry;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
import org.jetbrains.annotations.NotNull;
import top.theillusivec4.curios.api.CuriosApi;
import top.theillusivec4.curios.api.CuriosCapability;
import top.theillusivec4.curios.api.SlotContext;
import top.theillusivec4.curios.api.type.capability.ICurio;

import java.util.List;

public class AngelRingItem extends Item {

public AngelRingItem(Properties pProperties) {
Expand Down Expand Up @@ -87,4 +93,22 @@ public void onUnequip(SlotContext slotContext, ItemStack newStack) {


}

@Override
public void appendHoverText(@NotNull ItemStack stack, @NotNull TooltipContext pContext, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pTooltipFlag) {
if (AngelRingModules.getMiningSpeedModifier(stack) && KeyBindRegistry.miningEnabled) {
pTooltipComponents.add(Component.literal("Mining Module: ").append("Enabled").withStyle(ChatFormatting.GREEN));
}
if (AngelRingModules.getInertiaModifier(stack) && KeyBindRegistry.inertiaEnabled){
pTooltipComponents.add(Component.literal("Inertia Module: ").append("Enabled").withStyle(ChatFormatting.GREEN));
}
if (AngelRingModules.getMiningSpeedModifier(stack) && !KeyBindRegistry.miningEnabled) {
pTooltipComponents.add(Component.literal("Mining Module: ").append("Disabled").withStyle(ChatFormatting.RED));
}
if (AngelRingModules.getInertiaModifier(stack) && !KeyBindRegistry.inertiaEnabled){
pTooltipComponents.add(Component.literal("Inertia Module: ").append("Disabled").withStyle(ChatFormatting.RED));
}

super.appendHoverText(stack, pContext, pTooltipComponents, pTooltipFlag);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.leclowndu93150.flightutils.common;
package com.leclowndu93150.modular_angelring.common;

import com.leclowndu93150.flightutils.registry.DataComponentRegistry;
import com.leclowndu93150.modular_angelring.registry.DataComponentRegistry;
import net.minecraft.world.item.ItemStack;


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package com.leclowndu93150.modular_angelring.events;

import com.leclowndu93150.modular_angelring.AngelRingMain;
import com.leclowndu93150.modular_angelring.registry.ItemRegistry;
import com.leclowndu93150.modular_angelring.registry.KeyBindRegistry;
import net.minecraft.client.Minecraft;
import net.minecraft.client.Options;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.phys.Vec3;
import net.neoforged.bus.api.EventPriority;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
import net.neoforged.neoforge.event.tick.PlayerTickEvent;
import top.theillusivec4.curios.api.CuriosApi;
import top.theillusivec4.curios.api.SlotResult;

import java.util.Optional;

import static com.leclowndu93150.modular_angelring.common.AngelRingModules.getInertiaModifier;
import static com.leclowndu93150.modular_angelring.common.AngelRingModules.getMiningSpeedModifier;

@EventBusSubscriber(modid = AngelRingMain.MODID)
public class AngelRingEvents {

@SubscribeEvent(priority = EventPriority.LOW)
public static void setRingBreakSpeed(PlayerEvent.BreakSpeed event) {
ItemStack angelRingStack = CuriosApi.getCuriosHelper().getCuriosHandler(event.getEntity()).get().findFirstCurio(ItemRegistry.ANGEL_RING.get()).get().stack();
float newDigSpeed = event.getOriginalSpeed();
if (getMiningSpeedModifier(angelRingStack) && !event.getEntity().onGround() && KeyBindRegistry.miningEnabled) {
newDigSpeed *= 5f;
}
if (newDigSpeed != event.getOriginalSpeed()) {
event.setNewSpeed(newDigSpeed);
}
}

@SubscribeEvent(priority = EventPriority.LOW)
public static void stopDrift(PlayerTickEvent.Pre event) {
Optional<SlotResult> slotResult = CuriosApi.getCuriosHelper().getCuriosHandler(event.getEntity()).flatMap(curiosHandler -> curiosHandler.findFirstCurio(ItemRegistry.ANGEL_RING.get()));
if (slotResult.isPresent()) {
ItemStack angelRingStack = slotResult.get().stack();
Vec3 motion = event.getEntity().getDeltaMovement();
if (event.getEntity().getAbilities().flying && getInertiaModifier(angelRingStack) && KeyBindRegistry.inertiaEnabled) {
Options opt = Minecraft.getInstance().options;
if (!opt.keyUp.isDown() && !opt.keyDown.isDown() && !opt.keyLeft.isDown() && !opt.keyRight.isDown()) {
if (motion.x != 0 || motion.z != 0) {
event.getEntity().setDeltaMovement(0, motion.y, 0);
}
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.leclowndu93150.flightutils.registry;
package com.leclowndu93150.modular_angelring.registry;

import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
Expand All @@ -7,14 +7,14 @@
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister;

import static com.leclowndu93150.flightutils.FlightUtilsMain.MODID;
import static com.leclowndu93150.flightutils.registry.ItemRegistry.*;
import static com.leclowndu93150.modular_angelring.AngelRingMain.MODID;
import static com.leclowndu93150.modular_angelring.registry.ItemRegistry.*;

public class CreativeTabRegistry {
public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID);

public static final DeferredHolder<CreativeModeTab, CreativeModeTab> UTILS_TAB = CREATIVE_MODE_TABS.register("example_tab", () -> CreativeModeTab.builder()
.title(Component.translatable("Flight Utilities")) //The language key for the title of your CreativeModeTab
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> UTILS_TAB = CREATIVE_MODE_TABS.register("angelring_tab", () -> CreativeModeTab.builder()
.title(Component.literal("Modular Angel Ring")) //The language key for the title of your CreativeModeTab
.withTabsBefore(CreativeModeTabs.COMBAT)
.icon(() -> ANGEL_RING.get().getDefaultInstance())
.displayItems((parameters, output) -> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.leclowndu93150.flightutils.registry;
package com.leclowndu93150.modular_angelring.registry;

import com.mojang.serialization.Codec;
import net.minecraft.core.component.DataComponentType;
Expand All @@ -7,7 +7,7 @@

import java.util.function.Supplier;

import static com.leclowndu93150.flightutils.FlightUtilsMain.MODID;
import static com.leclowndu93150.modular_angelring.AngelRingMain.MODID;

public class DataComponentRegistry {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.leclowndu93150.flightutils.registry;
package com.leclowndu93150.modular_angelring.registry;

import com.leclowndu93150.flightutils.common.AngelRingItem;
import com.leclowndu93150.modular_angelring.common.AngelRingItem;
import net.minecraft.world.item.Item;
import net.neoforged.neoforge.registries.DeferredItem;
import net.neoforged.neoforge.registries.DeferredRegister;

import static com.leclowndu93150.flightutils.FlightUtilsMain.MODID;
import static com.leclowndu93150.modular_angelring.AngelRingMain.MODID;

public class ItemRegistry {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.leclowndu93150.modular_angelring.registry;

import com.mojang.blaze3d.platform.InputConstants;
import net.minecraft.client.KeyMapping;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.InputEvent;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.common.util.Lazy;
import org.lwjgl.glfw.GLFW;

import static com.leclowndu93150.modular_angelring.AngelRingMain.MODID;

@EventBusSubscriber(modid = MODID, bus = EventBusSubscriber.Bus.MOD)
public class KeyBindRegistry {

public static final Lazy<KeyMapping> MINING_MODULE = Lazy.of(() ->new KeyMapping(
"key." + MODID + ".mining_module", InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_M, "key.modular_angelring.misc"));

public static final Lazy<KeyMapping> INERTIA_MODULE = Lazy.of(() ->new KeyMapping(
"key." + MODID + ".inertia_module", InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_L, "key.modular_angelring.misc"));


@SubscribeEvent
public static void registerBindings(RegisterKeyMappingsEvent event) {
event.register(MINING_MODULE.get());
event.register(INERTIA_MODULE.get());
NeoForge.EVENT_BUS.addListener(KeyBindRegistry::onKey);
}

public static boolean miningEnabled = true;
public static boolean inertiaEnabled = true;
public static void onKey(InputEvent.Key event){
if(MINING_MODULE.get().consumeClick()){
miningEnabled = !miningEnabled;
}
if (INERTIA_MODULE.get().consumeClick()){
inertiaEnabled = !inertiaEnabled;
}
}


}
6 changes: 6 additions & 0 deletions src/main/resources/assets/modular_angelring/lang/en_us.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"item.modular_angelring.angel_ring": "Angel Ring",
"item.modular_angelring.inertia_module": "Inertia Module",
"item.modular_angelring.mining_module": "Mining Module",
"curios.identifier.angel_ring": "Angel Ring"
}
2 changes: 1 addition & 1 deletion src/main/resources/data/curios/tags/items/angel_ring.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"replace": true,
"values": [
"flightutils:angel_ring"
"modular_angelring:angel_ring"
]
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"size": 1,
"icon": "modular_angelring:slot/empty_angel_ring_slot"
}

0 comments on commit e0e8b96

Please sign in to comment.