Merge remote-tracking branch 'origin/1.21' into 1.21
This commit is contained in:
commit
1d17e59131
@ -126,6 +126,7 @@ fun addTags(tagsProvider: TagsProvider) {
|
|||||||
.add(MItems.TRITANIUM_PANTS, MItems.SIMPLE_TRITANIUM_PANTS)
|
.add(MItems.TRITANIUM_PANTS, MItems.SIMPLE_TRITANIUM_PANTS)
|
||||||
.add(MItems.TRITANIUM_BOOTS, MItems.SIMPLE_TRITANIUM_BOOTS)
|
.add(MItems.TRITANIUM_BOOTS, MItems.SIMPLE_TRITANIUM_BOOTS)
|
||||||
|
|
||||||
|
tagsProvider.items.Appender(ItemTags.DYEABLE).add(MItems.TRITANIUM_ARMOR)
|
||||||
tagsProvider.items.Appender(ItemTags.TRIMMABLE_ARMOR).add(MItems.SIMPLE_TRITANIUM_ARMOR)
|
tagsProvider.items.Appender(ItemTags.TRIMMABLE_ARMOR).add(MItems.SIMPLE_TRITANIUM_ARMOR)
|
||||||
tagsProvider.items.Appender(ItemTags.FREEZE_IMMUNE_WEARABLES).add(MItems.TRITANIUM_ARMOR)
|
tagsProvider.items.Appender(ItemTags.FREEZE_IMMUNE_WEARABLES).add(MItems.TRITANIUM_ARMOR)
|
||||||
|
|
||||||
|
@ -1,34 +1,7 @@
|
|||||||
package ru.dbotthepony.mc.otm.item.armor
|
package ru.dbotthepony.mc.otm.item.armor
|
||||||
|
|
||||||
import net.minecraft.resources.ResourceLocation
|
|
||||||
import net.minecraft.sounds.SoundEvent
|
|
||||||
import net.minecraft.sounds.SoundEvents
|
|
||||||
import net.minecraft.world.entity.Entity
|
|
||||||
import net.minecraft.world.entity.EquipmentSlot
|
|
||||||
import net.minecraft.world.item.ArmorItem
|
import net.minecraft.world.item.ArmorItem
|
||||||
import net.minecraft.world.item.ArmorMaterial
|
|
||||||
import net.minecraft.world.item.ItemStack
|
|
||||||
import net.minecraft.world.item.crafting.Ingredient
|
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
|
||||||
import ru.dbotthepony.mc.otm.core.ResourceLocation
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MArmorMaterials
|
import ru.dbotthepony.mc.otm.registry.MArmorMaterials
|
||||||
import ru.dbotthepony.mc.otm.registry.MItemTags
|
|
||||||
|
|
||||||
class SimpleTritaniumArmorItem(slot: Type) : ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, slot, Properties().stacksTo(1)) {
|
class SimpleTritaniumArmorItem(slot: Type) : ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, slot, Properties().stacksTo(1)) {
|
||||||
override fun getArmorTexture(
|
|
||||||
stack: ItemStack,
|
|
||||||
entity: Entity,
|
|
||||||
slot: EquipmentSlot,
|
|
||||||
layer: ArmorMaterial.Layer,
|
|
||||||
innerModel: Boolean
|
|
||||||
): ResourceLocation? {
|
|
||||||
if (!innerModel || slot == EquipmentSlot.FEET)
|
|
||||||
return when (slot) {
|
|
||||||
EquipmentSlot.LEGS -> ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/models/armor/tritanium_simple_layer_2.png")
|
|
||||||
EquipmentSlot.FEET, EquipmentSlot.CHEST, EquipmentSlot.HEAD -> ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/models/armor/tritanium_simple_layer_1.png")
|
|
||||||
else -> throw IllegalArgumentException("Invalid slot $slot")
|
|
||||||
}
|
|
||||||
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,19 @@
|
|||||||
package ru.dbotthepony.mc.otm.item.armor
|
package ru.dbotthepony.mc.otm.item.armor
|
||||||
|
|
||||||
import net.minecraft.client.model.HumanoidModel
|
import net.minecraft.client.model.HumanoidModel
|
||||||
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.damagesource.DamageTypes
|
import net.minecraft.world.damagesource.DamageTypes
|
||||||
|
import net.minecraft.world.entity.Entity
|
||||||
import net.minecraft.world.entity.EquipmentSlot
|
import net.minecraft.world.entity.EquipmentSlot
|
||||||
import net.minecraft.world.entity.LivingEntity
|
import net.minecraft.world.entity.LivingEntity
|
||||||
import net.minecraft.world.item.*
|
import net.minecraft.world.item.*
|
||||||
import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions
|
import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions
|
||||||
|
import net.neoforged.neoforge.client.extensions.common.RegisterClientExtensionsEvent
|
||||||
import net.neoforged.neoforge.event.entity.living.LivingIncomingDamageEvent
|
import net.neoforged.neoforge.event.entity.living.LivingIncomingDamageEvent
|
||||||
import ru.dbotthepony.kommons.math.RGBAColor
|
import ru.dbotthepony.kommons.math.RGBAColor
|
||||||
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters.loc
|
||||||
import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel
|
import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel
|
||||||
|
import ru.dbotthepony.mc.otm.registry.ClientExtensionsListener
|
||||||
import ru.dbotthepony.mc.otm.registry.MArmorMaterials
|
import ru.dbotthepony.mc.otm.registry.MArmorMaterials
|
||||||
import ru.dbotthepony.mc.otm.registry.MItems
|
import ru.dbotthepony.mc.otm.registry.MItems
|
||||||
import java.util.function.Consumer
|
import java.util.function.Consumer
|
||||||
@ -28,14 +33,26 @@ private object TritaniumArmorRenderProperties : IClientItemExtensions {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TritaniumArmorItem(slot: Type) : ArmorItem(MArmorMaterials.TRITANIUM, slot, Properties().stacksTo(1).rarity(Rarity.RARE)) {
|
class TritaniumArmorItem(slot: Type) : ArmorItem(MArmorMaterials.TRITANIUM, slot, Properties().stacksTo(1).rarity(Rarity.RARE)),
|
||||||
override fun initializeClient(consumer: Consumer<IClientItemExtensions>) {
|
ClientExtensionsListener {
|
||||||
super.initializeClient(consumer)
|
override fun registerClientExtensions(event: RegisterClientExtensionsEvent) {
|
||||||
consumer.accept(TritaniumArmorRenderProperties)
|
event.registerItem(TritaniumArmorRenderProperties, this)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getArmorTexture(
|
||||||
|
stack: ItemStack,
|
||||||
|
entity: Entity,
|
||||||
|
slot: EquipmentSlot,
|
||||||
|
layer: ArmorMaterial.Layer,
|
||||||
|
innerModel: Boolean
|
||||||
|
): ResourceLocation {
|
||||||
|
return if (layer.dyeable()) TEXTURE_LOCATION_BASE else TEXTURE_LOCATION_OVERLAY
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val TRITANIUM_COLOR = RGBAColor(157, 187, 204).toBGRA()
|
val TRITANIUM_COLOR = RGBAColor(157, 187, 204).toBGRA()
|
||||||
|
val TEXTURE_LOCATION_BASE = loc("textures/models/armor/tritanium_armor_base.png")
|
||||||
|
val TEXTURE_LOCATION_OVERLAY = loc("textures/models/armor/tritanium_armor_overlay.png")
|
||||||
|
|
||||||
fun onHurt(event: LivingIncomingDamageEvent) {
|
fun onHurt(event: LivingIncomingDamageEvent) {
|
||||||
if (event.source.typeHolder().`is`(DamageTypes.SWEET_BERRY_BUSH) || event.source.msgId == "sweetBerryBush") {
|
if (event.source.typeHolder().`is`(DamageTypes.SWEET_BERRY_BUSH) || event.source.msgId == "sweetBerryBush") {
|
||||||
|
@ -29,9 +29,9 @@ object MArmorMaterials {
|
|||||||
SoundEvents.ARMOR_EQUIP_IRON,
|
SoundEvents.ARMOR_EQUIP_IRON,
|
||||||
{ Ingredient.of(MItemTags.REINFORCED_TRITANIUM_PLATES) },
|
{ Ingredient.of(MItemTags.REINFORCED_TRITANIUM_PLATES) },
|
||||||
listOf(
|
listOf(
|
||||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/models/armor/tritanium_armor_base.png")),
|
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium"), "", true),
|
||||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/models/armor/tritanium_armor_overlay.png"), "", true),
|
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium"), "", false),
|
||||||
),
|
), // ignored
|
||||||
1f,
|
1f,
|
||||||
0.08f
|
0.08f
|
||||||
)
|
)
|
||||||
@ -48,10 +48,7 @@ object MArmorMaterials {
|
|||||||
9,
|
9,
|
||||||
SoundEvents.ARMOR_EQUIP_IRON,
|
SoundEvents.ARMOR_EQUIP_IRON,
|
||||||
{ Ingredient.of(MItemTags.TRITANIUM_INGOTS) },
|
{ Ingredient.of(MItemTags.TRITANIUM_INGOTS) },
|
||||||
listOf(
|
listOf(ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium_simple"))),
|
||||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium_simple"), "", true),
|
|
||||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium_simple"), "_overlay", false),
|
|
||||||
),
|
|
||||||
0.3f,
|
0.3f,
|
||||||
0f
|
0f
|
||||||
)
|
)
|
||||||
@ -65,7 +62,7 @@ object MArmorMaterials {
|
|||||||
9,
|
9,
|
||||||
SoundEvents.ARMOR_EQUIP_GENERIC,
|
SoundEvents.ARMOR_EQUIP_GENERIC,
|
||||||
{ Ingredient.EMPTY },
|
{ Ingredient.EMPTY },
|
||||||
listOf(), // custom model
|
listOf(ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "gravitation_stabilizer"), "", false)), // custom model
|
||||||
0f,
|
0f,
|
||||||
0f
|
0f
|
||||||
)
|
)
|
||||||
|
@ -1,21 +1,12 @@
|
|||||||
package ru.dbotthepony.mc.otm.registry
|
package ru.dbotthepony.mc.otm.registry
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList
|
import com.google.common.collect.ImmutableList
|
||||||
import com.google.common.collect.ImmutableSet
|
|
||||||
import com.google.common.collect.Streams
|
|
||||||
import net.minecraft.advancements.CriteriaTriggers
|
|
||||||
import net.minecraft.client.renderer.item.ItemProperties
|
import net.minecraft.client.renderer.item.ItemProperties
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Registry
|
|
||||||
import net.minecraft.core.cauldron.CauldronInteraction
|
import net.minecraft.core.cauldron.CauldronInteraction
|
||||||
import net.minecraft.core.component.DataComponents
|
import net.minecraft.core.component.DataComponents
|
||||||
import net.minecraft.core.registries.BuiltInRegistries
|
import net.minecraft.core.registries.BuiltInRegistries
|
||||||
import net.minecraft.core.registries.Registries
|
|
||||||
import net.minecraft.nbt.CompoundTag
|
|
||||||
import net.minecraft.world.entity.EntityType
|
import net.minecraft.world.entity.EntityType
|
||||||
import net.minecraft.world.entity.ai.village.poi.PoiType
|
|
||||||
import net.minecraft.world.entity.ai.village.poi.PoiTypes
|
|
||||||
import net.minecraft.world.item.BlockItem
|
|
||||||
import net.minecraft.world.item.DyeColor
|
import net.minecraft.world.item.DyeColor
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.ShieldItem
|
import net.minecraft.world.item.ShieldItem
|
||||||
@ -33,7 +24,7 @@ import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent
|
|||||||
import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent
|
import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent
|
||||||
import net.neoforged.neoforge.client.event.RegisterItemDecorationsEvent
|
import net.neoforged.neoforge.client.event.RegisterItemDecorationsEvent
|
||||||
import net.neoforged.neoforge.client.model.DynamicFluidContainerModel
|
import net.neoforged.neoforge.client.model.DynamicFluidContainerModel
|
||||||
import net.neoforged.neoforge.registries.NewRegistryEvent
|
import net.neoforged.neoforge.event.ModifyDefaultComponentsEvent
|
||||||
import net.neoforged.neoforge.registries.RegisterEvent
|
import net.neoforged.neoforge.registries.RegisterEvent
|
||||||
import ru.dbotthepony.kommons.math.RGBAColor
|
import ru.dbotthepony.kommons.math.RGBAColor
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
@ -48,34 +39,13 @@ import ru.dbotthepony.mc.otm.core.ResourceLocation
|
|||||||
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
|
||||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||||
import ru.dbotthepony.mc.otm.isClient
|
import ru.dbotthepony.mc.otm.isClient
|
||||||
|
import ru.dbotthepony.mc.otm.item.armor.TritaniumArmorItem
|
||||||
import ru.dbotthepony.mc.otm.item.weapon.EnergySwordItem
|
import ru.dbotthepony.mc.otm.item.weapon.EnergySwordItem
|
||||||
import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock
|
import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock
|
||||||
import ru.dbotthepony.mc.otm.registry.objects.DecorativeBlock
|
import ru.dbotthepony.mc.otm.registry.objects.DecorativeBlock
|
||||||
import ru.dbotthepony.mc.otm.registry.objects.IBlockItemRegistryAcceptor
|
import ru.dbotthepony.mc.otm.registry.objects.IBlockItemRegistryAcceptor
|
||||||
import ru.dbotthepony.mc.otm.registry.objects.StripedColoredDecorativeBlock
|
import ru.dbotthepony.mc.otm.registry.objects.StripedColoredDecorativeBlock
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
import ru.dbotthepony.mc.otm.triggers.AndroidBatteryTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.AndroidResearchTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.AndroidTravelUnderwater
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.BecomeAndroidDeathTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.BecomeAndroidSleepTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.BecomeAndroidTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.BecomeHumaneTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.BlackHoleTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.EnderTeleporterFallDeathTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.ExopackBatterySlotTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.ExopackGainedCraftingTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.ExopackGainedEnderAccessTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.ExopackGainedSmeltingTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.ExopackObtainedTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.FallDampenersSaveTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.KillAsAndroidTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.NailedEntityTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.NanobotsArmorTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.ShockwaveDamageMobTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.ShockwaveTrigger
|
|
||||||
import ru.dbotthepony.mc.otm.triggers.TakeItemOutOfReplicatorTrigger
|
|
||||||
|
|
||||||
object MRegistry : IBlockItemRegistryAcceptor {
|
object MRegistry : IBlockItemRegistryAcceptor {
|
||||||
private val features = RegistryDelegate<AndroidFeatureType<*>>("android_features") { sync(true) }
|
private val features = RegistryDelegate<AndroidFeatureType<*>>("android_features") { sync(true) }
|
||||||
@ -288,6 +258,7 @@ object MRegistry : IBlockItemRegistryAcceptor {
|
|||||||
bus.addListener(this::registerEvent)
|
bus.addListener(this::registerEvent)
|
||||||
if (isClient) bus.addListener(this::registerItemColorHandlers)
|
if (isClient) bus.addListener(this::registerItemColorHandlers)
|
||||||
if (isClient) bus.addListener(this::registerItemDecorators)
|
if (isClient) bus.addListener(this::registerItemDecorators)
|
||||||
|
bus.addListener(this::registerDefaultComponents)
|
||||||
|
|
||||||
// call static constructors
|
// call static constructors
|
||||||
NanobotsArmorFeature.Companion
|
NanobotsArmorFeature.Companion
|
||||||
@ -349,7 +320,7 @@ object MRegistry : IBlockItemRegistryAcceptor {
|
|||||||
private fun registerItemColorHandlers(event: RegisterColorHandlersEvent.Item) {
|
private fun registerItemColorHandlers(event: RegisterColorHandlersEvent.Item) {
|
||||||
event.register(DynamicFluidContainerModel.Colors(), MItems.FLUID_CAPSULE)
|
event.register(DynamicFluidContainerModel.Colors(), MItems.FLUID_CAPSULE)
|
||||||
|
|
||||||
event.register({ stack, layer -> if (layer == 0) DyedItemColor.getOrDefault(stack, -1) else -1 },
|
event.register({ stack, layer -> if (layer == 0) DyedItemColor.getOrDefault(stack, TritaniumArmorItem.TRITANIUM_COLOR) else -1 },
|
||||||
*MItems.TRITANIUM_ARMOR.toTypedArray()
|
*MItems.TRITANIUM_ARMOR.toTypedArray()
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -364,4 +335,12 @@ object MRegistry : IBlockItemRegistryAcceptor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun registerDefaultComponents(event: ModifyDefaultComponentsEvent) {
|
||||||
|
MItems.TRITANIUM_ARMOR.forEach {
|
||||||
|
event.modify(it) {
|
||||||
|
it.set(DataComponents.DYED_COLOR, DyedItemColor(TritaniumArmorItem.TRITANIUM_COLOR, false))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user