Added RITEG upgrade

Tier 3 upgrade that can be inserted in microcontrollers, robots and drones.
Generates a bit less energy than regular generator.
This commit is contained in:
Florexiz 2022-01-16 12:06:13 +03:00
parent e93c1dcc0b
commit c9fbb42683
9 changed files with 79 additions and 0 deletions

View File

@ -165,6 +165,7 @@ item.oc.MicrocontrollerCase3.name=Microcontroller Case (Tier 3)
item.oc.Server3.name=Server (Tier 4)
item.oc.TabletCase3.name=Tablet Case (Tier 3)
item.oc.UpgradeBeekeeper.name=Beekeeper Upgrade
item.oc.UpgradeRITEG.name=RITEG Upgrade
# Entities
entity.oc.Drone.name=Drone
@ -400,6 +401,8 @@ oc:tooltip.Waypoint=Provides a point of reference to devices with a navigation u
oc:tooltip.WirelessNetworkCard=Allows wireless sending of network messages in addition to normal ones. You can adjust the §fsignal strength§7 to control how far messages are sent. Higher signal strength results in higher energy consumption.
oc:tooltip.WorldSensorCard=Allows reading out information about the world, such as its gravity and whether it has a breathable atmosphere. Use results at own risk. The manufacturer takes no responsibility for bodily or material harm caused by decisions made upon the cards' outputs. We have lawyers. And money. Don't even try.
oc:tooltip.Wrench=A hybrid of Screwdriver and Wrench, this tool is easy to learn, but hard to master.
oc:tooltip.UpgradeRITEG=Pocket nuke for your robots. Generates energy at %s%% of the speed of a Stirling Engine.
#Achievements
achievement.oc.adapter=Plug In Baby

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

View File

@ -143,6 +143,7 @@ object Constants {
final val RawCircuitBoard = "rawCircuitBoard"
final val RedstoneCardTier1 = "redstoneCard1"
final val RedstoneCardTier2 = "redstoneCard2"
final val RITEGUpgrade = "ritegUpgrade"
final val ServerCreative = "serverCreative"
final val ServerTier1 = "server1"
final val ServerTier2 = "server2"

View File

@ -149,6 +149,7 @@ class Settings(val config: Config) {
val chargeRateTablet = config.getDouble("power.chargerChargeRateTablet")
val generatorEfficiency = config.getDouble("power.generatorEfficiency")
val solarGeneratorEfficiency = config.getDouble("power.solarGeneratorEfficiency")
val ritegUpgradeEfficiency = try { config.getDouble("power.ritegEfficiency") } catch { case _ : Throwable => 0.6}
val assemblerTickAmount = config.getDouble("power.assemblerTickAmount") max 1
val disassemblerTickAmount = config.getDouble("power.disassemblerTickAmount") max 1
val printerTickAmount = config.getDouble("power.printerTickAmount") max 1

View File

@ -551,6 +551,8 @@ object Items extends ItemAPI {
Recipes.addSubItem(new item.WirelessNetworkCard(multi, Tier.One), Constants.ItemName.WirelessNetworkCardTier1, "oc:wlanCard1")
registerItem(new item.ComponentBus(multi, Tier.Four), Constants.ItemName.ComponentBusCreative)
Recipes.addSubItem(new item.UpgradeRITEG(multi), Constants.ItemName.RITEGUpgrade)
// Register aliases.
for ((k, v) <- aliases) {
descriptors.getOrElseUpdate(k, descriptors(v))

View File

@ -0,0 +1,7 @@
package li.cil.oc.common.item
import li.cil.oc.Settings
class UpgradeRITEG(val parent: Delegator) extends traits.Delegate with traits.ItemTier {
override protected def tooltipData = Seq((Settings.get.ritegUpgradeEfficiency * 100).toInt)
}

View File

@ -0,0 +1,23 @@
package li.cil.oc.integration.opencomputers
import li.cil.oc.Constants
import li.cil.oc.api
import li.cil.oc.api.driver.item.HostAware
import li.cil.oc.api.network.EnvironmentHost
import li.cil.oc.common.Slot
import li.cil.oc.common.Tier
import li.cil.oc.server.component.UpgradeRITEG
import net.minecraft.item.ItemStack
object DriverUpgradeRITEG extends Item with HostAware {
override def worksWith(stack: ItemStack) = isOneOf(stack,
api.Items.get(Constants.ItemName.RITEGUpgrade))
override def createEnvironment(stack: ItemStack, host: EnvironmentHost) =
if (host.world != null && host.world.isRemote) null
else new UpgradeRITEG(host)
override def slot(stack: ItemStack) = Slot.Upgrade
override def tier(stack: ItemStack) = Tier.Three
}

View File

@ -164,6 +164,7 @@ object ModOpenComputers extends ModProxy {
api.Driver.add(DriverUpgradeLeash)
api.Driver.add(DriverUpgradeNavigation)
api.Driver.add(DriverUpgradePiston)
api.Driver.add(DriverUpgradeRITEG)
api.Driver.add(DriverUpgradeSign)
api.Driver.add(DriverUpgradeSolarGenerator)
api.Driver.add(DriverUpgradeTank)
@ -227,6 +228,7 @@ object ModOpenComputers extends ModProxy {
Constants.ItemName.InventoryUpgrade,
Constants.ItemName.NavigationUpgrade,
Constants.ItemName.PistonUpgrade,
Constants.ItemName.RITEGUpgrade,
Constants.ItemName.SolarGeneratorUpgrade,
Constants.ItemName.TankUpgrade,
Constants.ItemName.TractorBeamUpgrade,

View File

@ -0,0 +1,40 @@
package li.cil.oc.server.component
import java.util
import li.cil.oc.Constants
import li.cil.oc.api.driver.DeviceInfo.DeviceAttribute
import li.cil.oc.api.driver.DeviceInfo.DeviceClass
import li.cil.oc.Settings
import li.cil.oc.api.Network
import li.cil.oc.api.driver.DeviceInfo
import li.cil.oc.api.network.EnvironmentHost
import li.cil.oc.api.network.Visibility
import li.cil.oc.api.prefab
import scala.collection.convert.WrapAsJava._
class UpgradeRITEG(val host: EnvironmentHost) extends prefab.ManagedEnvironment with DeviceInfo {
override val node = Network.newNode(this, Visibility.Network).
withConnector().
create()
private final lazy val deviceInfo = Map(
DeviceAttribute.Class -> DeviceClass.Power,
DeviceAttribute.Description -> "Radioisotope thermoelectric generator",
DeviceAttribute.Vendor -> Constants.DeviceInfo.DefaultVendor,
DeviceAttribute.Product -> "Hazmat protection not included"
)
override def getDeviceInfo: util.Map[String, String] = deviceInfo
// ----------------------------------------------------------------------- //
override val canUpdate = true
override def update() {
super.update()
node.changeBuffer(Settings.get.ritegUpgradeEfficiency)
}
}