Compare commits

...

3 Commits

Author SHA1 Message Date
f7f32a07e9 make pin board woodtyped 2026-03-19 02:19:51 +01:00
44ea336e61 fix sounds 2026-03-19 02:08:38 +01:00
e48580f10a blockinfo 2026-03-19 02:06:07 +01:00
6 changed files with 89 additions and 40 deletions

View File

@@ -1,4 +1,5 @@
using System; using System;
using System.Text;
using Vintagestory.API.Client; using Vintagestory.API.Client;
using Vintagestory.API.Common; using Vintagestory.API.Common;
using Vintagestory.API.Datastructures; using Vintagestory.API.Datastructures;
@@ -110,6 +111,46 @@ public class BlockEntityButterflyPinBoard : BlockEntityDisplay
} }
} }
public override void GetBlockInfo(IPlayer forPlayer, StringBuilder dsc)
{
int highlightedSlot = -1;
BlockSelection? selection = forPlayer?.CurrentBlockSelection;
if (selection?.Position != null && selection.Position.Equals(Pos))
highlightedSlot = GetSlotIndex(selection.HitPosition);
AppendContentsBlockInfo(dsc, highlightedSlot);
}
public bool AppendContentsBlockInfo(StringBuilder builder, int highlightedSlot)
{
int initialLength = builder.Length;
for (int slotIndex = 0; slotIndex < ActiveSlotCount; slotIndex++)
{
ItemStack? stack = inventory[slotIndex].Itemstack;
if (stack == null)
continue;
if (builder.Length > initialLength)
builder.AppendLine();
else if (initialLength > 0)
builder.AppendLine();
string itemName = stack.GetName();
if (slotIndex == highlightedSlot)
{
builder.Append("<font color=\"#00ffff\">");
builder.Append(itemName);
builder.Append("</font>");
continue;
}
builder.Append(itemName);
}
return builder.Length > initialLength;
}
public int GetSlotIndex(Vec3d hitPosition) public int GetSlotIndex(Vec3d hitPosition)
{ {
Vec3d local = ToBaseOrientation(hitPosition); Vec3d local = ToBaseOrientation(hitPosition);

View File

@@ -7,6 +7,7 @@
{ "name": "Lockable" } { "name": "Lockable" }
], ],
"variantgroups": [ "variantgroups": [
{ "code": "wood", "loadFromProperties": "block/wood" },
{ "code": "side", "loadFromProperties": "abstract/horizontalorientation" } { "code": "side", "loadFromProperties": "abstract/horizontalorientation" }
], ],
"attributes": { "attributes": {
@@ -21,14 +22,17 @@
"reinforcable": true "reinforcable": true
}, },
"creativeinventory": { "creativeinventory": {
"general": ["pinboard2x2-south"], "general": ["pinboard2x2-oak-north"],
"decorative": ["pinboard2x2-south"] "decorative": ["pinboard2x2-oak-north"]
},
"textures": {
"wood": { "base": "game:block/wood/debarked/{wood}" }
}, },
"shapebytype": { "shapebytype": {
"*-north": { "base": "dusiulkaspinboard:block/pinboard-2x2", "rotateY": 180 }, "*-*-north": { "base": "dusiulkaspinboard:block/pinboard-2x2", "rotateY": 180 },
"*-east": { "base": "dusiulkaspinboard:block/pinboard-2x2", "rotateY": 90 }, "*-*-east": { "base": "dusiulkaspinboard:block/pinboard-2x2", "rotateY": 90 },
"*-south": { "base": "dusiulkaspinboard:block/pinboard-2x2", "rotateY": 0 }, "*-*-south": { "base": "dusiulkaspinboard:block/pinboard-2x2", "rotateY": 0 },
"*-west": { "base": "dusiulkaspinboard:block/pinboard-2x2", "rotateY": 270 } "*-*-west": { "base": "dusiulkaspinboard:block/pinboard-2x2", "rotateY": 270 }
}, },
"blockmaterial": "Wood", "blockmaterial": "Wood",
"drawtype": "json", "drawtype": "json",
@@ -47,10 +51,10 @@
"y2": 0.9375, "y2": 0.9375,
"z2": 1.0, "z2": 1.0,
"rotateYByType": { "rotateYByType": {
"*-north": 180, "*-*-north": 180,
"*-east": 90, "*-*-east": 90,
"*-south": 0, "*-*-south": 0,
"*-west": 270 "*-*-west": 270
} }
}, },
"selectionbox": { "selectionbox": {
@@ -61,10 +65,10 @@
"y2": 0.9375, "y2": 0.9375,
"z2": 1.0, "z2": 1.0,
"rotateYByType": { "rotateYByType": {
"*-north": 180, "*-*-north": 180,
"*-east": 90, "*-*-east": 90,
"*-south": 0, "*-*-south": 0,
"*-west": 270 "*-*-west": 270
} }
}, },
"combustibleProps": { "combustibleProps": {
@@ -72,9 +76,9 @@
"burnDuration": 20 "burnDuration": 20
}, },
"sounds": { "sounds": {
"place": "block/planks", "place": "game:block/planks",
"break": "block/planks", "break": "game:block/planks",
"hit": "block/planks" "hit": "game:block/planks"
}, },
"materialDensity": 400, "materialDensity": 400,
"guiTransform": { "guiTransform": {

View File

@@ -7,6 +7,7 @@
{ "name": "Lockable" } { "name": "Lockable" }
], ],
"variantgroups": [ "variantgroups": [
{ "code": "wood", "loadFromProperties": "block/wood" },
{ "code": "side", "loadFromProperties": "abstract/horizontalorientation" } { "code": "side", "loadFromProperties": "abstract/horizontalorientation" }
], ],
"attributes": { "attributes": {
@@ -21,14 +22,17 @@
"reinforcable": true "reinforcable": true
}, },
"creativeinventory": { "creativeinventory": {
"general": ["pinboard3x3-south"], "general": ["pinboard3x3-oak-north"],
"decorative": ["pinboard3x3-south"] "decorative": ["pinboard3x3-oak-north"]
},
"textures": {
"wood": { "base": "game:block/wood/debarked/{wood}" }
}, },
"shapebytype": { "shapebytype": {
"*-north": { "base": "dusiulkaspinboard:block/pinboard-3x3", "rotateY": 180 }, "*-*-north": { "base": "dusiulkaspinboard:block/pinboard-3x3", "rotateY": 180 },
"*-east": { "base": "dusiulkaspinboard:block/pinboard-3x3", "rotateY": 90 }, "*-*-east": { "base": "dusiulkaspinboard:block/pinboard-3x3", "rotateY": 90 },
"*-south": { "base": "dusiulkaspinboard:block/pinboard-3x3", "rotateY": 0 }, "*-*-south": { "base": "dusiulkaspinboard:block/pinboard-3x3", "rotateY": 0 },
"*-west": { "base": "dusiulkaspinboard:block/pinboard-3x3", "rotateY": 270 } "*-*-west": { "base": "dusiulkaspinboard:block/pinboard-3x3", "rotateY": 270 }
}, },
"blockmaterial": "Wood", "blockmaterial": "Wood",
"drawtype": "json", "drawtype": "json",
@@ -47,10 +51,10 @@
"y2": 0.9375, "y2": 0.9375,
"z2": 1.0, "z2": 1.0,
"rotateYByType": { "rotateYByType": {
"*-north": 180, "*-*-north": 180,
"*-east": 90, "*-*-east": 90,
"*-south": 0, "*-*-south": 0,
"*-west": 270 "*-*-west": 270
} }
}, },
"selectionbox": { "selectionbox": {
@@ -61,10 +65,10 @@
"y2": 0.9375, "y2": 0.9375,
"z2": 1.0, "z2": 1.0,
"rotateYByType": { "rotateYByType": {
"*-north": 180, "*-*-north": 180,
"*-east": 90, "*-*-east": 90,
"*-south": 0, "*-*-south": 0,
"*-west": 270 "*-*-west": 270
} }
}, },
"combustibleProps": { "combustibleProps": {
@@ -72,9 +76,9 @@
"burnDuration": 25 "burnDuration": 25
}, },
"sounds": { "sounds": {
"place": "block/planks", "place": "game:block/planks",
"break": "block/planks", "break": "game:block/planks",
"hit": "block/planks" "hit": "game:block/planks"
}, },
"materialDensity": 400, "materialDensity": 400,
"guiTransform": { "guiTransform": {

View File

@@ -1,4 +1,4 @@
{ {
"block-pinboard2x2-*": "Butterfly Pin Board (2x2)", "block-pinboard2x2-*-*": "Butterfly Pin Board (2x2)",
"block-pinboard3x3-*": "Butterfly Pin Board (3x3)" "block-pinboard3x3-*-*": "Butterfly Pin Board (3x3)"
} }

View File

@@ -1,7 +1,7 @@
{ {
"ingredientPattern": "_S_\tSBS\t_S_", "ingredientPattern": "_S_\tSBS\t_S_",
"ingredients": { "ingredients": {
"S": { "type": "item", "code": "game:stick" }, "S": { "type": "item", "code": "game:plank-*", "name": "wood" },
"B": { "B": {
"type": "item", "type": "item",
"code": "game:*-butterflypin-*" "code": "game:*-butterflypin-*"
@@ -9,5 +9,5 @@
}, },
"width": 3, "width": 3,
"height": 3, "height": 3,
"output": { "type": "block", "code": "pinboard2x2-north" } "output": { "type": "block", "code": "pinboard2x2-{wood}-north" }
} }

View File

@@ -1,7 +1,7 @@
{ {
"ingredientPattern": "S_S\t_B_\tS_S", "ingredientPattern": "S_S\t_B_\tS_S",
"ingredients": { "ingredients": {
"S": { "type": "item", "code": "game:stick" }, "S": { "type": "item", "code": "game:plank-*", "name": "wood" },
"B": { "B": {
"type": "item", "type": "item",
"code": "game:*-butterflypin-*" "code": "game:*-butterflypin-*"
@@ -9,5 +9,5 @@
}, },
"width": 3, "width": 3,
"height": 3, "height": 3,
"output": { "type": "block", "code": "pinboard3x3-north" } "output": { "type": "block", "code": "pinboard3x3-{wood}-north" }
} }