mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-15 10:21:45 -04:00
Made texture picker work again... somewhat (not side-aware, but hey).
This commit is contained in:
parent
68fc33bd41
commit
eb534f828a
@ -30,10 +30,7 @@ object PrintModel extends SmartBlockModelBase with ISmartItemModel {
|
||||
|
||||
for (shape <- if (print.state) print.data.stateOn else print.data.stateOff) {
|
||||
val bounds = shape.bounds.rotateTowards(print.facing)
|
||||
var texture = Textures.getSprite(shape.texture)
|
||||
if (texture.getIconName == "missingno") {
|
||||
texture = Textures.getSprite("minecraft:blocks/" + shape.texture)
|
||||
}
|
||||
val texture = resolveTexture(shape.texture)
|
||||
faces ++= bakeQuads(makeBox(bounds.min, bounds.max), Array.fill(6)(texture), shape.tint.getOrElse(NoTint))
|
||||
}
|
||||
|
||||
@ -51,10 +48,7 @@ object PrintModel extends SmartBlockModelBase with ISmartItemModel {
|
||||
Textures.Block.bind()
|
||||
for (shape <- data.stateOff) {
|
||||
val bounds = shape.bounds
|
||||
var texture = Textures.getSprite(shape.texture)
|
||||
if (texture.getIconName == "missingno") {
|
||||
texture = Textures.getSprite("minecraft:blocks/" + shape.texture)
|
||||
}
|
||||
val texture = resolveTexture(shape.texture)
|
||||
faces ++= bakeQuads(makeBox(bounds.min, bounds.max), Array.fill(6)(texture), shape.tint.getOrElse(NoTint))
|
||||
}
|
||||
|
||||
@ -62,4 +56,10 @@ object PrintModel extends SmartBlockModelBase with ISmartItemModel {
|
||||
}
|
||||
}
|
||||
|
||||
private def resolveTexture(name: String) = {
|
||||
val texture = Textures.getSprite(name)
|
||||
if (texture.getIconName == "missingno") Textures.getSprite("minecraft:blocks/" + name)
|
||||
else texture
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4,21 +4,22 @@ import li.cil.oc.Localization
|
||||
import li.cil.oc.util.BlockPosition
|
||||
import li.cil.oc.util.ExtendedWorld._
|
||||
import net.minecraft.block.Block
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.util.EnumFacing
|
||||
import net.minecraft.util.ResourceLocation
|
||||
|
||||
class TexturePicker(val parent: Delegator) extends Delegate {
|
||||
override def onItemUse(stack: ItemStack, player: EntityPlayer, position: BlockPosition, side: EnumFacing, hitX: Float, hitY: Float, hitZ: Float): Boolean = {
|
||||
player.getEntityWorld.getBlock(position) match {
|
||||
case block: Block =>
|
||||
// TODO Any way to do this in 1.8 at all?
|
||||
// if (player.getEntityWorld.isRemote) {
|
||||
// val icon = block.getIcon(player.getEntityWorld, position.x, position.y, position.z, side)
|
||||
// if (icon != null) {
|
||||
// player.addChatMessage(Localization.Chat.TextureName(icon.getIconName))
|
||||
// }
|
||||
// }
|
||||
if (player.getEntityWorld.isRemote) {
|
||||
val model = Minecraft.getMinecraft.getBlockRendererDispatcher.getModelFromBlockState(player.getEntityWorld.getBlockState(position.toBlockPos), player.getEntityWorld, position.toBlockPos)
|
||||
if (model != null && model.getTexture != null && model.getTexture.getIconName != null) {
|
||||
player.addChatMessage(Localization.Chat.TextureName(model.getTexture.getIconName))
|
||||
}
|
||||
}
|
||||
true
|
||||
case _ => super.onItemUse(stack, player, position, side, hitX, hitY, hitZ)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user