slurp
This commit is contained in:
parent
d669fcb28d
commit
7c794126b6
@ -608,8 +608,8 @@ private fun items(provider: MatteryLanguageProvider) {
|
|||||||
add(MItems.ESSENCE_CAPSULE, "Essence Capsule")
|
add(MItems.ESSENCE_CAPSULE, "Essence Capsule")
|
||||||
add(MItems.ESSENCE_DRIVE, "Essence Memory Holotape")
|
add(MItems.ESSENCE_DRIVE, "Essence Memory Holotape")
|
||||||
add(MItems.ESSENCE_SERVO, "Essence Servo")
|
add(MItems.ESSENCE_SERVO, "Essence Servo")
|
||||||
add(MItems.ESSENCE_SERVO, "desc", "Allows to 'pump' essence involving fleshy humanoids")
|
add(MItems.ESSENCE_SERVO, "desc", "Allows to absorb nearby experience orbs directly into essence storage")
|
||||||
add(MItems.ESSENCE_SERVO, "desc2", "Can be used standalone, or as tool inside Essence Servo")
|
add(MItems.ESSENCE_SERVO, "desc2", "Can be used as a tool to pump essence manually")
|
||||||
|
|
||||||
add(MItems.NUTRIENT_PASTE, "Nutrient Paste")
|
add(MItems.NUTRIENT_PASTE, "Nutrient Paste")
|
||||||
|
|
||||||
|
@ -612,8 +612,8 @@ private fun items(provider: MatteryLanguageProvider) {
|
|||||||
add(MItems.ESSENCE_CAPSULE, "Капсула эссенции")
|
add(MItems.ESSENCE_CAPSULE, "Капсула эссенции")
|
||||||
add(MItems.ESSENCE_DRIVE, "Голодиск воспоминаний андроида")
|
add(MItems.ESSENCE_DRIVE, "Голодиск воспоминаний андроида")
|
||||||
add(MItems.ESSENCE_SERVO, "Помпа эссенции")
|
add(MItems.ESSENCE_SERVO, "Помпа эссенции")
|
||||||
add(MItems.ESSENCE_SERVO, "desc", "Позволяет 'перекачивать' эссенцию гуманоидов из плоти")
|
add(MItems.ESSENCE_SERVO, "desc", "Позволяет всасывать близлежащие сферы опыта напрямую в хранилище эссенции")
|
||||||
add(MItems.ESSENCE_SERVO, "desc2", "Может быть использовано напрямую, или как инструмент внутри хранилища эссенции")
|
add(MItems.ESSENCE_SERVO, "desc2", "Может использоваться как инструмент для ручной перекачки эссенции")
|
||||||
|
|
||||||
add(MItems.NUTRIENT_PASTE, "Питательная паста")
|
add(MItems.NUTRIENT_PASTE, "Питательная паста")
|
||||||
|
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.entity.tech
|
package ru.dbotthepony.mc.otm.block.entity.tech
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
|
import net.minecraft.server.level.ServerLevel
|
||||||
|
import net.minecraft.sounds.SoundEvents
|
||||||
|
import net.minecraft.sounds.SoundSource
|
||||||
|
import net.minecraft.world.entity.ExperienceOrb
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
import net.minecraft.world.inventory.AbstractContainerMenu
|
import net.minecraft.world.inventory.AbstractContainerMenu
|
||||||
@ -12,9 +16,13 @@ import net.minecraftforge.fluids.capability.IFluidHandler
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.ExperienceStorage.Companion.XP_TO_LIQUID_RATIO
|
import ru.dbotthepony.mc.otm.block.entity.ExperienceStorage.Companion.XP_TO_LIQUID_RATIO
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.capability.item.CombinedItemHandler
|
import ru.dbotthepony.mc.otm.capability.item.CombinedItemHandler
|
||||||
|
import ru.dbotthepony.mc.otm.config.MachinesConfig
|
||||||
import ru.dbotthepony.mc.otm.container.HandlerFilter
|
import ru.dbotthepony.mc.otm.container.HandlerFilter
|
||||||
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
||||||
|
import ru.dbotthepony.mc.otm.core.getEntitiesInEllipsoid
|
||||||
|
import ru.dbotthepony.mc.otm.core.math.Vector
|
||||||
import ru.dbotthepony.mc.otm.item.EssenceCapsuleItem
|
import ru.dbotthepony.mc.otm.item.EssenceCapsuleItem
|
||||||
|
import ru.dbotthepony.mc.otm.item.EssenceServoItem
|
||||||
import ru.dbotthepony.mc.otm.menu.tech.EssenceStorageMenu
|
import ru.dbotthepony.mc.otm.menu.tech.EssenceStorageMenu
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.registry.MFluids
|
import ru.dbotthepony.mc.otm.registry.MFluids
|
||||||
@ -146,6 +154,37 @@ class EssenceStorageBlockEntity(blockPos: BlockPos, blockState: BlockState) : Ma
|
|||||||
repairStack.damageValue -= repairPoints
|
repairStack.damageValue -= repairPoints
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val servo = servoContainer[0]
|
||||||
|
|
||||||
|
if (!servo.isEmpty && servo.item is EssenceServoItem && level is ServerLevel) {
|
||||||
|
val entities = level!!.getEntitiesInEllipsoid(
|
||||||
|
blockPos.center,
|
||||||
|
Vector(
|
||||||
|
MachinesConfig.EssenceStorage.RADIUS_HORIZONTAL,
|
||||||
|
MachinesConfig.EssenceStorage.RADIUS_VERTICAL,
|
||||||
|
MachinesConfig.EssenceStorage.RADIUS_HORIZONTAL
|
||||||
|
)
|
||||||
|
) { it is ExperienceOrb }
|
||||||
|
|
||||||
|
for ((ent, _) in entities) {
|
||||||
|
ent as ExperienceOrb
|
||||||
|
|
||||||
|
for (i in 1 .. ent.count) {
|
||||||
|
experienceStored += ent.value
|
||||||
|
ent.count--
|
||||||
|
|
||||||
|
level!!.playSound(null, ent.x, ent.y, ent.z,
|
||||||
|
SoundEvents.EXPERIENCE_ORB_PICKUP, SoundSource.BLOCKS,
|
||||||
|
0.1F, 0.5F + level!!.random.nextFloat() * 0.25F
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ent.count <= 0) {
|
||||||
|
ent.discard()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,7 +219,21 @@ object MachinesConfig : AbstractConfig("machines") {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object EssenceStorage {
|
||||||
|
init {
|
||||||
|
builder.push(MNames.ESSENCE_STORAGE)
|
||||||
|
}
|
||||||
|
|
||||||
|
val RADIUS_HORIZONTAL: Double by builder.defineInRange("RADIUS_HORIZONTAL", 5.0, 0.0, Double.MAX_VALUE / 4.0)
|
||||||
|
val RADIUS_VERTICAL: Double by builder.defineInRange("RADIUS_VERTICAL", 2.0, 0.0, Double.MAX_VALUE / 4.0)
|
||||||
|
|
||||||
|
init {
|
||||||
|
builder.pop()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
Upgrades
|
Upgrades
|
||||||
|
EssenceStorage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -163,6 +163,8 @@ public net.minecraft.world.entity.boss.wither.WitherBoss f_31432_ # TARGETING_CO
|
|||||||
public-f net.minecraft.world.entity.boss.wither.WitherBoss f_31431_ # LIVING_ENTITY_SELECTOR
|
public-f net.minecraft.world.entity.boss.wither.WitherBoss f_31431_ # LIVING_ENTITY_SELECTOR
|
||||||
public net.minecraft.world.entity.ai.targeting.TargetingConditions f_26879_ # selector
|
public net.minecraft.world.entity.ai.targeting.TargetingConditions f_26879_ # selector
|
||||||
|
|
||||||
|
public net.minecraft.world.entity.ExperienceOrb f_147072_ # count
|
||||||
|
|
||||||
public net.minecraft.advancements.critereon.InventoryChangeTrigger$TriggerInstance f_43179_
|
public net.minecraft.advancements.critereon.InventoryChangeTrigger$TriggerInstance f_43179_
|
||||||
public net.minecraft.advancements.critereon.InventoryChangeTrigger$TriggerInstance f_43178_
|
public net.minecraft.advancements.critereon.InventoryChangeTrigger$TriggerInstance f_43178_
|
||||||
public net.minecraft.advancements.critereon.InventoryChangeTrigger$TriggerInstance f_43177_
|
public net.minecraft.advancements.critereon.InventoryChangeTrigger$TriggerInstance f_43177_
|
||||||
|
Loading…
Reference in New Issue
Block a user