• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

First Machine Age's Mods (Combined repo.)


Commit MetaInfo

Revisióna6c48519f7f1fe961c94dd5e22025468cf8fe8ba (tree)
Tiempo2020-10-30 10:13:48
Autormelchior <melchior@user...>
Commitermelchior

Log Message

W.I.P. False wall, Boltable Door changes

Cambiar Resumen

Diferencia incremental

--- a/Assorted/Assorted.csproj
+++ b/Assorted/Assorted.csproj
@@ -77,6 +77,7 @@
7777 <Compile Include="BlockBehaviors\BlockBehaviorVerticalOrientation.cs" />
7878 <Compile Include="BlockClasses\CollapsingBlock.cs" />
7979 <Compile Include="BlockEntityClasses\CollapsingBlockEntity.cs" />
80+ <Compile Include="BlockClasses\FalseWall.cs" />
8081 </ItemGroup>
8182 <ItemGroup>
8283 <Folder Include="BlockClasses\" />
@@ -171,6 +172,15 @@
171172 <None Include="assets\defensive\recipes\grid\false_floor.json">
172173 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
173174 </None>
175+ <None Include="assets\defensive\shapes\block\stone\false_wall_lower.json">
176+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
177+ </None>
178+ <None Include="assets\defensive\blocktypes\stone\false_wall.json">
179+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
180+ </None>
181+ <None Include="assets\defensive\shapes\block\stone\false_wall_upper.json">
182+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
183+ </None>
174184 </ItemGroup>
175185 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
176186 </Project>
\ No newline at end of file
--- a/Assorted/AssortedModLoader.cs
+++ b/Assorted/AssortedModLoader.cs
@@ -62,6 +62,7 @@ namespace FirstMachineAge
6262 private void RegisterBlockClasses( )
6363 {
6464 CoreAPI.RegisterBlockClass("BoltableDoor", typeof(BoltableDoor));
65+ CoreAPI.RegisterBlockClass("FalseWall", typeof(FalseWall));
6566 CoreAPI.RegisterBlockEntityClass(BoltableDoorEntityNameKey, typeof(BoltableDoorBlockEntity));
6667
6768 CoreAPI.RegisterBlockClass("CollapsingBlock", typeof(CollapsingBlock));
--- a/Assorted/BlockClasses/BoltableDoor.cs
+++ b/Assorted/BlockClasses/BoltableDoor.cs
@@ -12,6 +12,8 @@ namespace FirstMachineAge
1212 {
1313 public class BoltableDoor : BlockBaseDoor
1414 {
15+ private const string HideTooltipKey = @"HideTooltip";//Only, When closed!
16+
1517 public BoltableDoor( )
1618 {
1719
@@ -155,7 +157,12 @@ namespace FirstMachineAge
155157 }
156158
157159 public bool IsOpen {
158- get { return this.Variant["state"] == "opened"; }//state: ["closed", "opened"]
160+ get { return IsOpened( ); }//state: ["closed", "opened"]
161+ }
162+
163+ public bool HideTooltip {
164+ get
165+ { return this.Attributes[HideTooltipKey].AsBool( );}
159166 }
160167
161168 public override bool IsOpened()
--- /dev/null
+++ b/Assorted/BlockClasses/FalseWall.cs
@@ -0,0 +1,46 @@
1+using System;
2+
3+using Vintagestory.API.Common;
4+using Vintagestory.API.Config;
5+using Vintagestory.API.MathTools;
6+
7+namespace FirstMachineAge
8+{
9+ public class FalseWall : BoltableDoor
10+ {
11+ public FalseWall( )
12+ {
13+
14+ }
15+
16+ public override string GetPlacedBlockName(IWorldAccessor world, BlockPos pos)
17+ {
18+ if (this.IsOpen) {
19+ if (!String.IsNullOrEmpty(this.Material)) {
20+ return Lang.Get("FMA:block-false_wall-open");
21+ }
22+ }
23+ else {
24+ if (!String.IsNullOrEmpty(this.Material)) {
25+ return Lang.Get(GlobalConstants.DefaultDomain + $":block-stonebricks-{this.Material}");
26+ }
27+ }
28+
29+ return @"Error?";
30+ }
31+
32+
33+ private string Material {
34+ /*
35+ { code: "cover", states: [ "sand","gravel" ] },
36+ { code: "material", loadFromProperties: "block/rock", combine: "SelectiveMultiply", onVariant: "cover" },
37+ { code: "alt_cover", states: [ "soil" ], combine: "Add" },
38+ */
39+ get
40+ {
41+ return this.Variant[@"material"];
42+ }
43+ }
44+ }
45+}
46+
--- a/Assorted/BlockEntityClasses/BoltableDoorBlockEntity.cs
+++ b/Assorted/BlockEntityClasses/BoltableDoorBlockEntity.cs
@@ -22,7 +22,9 @@ namespace FirstMachineAge
2222
2323 }
2424
25-
25+ public BoltableDoor DoorBlock {
26+ get { return this.Block as BoltableDoor; }
27+ }
2628
2729 public override void FromTreeAtributes(ITreeAttribute tree, IWorldAccessor worldAccessForResolve)
2830 {
@@ -41,8 +43,15 @@ namespace FirstMachineAge
4143 public override void GetBlockInfo(IPlayer forPlayer, StringBuilder dsc)
4244 {
4345 base.GetBlockInfo(forPlayer, dsc);
44- BoltableDoorBlockEntity realEntity = (this.Block as BoltableDoor).Entity(this.Pos.Copy( ));
45- if (realEntity != null) dsc.AppendLine($"Bolted: {(realEntity.Bolted?"<font color='red'>Yes</font>":"No")}");
46+
47+ if (DoorBlock.IsOpen == false )
48+ {
49+ if (forPlayer.CurrentBlockSelection.Face != DoorBlock.GetDirection( ) )
50+ {
51+ //BoltableDoorBlockEntity realEntity = DoorBlock.Entity(this.Pos.Copy( ));
52+ dsc.AppendLine($"Bolted: {(this.Bolted ? "<font color='red'>Yes</font>" : "No")}");
53+ }
54+ }
4655 }
4756 }
4857 }
--- /dev/null
+++ b/Assorted/assets/defensive/blocktypes/stone/false_wall.json
@@ -0,0 +1,126 @@
1+{
2+ code: "false_wall",
3+ class: "FalseWall",
4+ renderpass: "OpaqueNoCull",
5+ entityClassByType: {
6+ "*-down-*": null,
7+ "*-up-*": "BoltableDoorEntity",
8+ },
9+ heldTpIdleAnimation: "holdunderarm",
10+ attributes: {
11+ handbook: {
12+ groupBy: ["false_wall-*"]
13+ },
14+ },
15+ variantgroups: [
16+ { loadFromProperties: "abstract/horizontalorientation" },
17+ { code: "part", states: ["down", "up"] },
18+ { code: "state", states: ["closed", "opened"] },
19+ { code: "material", loadFromProperties: "block/rock" },
20+ ],
21+ creativeinventory: { "general": ["false_wall-north-down-closed-*"], "decorative": ["false_wall-north-down-closed-*"] },
22+ textures: {
23+ "stone": { base: "game:block/stone/brick/{material}1" },
24+ "wood": { base: "game:block/wood/planks/oak1" },
25+ },
26+ shapeinventory: { base: "block/wood/heavydoor_inv" },
27+ shapebytype: {
28+ "*-north-down-closed-*": { base: "block/stone/false_wall_lower", rotateY: 0 },
29+ "*-north-up-closed-*": { base: "block/stone/false_wall_upper", rotateY: 0 },
30+ "*-north-down-opened-*": { base: "block/stone/false_wall_lower" , rotateY: -90, offsetX: -0.80 },
31+ "*-north-up-opened-*": { base: "block/stone/false_wall_upper", rotateY: -90, offsetX: -0.80 },
32+
33+ "*-east-down-closed-*": { base:"block/stone/false_wall_lower", rotateY: 90 },
34+ "*-east-up-closed-*": { base: "block/stone/false_wall_upper", rotateY: 90 },
35+ "*-east-down-opened-*": { base: "block/stone/false_wall_lower", rotateY: 180, offsetX: -0.80 },
36+ "*-east-up-opened-*": { base: "block/stone/false_wall_upper", rotateY: 180, offsetX: -0.80 },
37+
38+ "*-south-down-closed-*": { base: "block/stone/false_wall_lower", rotateY: 180 },
39+ "*-south-up-closed-*": { base: "block/stone/false_wall_upper", rotateY:180 },
40+ "*-south-down-opened-*": { base: "block/stone/false_wall_lower", rotateY: 270, offsetX: -0.80 },
41+ "*-south-up-opened-*": { base: "block/stone/false_wall_upper", rotateY: 270, offsetX: -0.80 },
42+
43+ "*-west-down-closed-*": { base: "block/stone/false_wall_lower", rotateY: 270 },
44+ "*-west-up-closed-*": { base: "block/stone/false_wall_upper", rotateY: 270 },
45+ "*-west-down-opened-*": { base: "block/stone/false_wall_lower", rotateY: 0, offsetX: -0.80 },
46+ "*-west-up-opened-*": { base: "block/stone/false_wall_upper", rotateY: 0, offsetX: -0.80 },
47+ },
48+ blockmaterial: "Stone",
49+ replaceable: 500,
50+ resistance: 4.0,
51+ lightAbsorption: 25,
52+ sidesolid: {
53+ all: false
54+ },
55+ sideopaque: {
56+ all: false
57+ },
58+ guiTransform: {
59+ origin: { x: 0.5, y: 1, z: 0.5 },
60+ scale: 0.75
61+ },
62+ fpHandTransform: {
63+ translation: { x: -0.27, y: 0.18, z: 0.72 },
64+ rotation: { x: 120, y: 42, z: 0 },
65+ scale: 1.11
66+ },
67+ tpHandTransform: {
68+ translation: { x: -1.1, y: -0.7, z: -0.6 },
69+ rotation: { x: 14, y: 0, z: 59 },
70+ scale: 0.6
71+ },
72+ groundTransform: {
73+ rotation: { x: -90, y: 0, z: 0 },
74+ origin: { x: 0.5, y: 0, z: 0.44 },
75+ scale: 2.15
76+ },
77+ selectionboxesByType: {
78+ "*-north-down-closed-*": [
79+ { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.25 },
80+ ],
81+ "*-north-up-closed-*": [
82+ { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.25 },
83+ { x1: 0.4, y1: 0.5, z1: 0, x2: 0.9, y2: 0.65, z2: 0.25 }
84+ ],
85+ "*-west-down-closed-*": [
86+ { x1: 0, y1: 0, z1: 0.875, x2: 1, y2: 1, z2: 1 , rotateY: 90},
87+ ],
88+ "*-west-up-closed-*": [
89+ { x1: 0, y1: 0, z1: 0.875, x2: 1, y2: 1, z2: 1 , rotateY: 90},
90+ { x1: 0.05, y1: 0.225, z1: 0.67, x2: 0.4125, y2: 0.55, z2: 0.875 , rotateY: 90}
91+ ],
92+ "*-east-down-closed-*": [
93+ { x1: 0, y1: 0, z1: 0.875, x2: 1, y2: 1, z2: 1 , rotateY: 270},
94+ ],
95+ "*-east-up-closed-*": [
96+ { x1: 0, y1: 0, z1: 0.875, x2: 1, y2: 1, z2: 1 , rotateY: 270},
97+ { x1: 0.05, y1: 0.225, z1: 0.67, x2: 0.4125, y2: 0.55, z2: 0.875, rotateY: 270}
98+ ],
99+ "*-south-down-closed-*": [
100+ { x1: 0, y1: 0, z1: 0.875, x2: 1, y2: 1, z2: 1 , rotateY: 180},
101+ ],
102+ "*-south-up-closed-*": [
103+ { x1: 0, y1: 0, z1: 0.875, x2: 1, y2: 1, z2: 1 , rotateY: 180},
104+ { x1: 0.05, y1: 0.225, z1: 0.67, x2: 0.4125, y2: 0.55, z2: 0.875 , rotateY: 180}
105+ ],
106+ },
107+ collisionbox: { x1: 0, y1: 0, z1: 0.875, x2: 1, y2: 1, z2: 1,
108+ rotateYByType: {
109+ "*-north-*-opened-*": -90,
110+ "*-north-*-closed-*": 0,
111+ "*-west-*-opened-*": 0,
112+ "*-west-*-closed-*": 270,
113+ "*-east-*-opened-*": 180,
114+ "*-east-*-closed-*": 90,
115+ "*-south-*-opened-*": 270,
116+ "*-south-*-closed-*": 180,
117+ }
118+ },
119+ sounds: {
120+ "place": "game:block/planks",
121+ "hit": "game:block/planks",
122+ "break": "game:block/planks",
123+ "walk": "game:walk/wood"
124+ },
125+ materialDensity: 5000
126+}
--- /dev/null
+++ b/Assorted/assets/defensive/shapes/block/stone/false_wall_lower.json
@@ -0,0 +1,73 @@
1+{
2+ "editor": {
3+ "allAngles": false,
4+ "entityTextureMode": false
5+ },
6+ "textureWidth": 16,
7+ "textureHeight": 16,
8+ "textureSizes": {
9+ },
10+ "textures": {
11+ "stone": "game:block/stone/brick/granite",
12+ "wood": "game:block/wood/planks/wood"
13+ },
14+ "elements": [
15+ {
16+ "name": "FalseFace",
17+ "from": [ 0.0, 0.0, 0.0 ],
18+ "to": [ 16.0, 16.0, 1.0 ],
19+ "faces": {
20+ "north": { "texture": "#stone", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },
21+ "east": { "texture": "#stone", "uv": [ 0.5, 0.0, 1.5, 16.0 ] },
22+ "south": { "texture": "#stone", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },
23+ "west": { "texture": "#stone", "uv": [ 14.5, 0.0, 15.5, 16.0 ] },
24+ "up": { "texture": "#stone", "uv": [ 0.0, 3.5, 16.0, 4.5 ] },
25+ "down": { "texture": "#stone", "uv": [ 0.0, 10.5, 16.0, 11.5 ] }
26+ },
27+ "children": [
28+ {
29+ "name": "WoodSupport1",
30+ "from": [ 0.25, 1.0, 1.0 ],
31+ "to": [ 15.75, 3.0, 2.0 ],
32+ "rotationOrigin": [ 0.0, 1.0, 1.0 ],
33+ "faces": {
34+ "north": { "texture": "#wood", "uv": [ 0.0, 1.0, 15.5, 3.0 ] },
35+ "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
36+ "south": { "texture": "#wood", "uv": [ 0.0, 2.0, 15.5, 4.0 ] },
37+ "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
38+ "up": { "texture": "#wood", "uv": [ 0.0, 13.5, 15.5, 14.5 ] },
39+ "down": { "texture": "#wood", "uv": [ 0.0, 8.0, 15.5, 9.0 ] }
40+ }
41+ },
42+ {
43+ "name": "WoodSupport2",
44+ "from": [ 0.25, 13.0, 1.0 ],
45+ "to": [ 15.75, 15.0, 2.0 ],
46+ "rotationOrigin": [ 0.0, 0.0, 1.0 ],
47+ "faces": {
48+ "north": { "texture": "#wood", "uv": [ 0.0, 1.0, 15.5, 3.0 ] },
49+ "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
50+ "south": { "texture": "#wood", "uv": [ 0.0, 1.0, 15.5, 3.0 ] },
51+ "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
52+ "up": { "texture": "#wood", "uv": [ 0.0, 2.5, 15.5, 3.5 ] },
53+ "down": { "texture": "#wood", "uv": [ 0.0, 3.5, 15.5, 4.5 ] }
54+ }
55+ },
56+ {
57+ "name": "WoodSupport3",
58+ "from": [ 4.5, 4.0, 2.0 ],
59+ "to": [ 20.5, 6.0, 3.0 ],
60+ "rotationOrigin": [ 6.0, 0.0, 0.0 ],
61+ "rotationZ": 50.0,
62+ "faces": {
63+ "north": { "texture": "#wood", "uv": [ 0.0, 7.5, 16.0, 9.5 ] },
64+ "east": { "texture": "#wood", "uv": [ 1.0, 1.5, 2.0, 3.5 ] },
65+ "south": { "texture": "#wood", "uv": [ 0.0, 7.0, 16.0, 9.0 ] },
66+ "west": { "texture": "#wood", "uv": [ 1.0, 1.5, 2.0, 3.5 ] },
67+ "up": { "texture": "#wood", "uv": [ 0.0, 2.5, 16.0, 3.5 ] },
68+ "down": { "texture": "#wood", "uv": [ 0.0, 12.0, 16.0, 13.0 ] }
69+ }
70+ }
71+ ]
72+ }
73+ ]}
\ No newline at end of file
--- /dev/null
+++ b/Assorted/assets/defensive/shapes/block/stone/false_wall_upper.json
@@ -0,0 +1,131 @@
1+{
2+ "editor": {
3+ "allAngles": false,
4+ "entityTextureMode": false
5+ },
6+ "textureWidth": 16,
7+ "textureHeight": 16,
8+ "textureSizes": {
9+ },
10+ "textures": {
11+ "stone": "game:block/stone/brick/granite",
12+ "wood": "game:block/wood/planks/wood"
13+ },
14+ "elements": [
15+ {
16+ "name": "FalseFace",
17+ "from": [ 0.0, 0.0, 0.0 ],
18+ "to": [ 16.0, 16.0, 1.0 ],
19+ "faces": {
20+ "north": { "texture": "#stone", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },
21+ "east": { "texture": "#stone", "uv": [ 0.5, 0.0, 1.5, 16.0 ] },
22+ "south": { "texture": "#stone", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },
23+ "west": { "texture": "#stone", "uv": [ 14.5, 0.0, 15.5, 16.0 ] },
24+ "up": { "texture": "#stone", "uv": [ 0.0, 3.5, 16.0, 4.5 ] },
25+ "down": { "texture": "#stone", "uv": [ 0.0, 10.5, 16.0, 11.5 ] }
26+ },
27+ "children": [
28+ {
29+ "name": "WoodSupport1",
30+ "from": [ 0.25, 1.0, 1.0 ],
31+ "to": [ 15.75, 3.0, 2.0 ],
32+ "rotationOrigin": [ 0.0, 1.0, 1.0 ],
33+ "faces": {
34+ "north": { "texture": "#wood", "uv": [ 0.0, 1.0, 15.5, 3.0 ] },
35+ "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
36+ "south": { "texture": "#wood", "uv": [ 0.0, 2.0, 15.5, 4.0 ] },
37+ "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
38+ "up": { "texture": "#wood", "uv": [ 0.0, 13.5, 15.5, 14.5 ] },
39+ "down": { "texture": "#wood", "uv": [ 0.0, 8.0, 15.5, 9.0 ] }
40+ }
41+ },
42+ {
43+ "name": "WoodSupport2",
44+ "from": [ 0.25, 13.0, 1.0 ],
45+ "to": [ 15.75, 15.0, 2.0 ],
46+ "rotationOrigin": [ 0.0, 0.0, 1.0 ],
47+ "faces": {
48+ "north": { "texture": "#wood", "uv": [ 0.0, 1.0, 15.5, 3.0 ] },
49+ "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
50+ "south": { "texture": "#wood", "uv": [ 0.0, 1.0, 15.5, 3.0 ] },
51+ "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
52+ "up": { "texture": "#wood", "uv": [ 0.0, 2.5, 15.5, 3.5 ] },
53+ "down": { "texture": "#wood", "uv": [ 0.0, 3.5, 15.5, 4.5 ] }
54+ }
55+ },
56+ {
57+ "name": "WoodSupport3",
58+ "from": [ 10.0, 1.0, 2.0 ],
59+ "to": [ 12.0, 15.0, 3.0 ],
60+ "rotationOrigin": [ 3.0, 0.0, 0.0 ],
61+ "faces": {
62+ "north": { "texture": "#wood", "uv": [ 0.0, 7.5, 2.0, 21.5 ] },
63+ "east": { "texture": "#wood", "uv": [ 1.0, 1.5, 2.0, 15.5 ] },
64+ "south": { "texture": "#wood", "uv": [ 0.0, 7.0, 2.0, 21.0 ] },
65+ "west": { "texture": "#wood", "uv": [ 1.0, 1.5, 2.0, 15.5 ] },
66+ "up": { "texture": "#wood", "uv": [ 0.0, 2.5, 2.0, 3.5 ] },
67+ "down": { "texture": "#wood", "uv": [ 0.0, 12.0, 2.0, 13.0 ] }
68+ },
69+ "children": [
70+ {
71+ "name": "Bolt1",
72+ "from": [ -2.75, 7.05, -0.95 ],
73+ "to": [ 6.35, 9.05, -0.1 ],
74+ "rotationOrigin": [ 0.0, 7.0, 0.0 ],
75+ "faces": {
76+ "north": { "texture": "#null", "uv": [ 0.0, 0.0, 9.0, 2.0 ] },
77+ "east": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 2.0 ] },
78+ "south": { "texture": "#null", "uv": [ 0.0, 0.0, 9.0, 2.0 ] },
79+ "west": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 2.0 ] },
80+ "up": { "texture": "#null", "uv": [ 0.0, 0.0, 9.0, 0.5 ] },
81+ "down": { "texture": "#null", "uv": [ 0.0, 0.0, 9.0, 0.5 ] }
82+ },
83+ "children": [
84+ {
85+ "name": "Bolt2",
86+ "from": [ 1.5, 0.5, 0.75 ],
87+ "to": [ 2.35, 1.35, 3.75 ],
88+ "faces": {
89+ "north": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 0.5 ] },
90+ "east": { "texture": "#null", "uv": [ 0.0, 0.0, 3.0, 0.5 ] },
91+ "south": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 0.5 ] },
92+ "west": { "texture": "#null", "uv": [ 0.0, 0.0, 3.0, 0.5 ] },
93+ "up": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 3.0 ] },
94+ "down": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 3.0 ] }
95+ }
96+ },
97+ {
98+ "name": "Bolt3",
99+ "from": [ 5.5, 0.5, 0.75 ],
100+ "to": [ 6.35, 1.35, 3.75 ],
101+ "rotationOrigin": [ 4.0, 0.0, -1.0 ],
102+ "faces": {
103+ "north": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 0.5 ] },
104+ "east": { "texture": "#null", "uv": [ 0.0, 0.0, 3.0, 0.5 ] },
105+ "south": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 0.5 ] },
106+ "west": { "texture": "#null", "uv": [ 0.0, 0.0, 3.0, 0.5 ] },
107+ "up": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 3.0 ] },
108+ "down": { "texture": "#null", "uv": [ 0.0, 0.0, 0.5, 3.0 ] }
109+ }
110+ }
111+ ]
112+ }
113+ ]
114+ },
115+ {
116+ "name": "WoodSupport4",
117+ "from": [ 0.25, 6.0, 1.0 ],
118+ "to": [ 15.75, 8.0, 2.0 ],
119+ "rotationOrigin": [ 0.0, 6.0, 1.0 ],
120+ "faces": {
121+ "north": { "texture": "#wood", "uv": [ 0.0, 1.0, 15.5, 3.0 ] },
122+ "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
123+ "south": { "texture": "#wood", "uv": [ 0.0, 2.0, 15.5, 4.0 ] },
124+ "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 2.0 ] },
125+ "up": { "texture": "#wood", "uv": [ 0.0, 13.5, 15.5, 14.5 ] },
126+ "down": { "texture": "#wood", "uv": [ 0.0, 8.0, 15.5, 9.0 ] }
127+ }
128+ }
129+ ]
130+ }
131+ ]}
\ No newline at end of file