mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-12 19:44:05 +09:00
wire is back! but not the render
This commit is contained in:
@@ -355,20 +355,6 @@ object IngameRenderer : Disposable {
|
||||
|
||||
internal var fboRGBexportRequested = false
|
||||
|
||||
/**
|
||||
* Which wires should be drawn. Normally this value is set by the wiring item (e.g. wire pieces, wirecutters)
|
||||
* This number is directly related with the World's wire bits:
|
||||
*
|
||||
* ```
|
||||
* world.getWires(x, y) -> 0000101 (for example)
|
||||
* value of 3 selects this ^ ^
|
||||
* value of 1 selects this |
|
||||
*
|
||||
* The wire piece gets rendered when selected bit is set.
|
||||
* ```
|
||||
*/
|
||||
var selectedWireBitToDraw = 0
|
||||
|
||||
private fun drawToRGB(
|
||||
actorsRenderBehind: List<ActorWithBody>?,
|
||||
actorsRenderMiddle: List<ActorWithBody>?,
|
||||
@@ -411,7 +397,7 @@ object IngameRenderer : Disposable {
|
||||
}
|
||||
|
||||
setCameraPosition(0f, 0f)
|
||||
BlocksDrawer.drawFront(batch.projectionMatrix, selectedWireBitToDraw) // blue coloured filter of water, etc.
|
||||
BlocksDrawer.drawFront(batch.projectionMatrix) // blue coloured filter of water, etc.
|
||||
|
||||
batch.inUse {
|
||||
FeaturesDrawer.drawEnvOverlay(batch)
|
||||
|
||||
@@ -3,6 +3,7 @@ package net.torvald.terrarum.modulebasegame.gameactors
|
||||
import net.torvald.terrarum.AppLoader
|
||||
import net.torvald.terrarum.ModMgr
|
||||
import net.torvald.terrarum.blockproperties.BlockCodex
|
||||
import net.torvald.terrarum.blockproperties.WireCodex
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
import net.torvald.terrarum.gameactors.faction.FactionFactory
|
||||
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
|
||||
@@ -92,9 +93,16 @@ object PlayerBuilderSigrid {
|
||||
inventory.add("item@basegame:1", 16) // copper pick
|
||||
inventory.add("item@basegame:2") // iron pick
|
||||
inventory.add("item@basegame:3") // steel pick
|
||||
inventory.add("item@basegame:4", 9995) // wire piece
|
||||
inventory.add("item@basegame:5", 385930603) // test tiki torch
|
||||
inventory.add("item@basegame:6", 95) // crafting table
|
||||
|
||||
WireCodex.getAll().forEach {
|
||||
try {
|
||||
inventory.add(it.id, 9995)
|
||||
}
|
||||
catch (e: Throwable) {
|
||||
System.err.println("[PlayerBuilder] $e")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ package net.torvald.terrarum.modulebasegame.gameitems
|
||||
import net.torvald.terrarum.Point2d
|
||||
import net.torvald.terrarum.Point2i
|
||||
import net.torvald.terrarum.Terrarum
|
||||
import net.torvald.terrarum.blockproperties.BlockCodex
|
||||
import net.torvald.terrarum.blockproperties.WireCodex
|
||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||
import net.torvald.terrarum.gameitem.GameItem
|
||||
import net.torvald.terrarum.gameitem.ItemID
|
||||
@@ -11,6 +13,7 @@ import net.torvald.terrarum.itemproperties.ItemCodex
|
||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||
import net.torvald.terrarum.modulebasegame.IngameRenderer
|
||||
import net.torvald.terrarum.realestate.LandUtil
|
||||
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2019-05-02.
|
||||
@@ -73,35 +76,36 @@ object BlockBase {
|
||||
}
|
||||
|
||||
fun blockEffectWhenEquipped(delta: Float) {
|
||||
IngameRenderer.selectedWireBitToDraw = 0
|
||||
BlocksDrawer.selectedWireRenderClass = ""
|
||||
}
|
||||
|
||||
fun wireStartPrimaryUse(gameItem: GameItem, wireTypeBit: Int, delta: Float): Boolean {
|
||||
return false // TODO need new wire storing format
|
||||
/*val ingame = Terrarum.ingame!! as TerrarumIngame
|
||||
fun wireStartPrimaryUse(gameItem: GameItem, delta: Float): Boolean {
|
||||
val itemID = gameItem.originalID
|
||||
val ingame = Terrarum.ingame!! as TerrarumIngame
|
||||
val mouseTile = Point2i(Terrarum.mouseTileX, Terrarum.mouseTileY)
|
||||
|
||||
// return false if the tile is already there
|
||||
if (ingame.world.getWiringBlocks(mouseTile.x, mouseTile.y) and wireTypeBit != 0)
|
||||
if (ingame.world.getAllWiresFrom(mouseTile.x, mouseTile.y)?.searchFor(itemID) != null)
|
||||
return false
|
||||
|
||||
// filter passed, do the job
|
||||
// FIXME this is only useful for Player
|
||||
ingame.world.addNewConduitTo(
|
||||
ingame.world.setTileWire(
|
||||
mouseTile.x,
|
||||
mouseTile.y,
|
||||
GameWorld.WiringNode(
|
||||
LandUtil.getBlockAddr(ingame.world, mouseTile.x, mouseTile.y),
|
||||
wireTypeBit,
|
||||
0f
|
||||
)
|
||||
itemID,
|
||||
false
|
||||
)
|
||||
|
||||
return true*/
|
||||
return true
|
||||
}
|
||||
|
||||
fun wireEffectWhenEquipped(typebit: Int, delta: Float) {
|
||||
IngameRenderer.selectedWireBitToDraw = typebit
|
||||
fun wireEffectWhenEquipped(gameItem: GameItem, delta: Float) {
|
||||
val itemID = gameItem.originalID
|
||||
BlocksDrawer.selectedWireRenderClass = WireCodex[itemID].renderClass
|
||||
}
|
||||
|
||||
|
||||
fun wireEffectWhenUnequipped(gameItem: GameItem, delta: Float) {
|
||||
BlocksDrawer.selectedWireRenderClass = ""
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,9 +8,11 @@ import net.torvald.terrarum.gameitem.ItemID
|
||||
import net.torvald.terrarum.itemproperties.Material
|
||||
|
||||
/**
|
||||
* @param originalID something like `basegame:8192` (the id must exist on wires.csv)
|
||||
*
|
||||
* Created by minjaesong on 2019-03-10.
|
||||
*/
|
||||
class WirePieceSignalWire(originalID: ItemID) : GameItem(originalID) {
|
||||
class WirePieceSignalWire(originalID: ItemID, private val atlasID: String, private val sheetX: Int, private val sheetY: Int) : GameItem(originalID) {
|
||||
|
||||
override var dynamicID: ItemID = originalID
|
||||
override val originalName = "ITEM_WIRE"
|
||||
@@ -22,7 +24,7 @@ class WirePieceSignalWire(originalID: ItemID) : GameItem(originalID) {
|
||||
override val isDynamic = false
|
||||
override val material = Material()
|
||||
override val itemImage: TextureRegion?
|
||||
get() = CommonResourcePool.getAsTextureRegionPack("basegame.items16").get(1,9)
|
||||
get() = CommonResourcePool.getAsTextureRegionPack(atlasID).get(sheetX, sheetY)
|
||||
|
||||
init {
|
||||
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
|
||||
@@ -30,10 +32,14 @@ class WirePieceSignalWire(originalID: ItemID) : GameItem(originalID) {
|
||||
}
|
||||
|
||||
override fun startPrimaryUse(delta: Float): Boolean {
|
||||
return BlockBase.wireStartPrimaryUse(this, Wire.BIT_SIGNAL_RED, delta)
|
||||
return BlockBase.wireStartPrimaryUse(this, delta)
|
||||
}
|
||||
|
||||
override fun effectWhenEquipped(delta: Float) {
|
||||
BlockBase.wireEffectWhenEquipped(Wire.BIT_SIGNAL_RED, delta)
|
||||
BlockBase.wireEffectWhenEquipped(this, delta)
|
||||
}
|
||||
|
||||
override fun effectOnUnequip(delta: Float) {
|
||||
BlockBase.wireEffectWhenUnequipped(this, delta)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user