mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-16 10:51:55 -04:00
Fixes robot assembler ignoring ignorePower setting, closes #482.
Checking if player that starts assembly of a robot is in creative mode, if so, finish instantly for all case tiers, closes #481.
This commit is contained in:
parent
d71efdfbb8
commit
d9b0dda36e
@ -55,7 +55,7 @@ class RobotAssembler extends traits.Environment with traits.PowerAcceptor with t
|
||||
if (caseTier >= 0) Settings.robotComplexityByTier(caseTier) else 0
|
||||
}
|
||||
|
||||
def start() {
|
||||
def start(finishImmediately: Boolean) {
|
||||
if (!isAssembling && robot.isEmpty && complexity <= maxComplexity) {
|
||||
for (slot <- 0 until getSizeInventory) {
|
||||
val stack = getStackInSlot(slot)
|
||||
@ -75,7 +75,7 @@ class RobotAssembler extends traits.Environment with traits.PowerAcceptor with t
|
||||
val stack = api.Items.get("robot").createItemStack(1)
|
||||
data.save(stack)
|
||||
robot = Some(stack)
|
||||
if (data.tier == Tier.Four) {
|
||||
if (finishImmediately || data.tier == Tier.Four) {
|
||||
// Creative tier, finish instantly.
|
||||
totalRequiredEnergy = 0
|
||||
}
|
||||
@ -98,7 +98,7 @@ class RobotAssembler extends traits.Environment with traits.PowerAcceptor with t
|
||||
super.updateEntity()
|
||||
if (robot.isDefined && world.getTotalWorldTime % Settings.get.tickFrequency == 0) {
|
||||
val want = math.max(1, math.min(requiredEnergy, Settings.get.assemblerTickAmount * Settings.get.tickFrequency))
|
||||
val success = node.tryChangeBuffer(-want)
|
||||
val success = Settings.get.ignorePower || node.tryChangeBuffer(-want)
|
||||
if (success) {
|
||||
requiredEnergy -= want
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ import li.cil.oc.common.{PacketType, PacketHandler => CommonPacketHandler}
|
||||
import li.cil.oc.{Settings, api}
|
||||
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP}
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
import net.minecraft.server.MinecraftServer
|
||||
import net.minecraft.util.ChatMessageComponent
|
||||
import net.minecraftforge.common.{DimensionManager, ForgeDirection}
|
||||
|
||||
@ -141,7 +142,10 @@ class PacketHandler extends CommonPacketHandler {
|
||||
|
||||
def onRobotAssemblerStart(p: PacketParser) =
|
||||
p.readTileEntity[RobotAssembler]() match {
|
||||
case Some(assembler) => assembler.start()
|
||||
case Some(assembler) => assembler.start(p.player match {
|
||||
case player: EntityPlayerMP => player.theItemInWorldManager.isCreative
|
||||
case _ => false
|
||||
})
|
||||
case _ => // Invalid packet.
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user