This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package gamer.noir.curseenc.client.mixin;
|
package gamer.noir.curseenc.client.mixin;
|
||||||
|
|
||||||
|
import gamer.noir.curseenc.client.value.GlobalVariable;
|
||||||
|
import gamer.noir.curseenc.data.AttachmentsServer;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.LightTexture;
|
import net.minecraft.client.renderer.LightTexture;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
@@ -17,7 +19,7 @@ public class NightVisionMixin {
|
|||||||
|
|
||||||
@ModifyVariable(method = "updateLightTexture" ,at = @At(value = "NEW", target = "(FFF)Lorg/joml/Vector3f;",ordinal = 0), ordinal = 6)
|
@ModifyVariable(method = "updateLightTexture" ,at = @At(value = "NEW", target = "(FFF)Lorg/joml/Vector3f;",ordinal = 0), ordinal = 6)
|
||||||
float customNightVision(float original) {
|
float customNightVision(float original) {
|
||||||
if (this.minecraft.player != null && this.minecraft.player.isSpectator()) {
|
if (this.minecraft.player != null && GlobalVariable.nocturnal_Vision ) {
|
||||||
return 1 ;
|
return 1 ;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package gamer.noir.curseenc.client
|
package gamer.noir.curseenc.client
|
||||||
|
|
||||||
|
import gamer.noir.curseenc.client.key.Keys
|
||||||
import net.fabricmc.api.ClientModInitializer
|
import net.fabricmc.api.ClientModInitializer
|
||||||
|
|
||||||
object CurseOfEienNoChiClient : ClientModInitializer {
|
object CurseOfEienNoChiClient : ClientModInitializer {
|
||||||
override fun onInitializeClient() {
|
override fun onInitializeClient() {
|
||||||
// This entrypoint is suitable for setting up client-specific logic, such as rendering.
|
// This entrypoint is suitable for setting up client-specific logic, such as rendering.
|
||||||
|
Keys.initialize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package gamer.noir.curseenc.client.key
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.platform.InputConstants
|
||||||
|
import gamer.noir.curseenc.CurseOfEienNoChi
|
||||||
|
import gamer.noir.curseenc.client.value.GlobalVariable
|
||||||
|
import gamer.noir.curseenc.data.AttachmentsServer
|
||||||
|
import gamer.noir.curseenc.data.AttachmentsServer.Powers
|
||||||
|
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents
|
||||||
|
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper
|
||||||
|
import net.minecraft.client.KeyMapping
|
||||||
|
import net.minecraft.network.chat.Component
|
||||||
|
import net.minecraft.resources.ResourceLocation
|
||||||
|
import org.lwjgl.glfw.GLFW
|
||||||
|
|
||||||
|
|
||||||
|
object Keys {
|
||||||
|
val nocturnalVision: KeyMapping = KeyBindingHelper.registerKeyBinding(
|
||||||
|
KeyMapping(
|
||||||
|
"key.${CurseOfEienNoChi.MOD_ID}.nocturnal_vision", // The translation key for the key mapping.
|
||||||
|
InputConstants.Type.KEYSYM, // // The type of the keybinding; KEYSYM for keyboard, MOUSE for mouse.
|
||||||
|
GLFW.GLFW_KEY_N, // The GLFW keycode of the key.
|
||||||
|
"key.${CurseOfEienNoChi.MOD_ID}.keys_category" // The category of the mapping.
|
||||||
|
)
|
||||||
|
)
|
||||||
|
fun initialize() {
|
||||||
|
ClientTickEvents.END_CLIENT_TICK.register({ client ->
|
||||||
|
// Régler le fait que il reste activé et qu'il n'y a pas de vérification pour le désactiver quand on a plus le pouvoir
|
||||||
|
while (nocturnalVision.consumeClick()) {
|
||||||
|
val player = client.player
|
||||||
|
if (player != null) {
|
||||||
|
val power_list =player.getAttached(AttachmentsServer.Powers)
|
||||||
|
if (power_list?.contains(ResourceLocation.fromNamespaceAndPath(CurseOfEienNoChi.MOD_ID ,"nocturnal_vision") ) == true) {
|
||||||
|
if (GlobalVariable.nocturnal_Vision) {
|
||||||
|
GlobalVariable.nocturnal_Vision = false
|
||||||
|
client.player!!.sendSystemMessage(Component.literal("Nocturnal Vision disabled"))
|
||||||
|
} else {
|
||||||
|
GlobalVariable.nocturnal_Vision = true
|
||||||
|
client.player!!.sendSystemMessage(Component.literal("Nocturnal Vision enabled"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if (GlobalVariable.nocturnal_Vision) {
|
||||||
|
GlobalVariable.nocturnal_Vision = false
|
||||||
|
client.player!!.sendSystemMessage(Component.literal("Nocturnal Vision no longer exists"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package gamer.noir.curseenc.client.value
|
||||||
|
|
||||||
|
object GlobalVariable {
|
||||||
|
@JvmField
|
||||||
|
var nocturnal_Vision = false
|
||||||
|
}
|
||||||
@@ -17,7 +17,6 @@ object CurseOfEienNoChi : ModInitializer {
|
|||||||
ModItems.initialize()
|
ModItems.initialize()
|
||||||
Effect.initialize()
|
Effect.initialize()
|
||||||
ModCommands.initialize()
|
ModCommands.initialize()
|
||||||
|
|
||||||
// This code runs as soon as Minecraft is in a mod-load-ready state.
|
// This code runs as soon as Minecraft is in a mod-load-ready state.
|
||||||
// However, some things (like resources) may still be uninitialized.
|
// However, some things (like resources) may still be uninitialized.
|
||||||
// Proceed with mild caution.
|
// Proceed with mild caution.
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
package gamer.noir.curseenc.client
|
|
||||||
|
|
||||||
class AttachmentsClient {
|
|
||||||
var Nighte_vision = true
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
package gamer.noir.curseenc.client
|
|
||||||
|
|
||||||
import net.fabricmc.api.ClientModInitializer
|
|
||||||
|
|
||||||
object FabricClient: ClientModInitializer {
|
|
||||||
override fun onInitializeClient() {
|
|
||||||
//nop
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package gamer.noir.curseenc.command
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft
|
||||||
|
import net.minecraft.world.item.Items
|
||||||
|
import net.minecraft.world.item.Tier
|
||||||
|
import net.minecraft.world.item.crafting.Ingredient
|
||||||
|
|
||||||
|
enum class Materials: Tier {
|
||||||
|
DaggerSacrificialMaterial {
|
||||||
|
override fun getUses(): Int {
|
||||||
|
return 300
|
||||||
|
}
|
||||||
|
override fun getAttackDamageBonus(): Float {
|
||||||
|
return 1.5f
|
||||||
|
}
|
||||||
|
override fun getRepairIngredient(): Ingredient {
|
||||||
|
return Ingredient.of(Items.IRON_INGOT)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -90,7 +90,7 @@ object ModCommands {
|
|||||||
|
|
||||||
|
|
||||||
val argument_power = Commands.argument("Power", StringArgumentType.string()).suggests { context, builder ->
|
val argument_power = Commands.argument("Power", StringArgumentType.string()).suggests { context, builder ->
|
||||||
builder.suggest("night_vision")
|
builder.suggest("nocturnal_vision")
|
||||||
.suggest("hyper_speed")
|
.suggest("hyper_speed")
|
||||||
.suggest("bat_mod")
|
.suggest("bat_mod")
|
||||||
.suggest("...")
|
.suggest("...")
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package gamer.noir.curseenc.command
|
||||||
|
|
||||||
|
import net.minecraft.world.item.Item
|
||||||
|
import net.minecraft.world.item.Items
|
||||||
|
import net.minecraft.world.item.Items.registerItem
|
||||||
|
|
||||||
|
class SacrificialDagger: Item {
|
||||||
|
val dageur:Item = registerItem()
|
||||||
|
}
|
||||||
@@ -2,19 +2,19 @@ package gamer.noir.curseenc.item
|
|||||||
|
|
||||||
import gamer.noir.curseenc.CurseOfEienNoChi
|
import gamer.noir.curseenc.CurseOfEienNoChi
|
||||||
import gamer.noir.curseenc.effect.Effect
|
import gamer.noir.curseenc.effect.Effect
|
||||||
import gamer.noir.curseenc.effect.GarlicStatus
|
|
||||||
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroupEntries
|
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroupEntries
|
||||||
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents
|
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents
|
||||||
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents.ModifyEntries
|
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents.ModifyEntries
|
||||||
import net.minecraft.core.Registry
|
import net.minecraft.core.Registry
|
||||||
import net.minecraft.core.registries.BuiltInRegistries
|
import net.minecraft.core.registries.BuiltInRegistries
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.effect.MobEffect
|
|
||||||
import net.minecraft.world.effect.MobEffectInstance
|
import net.minecraft.world.effect.MobEffectInstance
|
||||||
import net.minecraft.world.effect.MobEffects
|
|
||||||
import net.minecraft.world.food.FoodProperties
|
import net.minecraft.world.food.FoodProperties
|
||||||
import net.minecraft.world.item.CreativeModeTabs
|
import net.minecraft.world.item.CreativeModeTabs
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
|
import net.minecraft.world.item.SwordItem
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
object ModItems {
|
object ModItems {
|
||||||
@@ -28,22 +28,27 @@ object ModItems {
|
|||||||
// Return the registered item!
|
// Return the registered item!
|
||||||
return registeredItem
|
return registeredItem
|
||||||
}
|
}
|
||||||
|
|
||||||
val GARLIC_FOOD: FoodProperties = FoodProperties.Builder()
|
val GARLIC_FOOD: FoodProperties = FoodProperties.Builder()
|
||||||
.alwaysEdible()
|
.alwaysEdible()
|
||||||
.effect(MobEffectInstance(Effect.GARLIC_STATUS, 6 * 20, 0), 1.0f)
|
.effect(MobEffectInstance(Effect.GARLIC_STATUS, 6 * 20, 0), 1.0f)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
|
||||||
val GARLIC: Item = register(
|
val GARLIC: Item = register(
|
||||||
Item(Item.Properties().food(GARLIC_FOOD)),
|
Item(Item.Properties().food(GARLIC_FOOD)),
|
||||||
"garlic"
|
"garlic"
|
||||||
)
|
)
|
||||||
|
val SACRIFICIAL_DAGGER: Item = register(
|
||||||
|
SwordItem(Test.INSTANCE,
|
||||||
|
Item.Properties()),
|
||||||
|
"sacrificial_dagger"
|
||||||
|
)
|
||||||
|
|
||||||
fun initialize() {
|
fun initialize() {
|
||||||
ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.INGREDIENTS)
|
ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.INGREDIENTS)
|
||||||
.register(ModifyEntries { entries: FabricItemGroupEntries ->
|
.register(ModifyEntries { entries: FabricItemGroupEntries ->
|
||||||
entries.accept(GARLIC)
|
entries.accept(GARLIC)
|
||||||
|
entries.accept(SACRIFICIAL_DAGGER)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"item.curseenc.garlic": "Garlic",
|
"item.curseenc.garlic": "Garlic",
|
||||||
|
"item.curseenc.sacrificial_dagger": "Sacrificial D agger",
|
||||||
|
|
||||||
|
"effect.curseenc.garlic_status": "Garlic Status",
|
||||||
|
|
||||||
"effect.curseenc.garlic_status": "Garlic Status"
|
"key.curseenc.keys_category": "Curse Of Eien No Chi",
|
||||||
|
"key.curseenc.nocturnal_vision": "Nocturnal Vision"
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "curseenc:item/sacrificial_dagger"
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [45, 90, 0],
|
||||||
|
"translation": [ 0, 2.5, 0.5 ],
|
||||||
|
"scale": [ 0.68, 0.68, 0.68 ]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [35, 90, 0],
|
||||||
|
"translation": [ 0, 4, 1.75 ],
|
||||||
|
"scale": [ 0.5, 0.5, 0.5 ]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"rotation": [35, -90, 0],
|
||||||
|
"translation": [ 0, 4, 1.75 ],
|
||||||
|
"scale": [ 0.5, 0.5, 0.5 ]
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"rotation": [45, -90, 0],
|
||||||
|
"translation": [ 0, 2.5, 0.5 ],
|
||||||
|
"scale": [ 0.68, 0.68, 0.68 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 270 B After Width: | Height: | Size: 270 B |
Binary file not shown.
|
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 266 B |
Binary file not shown.
|
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 432 B |
Reference in New Issue
Block a user