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_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.FREEZE_IMMUNE_WEARABLES).add(MItems.TRITANIUM_ARMOR)
|
||||
|
||||
|
@ -1,34 +1,7 @@
|
||||
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.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.MItemTags
|
||||
|
||||
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
|
||||
|
||||
import net.minecraft.client.model.HumanoidModel
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.damagesource.DamageTypes
|
||||
import net.minecraft.world.entity.Entity
|
||||
import net.minecraft.world.entity.EquipmentSlot
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
import net.minecraft.world.item.*
|
||||
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 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.registry.ClientExtensionsListener
|
||||
import ru.dbotthepony.mc.otm.registry.MArmorMaterials
|
||||
import ru.dbotthepony.mc.otm.registry.MItems
|
||||
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)) {
|
||||
override fun initializeClient(consumer: Consumer<IClientItemExtensions>) {
|
||||
super.initializeClient(consumer)
|
||||
consumer.accept(TritaniumArmorRenderProperties)
|
||||
class TritaniumArmorItem(slot: Type) : ArmorItem(MArmorMaterials.TRITANIUM, slot, Properties().stacksTo(1).rarity(Rarity.RARE)),
|
||||
ClientExtensionsListener {
|
||||
override fun registerClientExtensions(event: RegisterClientExtensionsEvent) {
|
||||
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 {
|
||||
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) {
|
||||
if (event.source.typeHolder().`is`(DamageTypes.SWEET_BERRY_BUSH) || event.source.msgId == "sweetBerryBush") {
|
||||
|
@ -29,9 +29,9 @@ object MArmorMaterials {
|
||||
SoundEvents.ARMOR_EQUIP_IRON,
|
||||
{ Ingredient.of(MItemTags.REINFORCED_TRITANIUM_PLATES) },
|
||||
listOf(
|
||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/models/armor/tritanium_armor_base.png")),
|
||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/models/armor/tritanium_armor_overlay.png"), "", true),
|
||||
),
|
||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium"), "", true),
|
||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium"), "", false),
|
||||
), // ignored
|
||||
1f,
|
||||
0.08f
|
||||
)
|
||||
@ -48,10 +48,7 @@ object MArmorMaterials {
|
||||
9,
|
||||
SoundEvents.ARMOR_EQUIP_IRON,
|
||||
{ Ingredient.of(MItemTags.TRITANIUM_INGOTS) },
|
||||
listOf(
|
||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium_simple"), "", true),
|
||||
ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium_simple"), "_overlay", false),
|
||||
),
|
||||
listOf(ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium_simple"))),
|
||||
0.3f,
|
||||
0f
|
||||
)
|
||||
@ -65,7 +62,7 @@ object MArmorMaterials {
|
||||
9,
|
||||
SoundEvents.ARMOR_EQUIP_GENERIC,
|
||||
{ Ingredient.EMPTY },
|
||||
listOf(), // custom model
|
||||
listOf(ArmorMaterial.Layer(ResourceLocation(OverdriveThatMatters.MOD_ID, "gravitation_stabilizer"), "", false)), // custom model
|
||||
0f,
|
||||
0f
|
||||
)
|
||||
|
@ -1,21 +1,12 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
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.core.BlockPos
|
||||
import net.minecraft.core.Registry
|
||||
import net.minecraft.core.cauldron.CauldronInteraction
|
||||
import net.minecraft.core.component.DataComponents
|
||||
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.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.Item
|
||||
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.RegisterItemDecorationsEvent
|
||||
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 ru.dbotthepony.kommons.math.RGBAColor
|
||||
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.Decimal
|
||||
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.registry.objects.ColoredDecorativeBlock
|
||||
import ru.dbotthepony.mc.otm.registry.objects.DecorativeBlock
|
||||
import ru.dbotthepony.mc.otm.registry.objects.IBlockItemRegistryAcceptor
|
||||
import ru.dbotthepony.mc.otm.registry.objects.StripedColoredDecorativeBlock
|
||||
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 {
|
||||
private val features = RegistryDelegate<AndroidFeatureType<*>>("android_features") { sync(true) }
|
||||
@ -288,6 +258,7 @@ object MRegistry : IBlockItemRegistryAcceptor {
|
||||
bus.addListener(this::registerEvent)
|
||||
if (isClient) bus.addListener(this::registerItemColorHandlers)
|
||||
if (isClient) bus.addListener(this::registerItemDecorators)
|
||||
bus.addListener(this::registerDefaultComponents)
|
||||
|
||||
// call static constructors
|
||||
NanobotsArmorFeature.Companion
|
||||
@ -349,7 +320,7 @@ object MRegistry : IBlockItemRegistryAcceptor {
|
||||
private fun registerItemColorHandlers(event: RegisterColorHandlersEvent.Item) {
|
||||
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()
|
||||
)
|
||||
|
||||
@ -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