Move android package to player package

This commit is contained in:
DBotThePony 2025-03-14 10:54:08 +07:00
parent c4d5ffefa5
commit b23bda2f6a
Signed by: DBot
GPG Key ID: DCC23B5715498507
40 changed files with 165 additions and 110 deletions

View File

@ -23,7 +23,7 @@ import net.neoforged.neoforge.common.data.DatapackBuiltinEntriesProvider
import net.neoforged.neoforge.data.event.GatherDataEvent
import net.neoforged.neoforge.registries.NeoForgeRegistries
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidResearchDataProvider
import ru.dbotthepony.mc.otm.player.android.AndroidResearchDataProvider
import ru.dbotthepony.mc.otm.core.ResourceLocation
import ru.dbotthepony.mc.otm.core.math.yRotationBlockstateNorth
import ru.dbotthepony.mc.otm.core.util.WriteOnce

View File

@ -4,9 +4,9 @@ import net.minecraft.tags.ItemTags
import net.minecraft.world.item.Items
import net.neoforged.neoforge.common.Tags
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidResearchDescriptions
import ru.dbotthepony.mc.otm.android.AndroidResearchResults
import ru.dbotthepony.mc.otm.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.android.AndroidResearchDescriptions
import ru.dbotthepony.mc.otm.player.android.AndroidResearchResults
import ru.dbotthepony.mc.otm.player.android.AndroidResearchType
import ru.dbotthepony.mc.otm.client.render.ResearchIcons
import ru.dbotthepony.mc.otm.core.TextComponent
import ru.dbotthepony.mc.otm.core.TranslatableComponent

View File

@ -15,8 +15,8 @@ import net.minecraft.world.item.ItemStack
import net.minecraft.world.level.block.Block
import net.neoforged.neoforge.common.data.LanguageProvider
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.player.android.AndroidResearchType
import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.datagen.DataGen
import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock

View File

@ -6,12 +6,12 @@ import net.neoforged.bus.api.EventPriority
import net.neoforged.fml.common.Mod
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent
import ru.dbotthepony.mc.otm.android.AndroidResearchDescription
import ru.dbotthepony.mc.otm.android.AndroidResearchDescriptions
import ru.dbotthepony.mc.otm.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.android.AndroidResearchResult
import ru.dbotthepony.mc.otm.android.AndroidResearchResults
import ru.dbotthepony.mc.otm.android.feature.EnderTeleporterFeature
import ru.dbotthepony.mc.otm.player.android.AndroidResearchDescription
import ru.dbotthepony.mc.otm.player.android.AndroidResearchDescriptions
import ru.dbotthepony.mc.otm.player.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.player.android.AndroidResearchResult
import ru.dbotthepony.mc.otm.player.android.AndroidResearchResults
import ru.dbotthepony.mc.otm.player.android.feature.EnderTeleporterFeature
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
import ru.dbotthepony.mc.otm.block.entity.decorative.DevChestBlockEntity
import ru.dbotthepony.mc.otm.player.MatteryPlayer

View File

@ -8,7 +8,7 @@ import net.neoforged.neoforge.client.event.RenderLevelStageEvent
import net.neoforged.neoforge.client.settings.KeyConflictContext
import net.neoforged.neoforge.network.PacketDistributor
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidActiveFeature
import ru.dbotthepony.mc.otm.player.android.AndroidActiveFeature
import ru.dbotthepony.mc.otm.player.matteryPlayer
import ru.dbotthepony.mc.otm.client.render.MGUIGraphics
import ru.dbotthepony.mc.otm.client.render.Widgets18

View File

@ -11,8 +11,8 @@ import net.neoforged.neoforge.client.event.RenderGuiEvent
import net.neoforged.neoforge.client.settings.KeyConflictContext
import net.neoforged.neoforge.network.PacketDistributor
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidFeature
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.matteryPlayer
import ru.dbotthepony.mc.otm.client.render.MGUIGraphics
import ru.dbotthepony.mc.otm.client.render.RenderGravity

View File

@ -18,7 +18,7 @@ import net.neoforged.neoforge.client.event.ScreenEvent
import net.neoforged.neoforge.event.entity.player.ItemTooltipEvent
import net.neoforged.neoforge.network.PacketDistributor
import ru.dbotthepony.mc.otm.config.ClientConfig
import ru.dbotthepony.mc.otm.android.feature.JumpBoostFeature
import ru.dbotthepony.mc.otm.player.android.feature.JumpBoostFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.player.matteryPlayer
import ru.dbotthepony.mc.otm.client.render.UVWindingOrder

View File

@ -23,7 +23,7 @@ import net.neoforged.neoforge.client.event.RenderGuiLayerEvent
import net.neoforged.neoforge.client.event.ScreenEvent
import net.neoforged.neoforge.client.gui.VanillaGuiLayers
import net.neoforged.neoforge.common.ItemAbilities
import ru.dbotthepony.mc.otm.android.feature.NanobotsArmorFeature
import ru.dbotthepony.mc.otm.player.android.feature.NanobotsArmorFeature
import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.player.matteryPlayer

View File

@ -11,9 +11,9 @@ import net.minecraft.world.entity.player.Inventory
import net.minecraft.world.item.ItemStack
import net.neoforged.neoforge.network.PacketDistributor
import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.android.AndroidResearch
import ru.dbotthepony.mc.otm.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.android.AndroidResearch
import ru.dbotthepony.mc.otm.player.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.player.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.client.CursorType
import ru.dbotthepony.mc.otm.client.render.MGUIGraphics

View File

@ -10,11 +10,11 @@ import net.minecraft.server.level.ServerPlayer
import net.minecraft.sounds.SoundSource
import net.neoforged.neoforge.network.handling.IPayloadContext
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidActiveFeature
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.android.AndroidResearchType
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.android.AndroidActiveFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.player.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.player.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.capability.energy.extractEnergyExact
import ru.dbotthepony.mc.otm.player.matteryPlayer
import ru.dbotthepony.mc.otm.client.MatteryGUI

View File

@ -2,8 +2,8 @@ package ru.dbotthepony.mc.otm.network
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent
import net.neoforged.neoforge.network.registration.HandlerThread
import ru.dbotthepony.mc.otm.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.android.feature.ItemEntityDataPacket
import ru.dbotthepony.mc.otm.player.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.player.android.feature.ItemEntityDataPacket
import ru.dbotthepony.mc.otm.compat.vanilla.InventoryScrollPacket
import ru.dbotthepony.mc.otm.data.FlywheelMaterials
import ru.dbotthepony.mc.otm.item.QuantumBatteryItem

View File

@ -20,10 +20,7 @@ import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer
import net.minecraft.tags.TagKey
import net.minecraft.world.Container
import net.minecraft.world.Difficulty
import net.minecraft.world.damagesource.DamageSource
import net.minecraft.world.effect.MobEffect
import net.minecraft.world.effect.MobEffectInstance
import net.minecraft.world.effect.MobEffects
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.boss.wither.WitherBoss
@ -36,7 +33,6 @@ import net.minecraft.world.item.ProjectileWeaponItem
import net.minecraft.world.item.crafting.RecipeManager
import net.minecraft.world.item.crafting.RecipeType
import net.minecraft.world.item.crafting.SingleRecipeInput
import net.minecraft.world.level.GameRules
import net.minecraft.world.level.Level
import net.minecraft.world.phys.Vec3
import net.neoforged.bus.api.Event
@ -60,11 +56,11 @@ import ru.dbotthepony.kommons.util.getValue
import ru.dbotthepony.kommons.util.setValue
import ru.dbotthepony.kommons.util.value
import ru.dbotthepony.mc.otm.*
import ru.dbotthepony.mc.otm.android.AndroidFeature
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.android.AndroidResearch
import ru.dbotthepony.mc.otm.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.player.android.AndroidResearch
import ru.dbotthepony.mc.otm.player.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.player.android.AndroidResearchType
import ru.dbotthepony.mc.otm.block.entity.ItemJob
import ru.dbotthepony.mc.otm.block.entity.JobContainer
import ru.dbotthepony.mc.otm.block.entity.JobStatus
@ -74,8 +70,6 @@ import ru.dbotthepony.mc.otm.capability.energy
import ru.dbotthepony.mc.otm.capability.energy.BatteryBackedEnergyStorage
import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage
import ru.dbotthepony.mc.otm.capability.energy.ProfiledEnergyStorage
import ru.dbotthepony.mc.otm.capability.energy.extractEnergyExact
import ru.dbotthepony.mc.otm.capability.energy.receiveEnergyExact
import ru.dbotthepony.mc.otm.capability.receiveEnergy
import ru.dbotthepony.mc.otm.client.minecraft
import ru.dbotthepony.mc.otm.config.PlayerConfig

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import com.mojang.blaze3d.vertex.PoseStack
import net.minecraft.client.Camera

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import net.minecraft.core.HolderLookup
import net.minecraft.nbt.CompoundTag

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import net.minecraft.network.chat.Component
import net.minecraft.network.chat.ComponentContents

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import net.minecraft.ChatFormatting
import net.minecraft.core.HolderLookup

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import com.google.gson.JsonObject
import it.unimi.dsi.fastutil.objects.ObjectArraySet

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import com.mojang.serialization.Codec
import com.mojang.serialization.MapCodec
@ -29,35 +29,76 @@ object AndroidResearchDescriptions {
val ENDER_TELEPORTER: AndroidResearchDescription.Singleton by registrar.register("ender_teleporter") {
AndroidResearchDescription.singleton {
TranslatableComponent("otm.gui.power_cost_per_use", PlayerConfig.EnderTeleporter.ENERGY_COST.formatPower(formatAsReadable = ShiftPressedCond).copy().withStyle(ChatFormatting.YELLOW)) }
TranslatableComponent(
"otm.gui.power_cost_per_use",
PlayerConfig.EnderTeleporter.ENERGY_COST.formatPower(formatAsReadable = ShiftPressedCond).copy()
.withStyle(ChatFormatting.YELLOW)
)
}
}
val FALL_DAMPENERS: AndroidResearchDescription.Leveled by registrar.register("fall_dampeners") {
AndroidResearchDescription.Leveled { _, list, level ->
list.add(TranslatableComponent("otm.fall_dampeners.description",
TextComponent("%.1f".format((PlayerConfig.FALL_DAMAGE_REDUCTION_PER_LEVEL_P * level).toFloat().coerceIn(0f, 1f) * 100f)).withStyle(ChatFormatting.YELLOW),
TextComponent("%.1f".format((PlayerConfig.FALL_DAMAGE_REDUCTION_PER_LEVEL_F * level).toFloat())).withStyle(ChatFormatting.YELLOW),
)) }
list.add(
TranslatableComponent(
"otm.fall_dampeners.description",
TextComponent(
"%.1f".format(
(PlayerConfig.FALL_DAMAGE_REDUCTION_PER_LEVEL_P * level).toFloat().coerceIn(0f, 1f) * 100f
)
).withStyle(ChatFormatting.YELLOW),
TextComponent("%.1f".format((PlayerConfig.FALL_DAMAGE_REDUCTION_PER_LEVEL_F * level).toFloat())).withStyle(
ChatFormatting.YELLOW
),
)
)
}
}
val SWIM_BOOSTERS: AndroidResearchDescription.Leveled by registrar.register("swim_boosters") {
AndroidResearchDescription.Leveled { _, list, level ->
list.add(TranslatableComponent(
"android_research.overdrive_that_matters.swim_boosters.description",
TextComponent("%.1f".format(PlayerConfig.SWIM_BOOSTERS * (1 + level) * 100.0)).withStyle(ChatFormatting.YELLOW)
)) }
list.add(
TranslatableComponent(
"android_research.overdrive_that_matters.swim_boosters.description",
TextComponent("%.1f".format(PlayerConfig.SWIM_BOOSTERS * (1 + level) * 100.0)).withStyle(
ChatFormatting.YELLOW
)
)
)
}
}
val ITEM_MAGNET: AndroidResearchDescription.Singleton by registrar.register("item_magnet") {
AndroidResearchDescription.singleton { TranslatableComponent("otm.gui.power_cost_per_tick", PlayerConfig.Magnet.POWER_DRAW.formatPower(formatAsReadable = ShiftPressedCond).copy().withStyle(ChatFormatting.YELLOW)) }
AndroidResearchDescription.singleton {
TranslatableComponent(
"otm.gui.power_cost_per_tick",
PlayerConfig.Magnet.POWER_DRAW.formatPower(
formatAsReadable = ShiftPressedCond
).copy().withStyle(ChatFormatting.YELLOW)
)
}
}
val JUMP_BOOST: AndroidResearchDescription.Singleton by registrar.register("jump_boost") {
AndroidResearchDescription.singleton { TranslatableComponent("otm.gui.power_cost_per_use", PlayerConfig.JumpBoost.ENERGY_COST.formatPower(formatAsReadable = ShiftPressedCond).copy().withStyle(ChatFormatting.YELLOW)) }
AndroidResearchDescription.singleton {
TranslatableComponent(
"otm.gui.power_cost_per_use",
PlayerConfig.JumpBoost.ENERGY_COST.formatPower(
formatAsReadable = ShiftPressedCond
).copy().withStyle(ChatFormatting.YELLOW)
)
}
}
val SHOCKWAVE: AndroidResearchDescription.Singleton by registrar.register("shockwave") {
AndroidResearchDescription.singleton { TranslatableComponent("otm.gui.power_cost_per_use", PlayerConfig.Shockwave.ENERGY_COST.formatPower(formatAsReadable = ShiftPressedCond).copy().withStyle(ChatFormatting.YELLOW)) }
AndroidResearchDescription.singleton {
TranslatableComponent(
"otm.gui.power_cost_per_use",
PlayerConfig.Shockwave.ENERGY_COST.formatPower(
formatAsReadable = ShiftPressedCond
).copy().withStyle(ChatFormatting.YELLOW)
)
}
}
}
@ -78,7 +119,8 @@ interface AndroidResearchDescription {
get() = this
}
class Leveled(val callback: (research: AndroidResearch, lines: MutableList<Component>, level: Int) -> Unit) : Type<Leveled.Instance> {
class Leveled(val callback: (research: AndroidResearch, lines: MutableList<Component>, level: Int) -> Unit) :
Type<Leveled.Instance> {
inner class Instance(val level: Int) : AndroidResearchDescription {
override fun addLines(research: AndroidResearch, lines: MutableList<Component>) {
callback.invoke(research, lines, level)
@ -90,7 +132,7 @@ interface AndroidResearchDescription {
override val codec: MapCodec<Instance> by lazy {
RecordCodecBuilder.mapCodec {
it.group(Codec.INT.fieldOf("level").forGetter(Instance::level)).apply(it, ::Instance)
it.group(Codec.INT.fieldOf("level").forGetter(Instance::level)).apply(it, Leveled::Instance)
}
}
}
@ -138,7 +180,7 @@ object PlainAndroidResearchDescription : AndroidResearchDescription.Type<PlainAn
RecordCodecBuilder.mapCodec {
it.group(
ComponentSerialization.CODEC.fieldOf("line").forGetter { it.line }
).apply(it, ::Instance)
).apply(it, PlainAndroidResearchDescription::Instance)
}
}
}

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import com.google.common.collect.ImmutableMap
import com.google.gson.GsonBuilder
@ -108,7 +108,10 @@ object AndroidResearchManager : SimpleJsonResourceReloadListener(GsonBuilder().s
}
val SYNC_TYPE = CustomPacketPayload.Type<SyncPacket>(ResourceLocation(OverdriveThatMatters.MOD_ID, "research_sync"))
val SYNC_CODEC: StreamCodec<FriendlyByteBuf, SyncPacket> = StreamCodec.ofMember(SyncPacket::write, ::readSyncPacket)
val SYNC_CODEC: StreamCodec<FriendlyByteBuf, SyncPacket> = StreamCodec.ofMember(
SyncPacket::write,
AndroidResearchManager::readSyncPacket
)
class SyncPacket(val collection: Collection<AndroidResearchType>) : CustomPacketPayload {
fun write(buff: FriendlyByteBuf) {

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import com.mojang.serialization.Codec
import com.mojang.serialization.MapCodec
@ -16,8 +16,8 @@ object AndroidResearchResults {
private val registrar = MDeferredRegister(AndroidResearchResult.registryKey, OverdriveThatMatters.MOD_ID)
init {
registrar.register("feature") { AndroidResearchResult.Feature.Companion }
registrar.register("feature_level") { AndroidResearchResult.FeatureLevel.Companion }
registrar.register("feature") { AndroidResearchResult.Feature }
registrar.register("feature_level") { AndroidResearchResult.FeatureLevel }
}
private object NanobotsArmorStrength : AndroidResearchResult.Singleton<NanobotsArmorStrength> {
@ -90,7 +90,7 @@ interface AndroidResearchResult {
it.group(
ResourceLocation.CODEC.fieldOf("id").forGetter(Feature::id),
Codec.BOOL.optionalFieldOf("optional", false).forGetter(Feature::optional)
).apply(it, ::Feature)
).apply(it, AndroidResearchResult::Feature)
}
}
}
@ -99,7 +99,8 @@ interface AndroidResearchResult {
/**
* Increases level of specific android feature [id] by specified amount [levels]
*/
class FeatureLevel(val id: ResourceLocation, val optional: Boolean = false, val levels: Int = 1) : AndroidResearchResult {
class FeatureLevel(val id: ResourceLocation, val optional: Boolean = false, val levels: Int = 1) :
AndroidResearchResult {
val feature = MRegistry.ANDROID_FEATURES.get(id) ?: if (optional) null else throw NoSuchElementException("Unknown android feature $id")
override val type: Type<*>
@ -132,7 +133,7 @@ interface AndroidResearchResult {
ResourceLocation.CODEC.fieldOf("id").forGetter(FeatureLevel::id),
Codec.BOOL.optionalFieldOf("optional", false).forGetter(FeatureLevel::optional),
Codec.INT.optionalFieldOf("levels", 1).forGetter(FeatureLevel::levels),
).apply(it, ::FeatureLevel)
).apply(it, AndroidResearchResult::FeatureLevel)
}
}
}

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import com.google.common.collect.ImmutableList
import com.google.gson.JsonObject
@ -131,10 +131,10 @@ class AndroidResearchType(
it.group(
ResourceLocation.CODEC.fieldOf("id").forGetter(Reference::id),
Codec.BOOL.optionalFieldOf("optional", false).forGetter(Reference::optional)
).apply(it, ::Reference)
).apply(it, AndroidResearchType::Reference)
})
.xmap(
{ c -> c.map(::Reference, Function.identity()) },
{ c -> c.map(AndroidResearchType::Reference, Function.identity()) },
{ c -> if (c.optional) Either.right(c) else Either.left(c.id) }
)
}

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android
package ru.dbotthepony.mc.otm.player.android
import net.minecraft.client.multiplayer.ClientLevel
import net.minecraft.core.HolderLookup

View File

@ -1,9 +1,9 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.world.entity.ai.attributes.AttributeModifier
import net.minecraft.world.entity.ai.attributes.Attributes
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.core.ResourceLocation
import ru.dbotthepony.mc.otm.registry.game.AndroidFeatures

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import com.mojang.blaze3d.systems.RenderSystem
import com.mojang.blaze3d.vertex.PoseStack
@ -25,7 +25,7 @@ import net.neoforged.neoforge.event.entity.living.LivingDeathEvent
import ru.dbotthepony.kommons.math.RGBAColor
import ru.dbotthepony.mc.otm.NULLABLE_MINECRAFT_SERVER
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidActiveFeature
import ru.dbotthepony.mc.otm.player.android.AndroidActiveFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.capability.energy.extractEnergyExact
import ru.dbotthepony.mc.otm.player.matteryPlayer

View File

@ -1,9 +1,9 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.world.entity.ai.attributes.AttributeModifier
import net.minecraft.world.entity.ai.attributes.Attributes
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.core.ResourceLocation
import ru.dbotthepony.mc.otm.registry.game.AndroidFeatures

View File

@ -1,8 +1,8 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.server.level.ServerPlayer
import net.neoforged.neoforge.event.entity.living.LivingIncomingDamageEvent
import ru.dbotthepony.mc.otm.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.config.PlayerConfig
import ru.dbotthepony.mc.otm.core.isFall

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.client.multiplayer.ClientLevel
import net.minecraft.network.FriendlyByteBuf
@ -12,7 +12,7 @@ import net.neoforged.neoforge.network.handling.IPayloadContext
import ru.dbotthepony.kommons.math.RGBAColor
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.config.PlayerConfig
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.capability.energy.extractEnergyExact
import ru.dbotthepony.mc.otm.client.render.MGUIGraphics
@ -60,7 +60,10 @@ class ItemEntityDataPacket(val itemUUID: Int, val owner: UUID? = null, val age:
companion object {
val TYPE = CustomPacketPayload.Type<ItemEntityDataPacket>(ResourceLocation(OverdriveThatMatters.MOD_ID, "item_entity_data"))
val CODEC: StreamCodec<FriendlyByteBuf, ItemEntityDataPacket> = StreamCodec.ofMember(ItemEntityDataPacket::write, ::read)
val CODEC: StreamCodec<FriendlyByteBuf, ItemEntityDataPacket> = StreamCodec.ofMember(
ItemEntityDataPacket::write,
Companion::read
)
fun read(buff: FriendlyByteBuf): ItemEntityDataPacket {
return ItemEntityDataPacket(buff.readVarInt(), if (buff.readBoolean()) buff.readUUID() else null, buff.readVarInt(), buff.readVarInt(), buff.readBoolean())

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.server.level.ServerPlayer
import net.minecraft.sounds.SoundSource
@ -6,7 +6,7 @@ import net.neoforged.neoforge.network.PacketDistributor
import ru.dbotthepony.kommons.math.RGBAColor
import ru.dbotthepony.kommons.util.getValue
import ru.dbotthepony.kommons.util.setValue
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.capability.energy.extractEnergyExact
import ru.dbotthepony.mc.otm.client.render.MGUIGraphics

View File

@ -1,11 +1,11 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.ai.attributes.AttributeModifier
import net.minecraft.world.entity.ai.attributes.Attributes
import net.minecraft.world.entity.player.Player
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.player.matteryPlayer
import ru.dbotthepony.mc.otm.core.ResourceLocation
@ -17,7 +17,7 @@ class LimbOverclockingFeature(android: MatteryPlayer) : AndroidFeature(AndroidFe
if (speed != null) {
speed.removeModifier(MODIFIER_ID)
speed.addPermanentModifier(AttributeModifier(MODIFIER_ID,(level + 1) * 0.08, AttributeModifier.Operation.ADD_MULTIPLIED_TOTAL))
speed.addPermanentModifier(AttributeModifier(MODIFIER_ID, (level + 1) * 0.08, AttributeModifier.Operation.ADD_MULTIPLIED_TOTAL))
}
val attackSpeed = ply.getAttribute(Attributes.ATTACK_SPEED)

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.core.HolderLookup
import net.minecraft.nbt.CompoundTag
@ -7,7 +7,7 @@ import net.minecraft.tags.DamageTypeTags
import net.neoforged.neoforge.event.entity.living.LivingIncomingDamageEvent
import ru.dbotthepony.kommons.util.getValue
import ru.dbotthepony.kommons.util.setValue
import ru.dbotthepony.mc.otm.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.capability.energy.extractEnergyExact
import ru.dbotthepony.mc.otm.core.isBypassArmor

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.core.HolderLookup
import net.minecraft.nbt.CompoundTag
@ -6,7 +6,7 @@ import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.level.GameRules
import net.neoforged.neoforge.event.entity.living.LivingIncomingDamageEvent
import ru.dbotthepony.mc.otm.config.PlayerConfig
import ru.dbotthepony.mc.otm.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.registry.game.AndroidFeatures
import ru.dbotthepony.mc.otm.registry.StatNames

View File

@ -1,9 +1,9 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.world.effect.MobEffectInstance
import net.minecraft.world.effect.MobEffects
import ru.dbotthepony.kommons.math.RGBAColor
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.capability.energy.extractEnergyExact
import ru.dbotthepony.mc.otm.client.render.MGUIGraphics

View File

@ -1,4 +1,4 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import it.unimi.dsi.fastutil.objects.ReferenceArraySet
import net.minecraft.server.level.ServerPlayer
@ -7,7 +7,7 @@ import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.monster.warden.Warden
import net.neoforged.neoforge.network.PacketDistributor
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.capability.energy.extractEnergyExact
import ru.dbotthepony.mc.otm.client.render.MGUIGraphics

View File

@ -1,8 +1,8 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.world.entity.ai.attributes.AttributeModifier
import net.minecraft.world.entity.ai.attributes.Attributes
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.client.render.MGUIGraphics
import ru.dbotthepony.mc.otm.client.render.ResearchIcons

View File

@ -1,8 +1,8 @@
package ru.dbotthepony.mc.otm.android.feature
package ru.dbotthepony.mc.otm.player.android.feature
import net.minecraft.world.entity.ai.attributes.AttributeModifier
import net.neoforged.neoforge.common.NeoForgeMod
import ru.dbotthepony.mc.otm.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.android.AndroidSwitchableFeature
import ru.dbotthepony.mc.otm.player.MatteryPlayer
import ru.dbotthepony.mc.otm.client.render.MGUIGraphics
import ru.dbotthepony.mc.otm.client.render.ResearchIcons

View File

@ -29,9 +29,9 @@ import net.neoforged.neoforge.event.ModifyDefaultComponentsEvent
import net.neoforged.neoforge.registries.RegisterEvent
import ru.dbotthepony.kommons.math.RGBAColor
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.android.feature.EnderTeleporterFeature
import ru.dbotthepony.mc.otm.android.feature.NanobotsArmorFeature
import ru.dbotthepony.mc.otm.player.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.player.android.feature.EnderTeleporterFeature
import ru.dbotthepony.mc.otm.player.android.feature.NanobotsArmorFeature
import ru.dbotthepony.mc.otm.block.decorative.CargoCrateBlock
import ru.dbotthepony.mc.otm.block.decorative.ComputerTerminalBlock
import ru.dbotthepony.mc.otm.block.decorative.StarChairBlock

View File

@ -1,9 +1,21 @@
package ru.dbotthepony.mc.otm.registry.game
import net.neoforged.bus.api.IEventBus
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.android.DummyAndroidFeature
import ru.dbotthepony.mc.otm.android.feature.*
import ru.dbotthepony.mc.otm.player.android.AndroidFeatureType
import ru.dbotthepony.mc.otm.player.android.DummyAndroidFeature
import ru.dbotthepony.mc.otm.player.android.feature.AttackBoostFeature
import ru.dbotthepony.mc.otm.player.android.feature.EnderTeleporterFeature
import ru.dbotthepony.mc.otm.player.android.feature.ExtendedReachFeature
import ru.dbotthepony.mc.otm.player.android.feature.FallDampenersFeature
import ru.dbotthepony.mc.otm.player.android.feature.ItemMagnetFeature
import ru.dbotthepony.mc.otm.player.android.feature.JumpBoostFeature
import ru.dbotthepony.mc.otm.player.android.feature.LimbOverclockingFeature
import ru.dbotthepony.mc.otm.player.android.feature.NanobotsArmorFeature
import ru.dbotthepony.mc.otm.player.android.feature.NanobotsRegenerationFeature
import ru.dbotthepony.mc.otm.player.android.feature.NightVisionFeature
import ru.dbotthepony.mc.otm.player.android.feature.ShockwaveFeature
import ru.dbotthepony.mc.otm.player.android.feature.StepAssistFeature
import ru.dbotthepony.mc.otm.player.android.feature.SwimBoostersFeature
import ru.dbotthepony.mc.otm.registry.MDeferredRegister
import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.registry.MRegistry

View File

@ -4,8 +4,8 @@ import net.minecraft.commands.Commands
import net.minecraft.commands.arguments.EntityArgument
import net.minecraft.world.entity.player.Player
import net.neoforged.neoforge.event.RegisterCommandsEvent
import ru.dbotthepony.mc.otm.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.player.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.matteryPlayer
object AndroidCommand {

View File

@ -8,8 +8,8 @@ import com.mojang.brigadier.suggestion.SuggestionsBuilder
import net.minecraft.commands.CommandSourceStack
import net.minecraft.commands.SharedSuggestionProvider
import net.minecraft.resources.ResourceLocation
import ru.dbotthepony.mc.otm.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.android.AndroidResearchManager
import ru.dbotthepony.mc.otm.player.android.AndroidResearchType
import java.util.concurrent.CompletableFuture
class AndroidResearchArgument : ArgumentType<AndroidResearchType> {

View File

@ -6,7 +6,7 @@ import net.minecraft.advancements.critereon.ContextAwarePredicate
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerPlayer
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidResearchType
import ru.dbotthepony.mc.otm.player.android.AndroidResearchType
import ru.dbotthepony.mc.otm.core.ResourceLocation
import java.util.*
import java.util.function.Predicate