Convert Redstone Controller and Emitter to use FaceDeviceModel
This commit is contained in:
parent
72b8435834
commit
32d87fbd9d
|
@ -119,10 +119,11 @@ abstract class DeviceBlockEntity(type: BlockEntityType<*>): BlockEntity(type),
|
|||
|
||||
open fun findDestination(): Interface? {
|
||||
val sides = (cachedState.block as NetworkComponentBlock).getNetworkConnectedSides(cachedState, world!!, pos)
|
||||
if (sides.size != 1) {
|
||||
throw RuntimeException("DeviceBlockEntity.findDestination must be overridden by devices which have more than 1 network connected side")
|
||||
return when (sides.size) {
|
||||
0 -> null
|
||||
1 -> NetworkUtil.findConnectedInterface(world!!, pos, sides.first())
|
||||
else -> throw RuntimeException("DeviceBlockEntity.findDestination must be overridden by devices which have more than 1 network connected side")
|
||||
}
|
||||
return NetworkUtil.findConnectedInterface(world!!, pos, sides.first())
|
||||
}
|
||||
|
||||
override fun tick() {
|
||||
|
|
|
@ -6,7 +6,8 @@ import net.minecraft.client.render.model.UnbakedModel
|
|||
import net.minecraft.resource.ResourceManager
|
||||
import net.minecraft.util.Identifier
|
||||
import net.shadowfacts.phycon.PhysicalConnectivity
|
||||
import net.shadowfacts.phycon.client.model.InterfaceModel
|
||||
import net.shadowfacts.phycon.client.model.RedstoneControllerModel
|
||||
import net.shadowfacts.phycon.client.model.SimpleFaceDeviceModel
|
||||
|
||||
/**
|
||||
* @author shadowfacts
|
||||
|
@ -14,11 +15,17 @@ import net.shadowfacts.phycon.client.model.InterfaceModel
|
|||
class PhyModelProvider(resourceManager: ResourceManager) : ModelResourceProvider {
|
||||
companion object {
|
||||
val INTERFACE = Identifier(PhysicalConnectivity.MODID, "block/network_interface")
|
||||
val INTERFACE_SIDE = Identifier(PhysicalConnectivity.MODID, "block/interface_side")
|
||||
val REDSTONE_CONTROLLER = Identifier(PhysicalConnectivity.MODID, "block/redstone_controller")
|
||||
val REDSTONE_EMITTER = Identifier(PhysicalConnectivity.MODID, "block/redstone_emitter")
|
||||
val REDSTONE_EMITTER_SIDE = Identifier(PhysicalConnectivity.MODID, "block/redstone_emitter_side")
|
||||
}
|
||||
|
||||
override fun loadModelResource(resourceId: Identifier, context: ModelProviderContext): UnbakedModel? {
|
||||
return when (resourceId) {
|
||||
INTERFACE -> InterfaceModel
|
||||
INTERFACE -> SimpleFaceDeviceModel(INTERFACE_SIDE)
|
||||
REDSTONE_CONTROLLER -> RedstoneControllerModel
|
||||
REDSTONE_EMITTER -> SimpleFaceDeviceModel(REDSTONE_EMITTER_SIDE)
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,22 +15,32 @@ import java.util.function.Function
|
|||
/**
|
||||
* @author shadowfacts
|
||||
*/
|
||||
object InterfaceModel: UnbakedModel, BakedModel {
|
||||
abstract class FaceDeviceModel: UnbakedModel, BakedModel {
|
||||
|
||||
private val interfaceSideID = Identifier(PhysicalConnectivity.MODID, "block/interface_side")
|
||||
private val interfaceCableStraightID = Identifier(PhysicalConnectivity.MODID, "block/interface_cable_straight")
|
||||
private val interfaceCableCornerID = Identifier(PhysicalConnectivity.MODID, "block/interface_cable_corner")
|
||||
private val interfaceCableCorner2ID = Identifier(PhysicalConnectivity.MODID, "block/interface_cable_corner_2")
|
||||
private val interfaceCableCapID = Identifier(PhysicalConnectivity.MODID, "block/interface_cable_cap")
|
||||
private var interfaceSides = Array<BakedModel?>(6) { null }
|
||||
private var interfaceCableStraight = Array<BakedModel?>(6) { null }
|
||||
private var interfaceCableCap = Array<BakedModel?>(6) { null }
|
||||
private var interfaceCableCorner = mutableMapOf<ModelRotation, BakedModel>()
|
||||
private var interfaceCableCorner2 = mutableMapOf<ModelRotation, BakedModel>()
|
||||
|
||||
protected val defaultRotations = listOf(
|
||||
ModelRotation.X0_Y0,
|
||||
ModelRotation.X180_Y0,
|
||||
ModelRotation.X270_Y0,
|
||||
ModelRotation.X90_Y0,
|
||||
ModelRotation.X90_Y90,
|
||||
ModelRotation.X90_Y270,
|
||||
)
|
||||
|
||||
abstract fun getSideModelIDs(): Collection<Identifier>
|
||||
abstract fun bakeSideModels(loader: ModelLoader)
|
||||
abstract fun getSideModel(state: BlockState): BakedModel?
|
||||
|
||||
override fun getModelDependencies(): Collection<Identifier> {
|
||||
return listOf(
|
||||
interfaceSideID,
|
||||
return getSideModelIDs() + listOf(
|
||||
interfaceCableStraightID,
|
||||
interfaceCableCornerID,
|
||||
interfaceCableCorner2ID,
|
||||
|
@ -42,19 +52,13 @@ object InterfaceModel: UnbakedModel, BakedModel {
|
|||
unbakedModelGetter: Function<Identifier, UnbakedModel>,
|
||||
unresolvedTextureReferences: MutableSet<com.mojang.datafixers.util.Pair<String, String>>
|
||||
): Collection<SpriteIdentifier> {
|
||||
return listOf()
|
||||
return modelDependencies.map(unbakedModelGetter::apply).flatMap { it.getTextureDependencies(unbakedModelGetter, unresolvedTextureReferences) }
|
||||
}
|
||||
|
||||
override fun bake(loader: ModelLoader, textureGetter: Function<SpriteIdentifier, Sprite>, rotationContainer: ModelBakeSettings, modelId: Identifier): BakedModel {
|
||||
listOf(
|
||||
ModelRotation.X0_Y0,
|
||||
ModelRotation.X180_Y0,
|
||||
ModelRotation.X270_Y0,
|
||||
ModelRotation.X90_Y0,
|
||||
ModelRotation.X90_Y90,
|
||||
ModelRotation.X90_Y270,
|
||||
).forEachIndexed { i, rot ->
|
||||
interfaceSides[i] = loader.bake(interfaceSideID, rot)
|
||||
bakeSideModels(loader)
|
||||
|
||||
defaultRotations.forEachIndexed { i, rot ->
|
||||
interfaceCableStraight[i] = loader.bake(interfaceCableStraightID, rot)
|
||||
interfaceCableCap[i] = loader.bake(interfaceCableCapID, rot)
|
||||
}
|
||||
|
@ -89,7 +93,7 @@ object InterfaceModel: UnbakedModel, BakedModel {
|
|||
val facing = state[FaceDeviceBlock.FACING]
|
||||
val connection = state[FaceDeviceBlock.CABLE_CONNECTION]
|
||||
|
||||
val sideQuads = interfaceSides[facing.ordinal]?.getQuads(state, face, random) ?: listOf()
|
||||
val sideQuads = getSideModel(state)?.getQuads(state, face, random) ?: listOf()
|
||||
val cableQuads = if (connection.direction == facing.opposite) {
|
||||
interfaceCableStraight[facing.ordinal]?.getQuads(state, face, random) ?: listOf()
|
||||
} else if (connection == FaceCableConnection.NONE) {
|
||||
|
@ -154,9 +158,7 @@ object InterfaceModel: UnbakedModel, BakedModel {
|
|||
|
||||
override fun isBuiltin() = false
|
||||
|
||||
override fun getSprite(): Sprite {
|
||||
return interfaceSides.first()!!.sprite
|
||||
}
|
||||
abstract override fun getSprite(): Sprite
|
||||
|
||||
override fun getTransformation() = null
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package net.shadowfacts.phycon.client.model
|
||||
|
||||
import net.minecraft.block.BlockState
|
||||
import net.minecraft.client.render.model.BakedModel
|
||||
import net.minecraft.client.render.model.ModelLoader
|
||||
import net.minecraft.client.texture.Sprite
|
||||
import net.minecraft.util.Identifier
|
||||
import net.shadowfacts.phycon.PhysicalConnectivity
|
||||
import net.shadowfacts.phycon.block.FaceDeviceBlock
|
||||
import net.shadowfacts.phycon.block.redstone_controller.RedstoneControllerBlock
|
||||
|
||||
/**
|
||||
* @author shadowfacts
|
||||
*/
|
||||
object RedstoneControllerModel: FaceDeviceModel() {
|
||||
|
||||
private val ON = Identifier(PhysicalConnectivity.MODID, "block/redstone_controller_side_on")
|
||||
private val OFF = Identifier(PhysicalConnectivity.MODID, "block/redstone_controller_side_off")
|
||||
private val onModels = Array<BakedModel?>(6) { null }
|
||||
private val offModels = Array<BakedModel?>(6) { null }
|
||||
|
||||
override fun getSideModelIDs(): Collection<Identifier> {
|
||||
return listOf(ON, OFF)
|
||||
}
|
||||
|
||||
override fun bakeSideModels(loader: ModelLoader) {
|
||||
defaultRotations.forEachIndexed { i, rot ->
|
||||
onModels[i] = loader.bake(ON, rot)
|
||||
offModels[i] = loader.bake(OFF, rot)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getSideModel(state: BlockState): BakedModel? {
|
||||
return if (state[RedstoneControllerBlock.POWERED]) {
|
||||
onModels[state[FaceDeviceBlock.FACING].ordinal]
|
||||
} else {
|
||||
offModels[state[FaceDeviceBlock.FACING].ordinal]
|
||||
}
|
||||
}
|
||||
|
||||
override fun getSprite(): Sprite {
|
||||
return offModels.first()!!.sprite
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
package net.shadowfacts.phycon.client.model
|
||||
|
||||
import net.minecraft.block.BlockState
|
||||
import net.minecraft.client.render.model.BakedModel
|
||||
import net.minecraft.client.render.model.ModelLoader
|
||||
import net.minecraft.client.texture.Sprite
|
||||
import net.minecraft.util.Identifier
|
||||
import net.shadowfacts.phycon.block.FaceDeviceBlock
|
||||
|
||||
/**
|
||||
* @author shadowfacts
|
||||
*/
|
||||
class SimpleFaceDeviceModel(
|
||||
private val sideModelID: Identifier,
|
||||
): FaceDeviceModel() {
|
||||
private val sideModels = Array<BakedModel?>(6) { null }
|
||||
|
||||
override fun getSideModelIDs(): Collection<Identifier> {
|
||||
return listOf(sideModelID)
|
||||
}
|
||||
|
||||
override fun bakeSideModels(loader: ModelLoader) {
|
||||
defaultRotations.forEachIndexed { i, rot ->
|
||||
sideModels[i] = loader.bake(sideModelID, rot)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getSideModel(state: BlockState): BakedModel? {
|
||||
return sideModels[state[FaceDeviceBlock.FACING].ordinal]
|
||||
}
|
||||
|
||||
override fun getSprite(): Sprite {
|
||||
return sideModels.first()!!.sprite
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"_comment": "see InterfaceModel",
|
||||
"_comment": "see SimpleFaceDeviceModel",
|
||||
"apply": { "model": "phycon:block/network_interface" }
|
||||
}
|
||||
]
|
||||
|
|
|
@ -1,183 +1,8 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "phycon:block/cable_center" }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "down", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off" }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "up", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 180 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "north", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "south", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "west", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 90, "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "east", "powered": "false" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_off", "x": 90, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "down", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on" }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "up", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 180 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "north", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "south", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "west", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 90, "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "east", "powered": "true" },
|
||||
"apply": { "model": "phycon:block/redstone_controller_side_on", "x": 90, "y": 270 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": { "cable_connection": "up", "facing": "down" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight" }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "down", "facing": "up" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 180 }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "north", "facing": "south" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "south", "facing": "north" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "west", "facing": "east" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 90, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "east", "facing": "west" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 90, "y": 90 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "north", "facing": "down"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner" }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "east", "facing": "down"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "south", "facing": "down"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "y": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "west", "facing": "down"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "y": 270 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "north", "facing": "up"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 180, "y": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "east", "facing": "up"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 180, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "south", "facing": "up"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "west", "facing": "up"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 180, "y": 90 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "down", "facing": "north"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 90, "y": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "up", "facing": "north"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 270 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "west", "facing": "north"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_2" }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "east", "facing": "north"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_2", "x": 180, "y": 180 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "down", "facing": "south"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "up", "facing": "south"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 270, "y": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "west", "facing": "south"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_3" }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "east", "facing": "south"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_3", "x": 180, "y": 180 }
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
"when": {"cable_connection": "down", "facing": "west"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 90, "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "up", "facing": "west"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 270, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "north", "facing": "west"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_3", "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "south", "facing": "west"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_3", "x": 180, "y": 270 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "down", "facing": "east"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 90, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "up", "facing": "east"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 270, "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "north", "facing": "east"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_2", "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "south", "facing": "east"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_2", "x": 180, "y": 270 }
|
||||
"_comment": "see RedstoneControllerModel",
|
||||
"apply": { "model": "phycon:block/redstone_controller" }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,159 +1,7 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "phycon:block/cable_center" }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "down" },
|
||||
"apply": { "model": "phycon:block/redstone_emitter_side" }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "up" },
|
||||
"apply": { "model": "phycon:block/redstone_emitter_side", "x": 180 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "north" },
|
||||
"apply": { "model": "phycon:block/redstone_emitter_side", "x": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "south" },
|
||||
"apply": { "model": "phycon:block/redstone_emitter_side", "x": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "west" },
|
||||
"apply": { "model": "phycon:block/redstone_emitter_side", "x": 90, "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "facing": "east" },
|
||||
"apply": { "model": "phycon:block/redstone_emitter_side", "x": 90, "y": 270 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": { "cable_connection": "up", "facing": "down" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight" }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "down", "facing": "up" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 180 }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "north", "facing": "south" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 90 }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "south", "facing": "north" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "west", "facing": "east" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 90, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": { "cable_connection": "east", "facing": "west" },
|
||||
"apply": { "model": "phycon:block/interface_cable_straight", "x": 90, "y": 90 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "north", "facing": "down"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner" }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "east", "facing": "down"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "south", "facing": "down"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "y": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "west", "facing": "down"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "y": 270 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "north", "facing": "up"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 180, "y": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "east", "facing": "up"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 180, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "south", "facing": "up"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "west", "facing": "up"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 180, "y": 90 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "down", "facing": "north"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 90, "y": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "up", "facing": "north"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 270 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "west", "facing": "north"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_2" }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "east", "facing": "north"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_2", "x": 180, "y": 180 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "down", "facing": "south"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "up", "facing": "south"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 270, "y": 180 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "west", "facing": "south"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_3" }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "east", "facing": "south"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_3", "x": 180, "y": 180 }
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
"when": {"cable_connection": "down", "facing": "west"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 90, "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "up", "facing": "west"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 270, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "north", "facing": "west"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_3", "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "south", "facing": "west"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_3", "x": 180, "y": 270 }
|
||||
},
|
||||
|
||||
{
|
||||
"when": {"cable_connection": "down", "facing": "east"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 90, "y": 270 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "up", "facing": "east"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner", "x": 270, "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "north", "facing": "east"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_2", "y": 90 }
|
||||
},
|
||||
{
|
||||
"when": {"cable_connection": "south", "facing": "east"},
|
||||
"apply": { "model": "phycon:block/interface_cable_corner_2", "x": 180, "y": 270 }
|
||||
"apply": { "model": "phycon:block/redstone_emitter" }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
"cable": "phycon:block/cable_straight",
|
||||
"front": "phycon:block/redstone_controller_front_off",
|
||||
"back": "phycon:block/redstone_controller_back",
|
||||
"side": "phycon:block/redstone_controller_back"
|
||||
"side": "phycon:block/redstone_controller_back",
|
||||
"particle": "#front"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
"cable": "phycon:block/cable_straight",
|
||||
"front": "phycon:block/redstone_controller_front_on",
|
||||
"back": "phycon:block/redstone_controller_back",
|
||||
"side": "phycon:block/redstone_controller_back"
|
||||
"side": "phycon:block/redstone_controller_back",
|
||||
"particle": "#front"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue