Skip to content

Commit 29166af

Browse files
authored
Add dark oak soffits and refine clay fascias (#9)
Runs the grain along the fascia and adds an optional dark oak lining underneath the eaves.
1 parent dcf9892 commit 29166af

26 files changed

Lines changed: 441 additions & 47 deletions

‎CHANGELOG.txt‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
0.1.12.110021 - Alpha
2+
3+
I've tidied up the eaves on the Rye cottages. The grain now runs along the fascia
4+
board, and you can see its timber edge from below.
5+
6+
- Fit a dark oak soffit underneath a clay fascia to line the eaves. Stack two dark
7+
oak slabs vertically to make four soffits.
8+
- You can add or remove the soffit with the gutter in place. Lined and exposed
9+
sections can share the same run of guttering.
10+
111
0.1.11.110021 - Alpha
212

313
I've added iron guttering and downpipes to the Rye kit.

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ All six vanilla wood types are available. Cob comes in blocks, slabs and stairs,
1919
thatch, slate and clay tile roofs have automatic corners and separate ridge caps.
2020
Clay tiles also come as full and half-depth hanging panels for gables and upper walls.
2121
Finish clay roofs with timber fascia boards at the eaves and matching trim along the gable and ridge.
22+
Fit a dark oak soffit underneath to line the eaves.
2223
Fit iron guttering to the fascia and run a downpipe under the overhang. Connected outlets and pipes drip in the rain.
2324

2425
Leaded windows bring some light into the houses. Choose diamond or rectangular leading,

‎docs/BUILDING-GUIDE.md‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
Permanent building components for the Iron Age series, starting on Minecraft 1.10.2 Forge.
44
Architecture runs independently of Iron Age Furniture.
55

6-
Version 0.1.11.110021 contains raw and limewashed cob blocks,
6+
Version 0.1.12.110021 contains raw and limewashed cob blocks,
77
stairs and slabs; modular wattle-and-daub walls in all six vanilla woods; and smooth
88
thatch, slate and clay tile roofs with automatic corners and separate ridge caps, plus jettied-storey walls,
9-
timber floors, support brackets, hanging clay tiles and openable leaded windows. There are 525 visible
9+
timber floors, support brackets, hanging clay tiles and openable leaded windows. There are 526 visible
1010
variants including the wood and finish choices. Architecture remains standalone.
1111

1212
## Wattle and daub
@@ -75,6 +75,11 @@ Use full hanging tiles to fill the stepped gable beneath a clay roof. Thin hangi
7575
tiles share the half-block plane with straight thin timber panels and thin leaded windows.
7676
Place against one of these pieces to inherit its occupied half. Sneak to choose the half manually.
7777

78+
Two dark oak slabs stacked vertically make four soffits. Right-click the underside of
79+
a clay fascia with a soffit to line that section of the eaves. Sneak and right-click
80+
underneath with empty hands to take the lining back off. You can fit a soffit before
81+
or after the gutter. The fascia still takes the same gutter or outlet either way.
82+
7883
## Guttering
7984

8085
Use a gutter or outlet on the outside face of a bare clay fascia. Level sections join
@@ -240,4 +245,4 @@ Thatch and timber-bearing walls burn; plain daub, cob and slate do not. There is
240245

241246
See [development instructions](DEVELOPMENT.md) for builds, Eclipse and disposable runtime checks.
242247
This is an early alpha. Automated checks and manual visual/gameplay review are recorded separately.
243-
The Rye Downpipe Shoe Preview shows both pipe offsets and the shoe on a cobbled street.
248+
The Rye Eaves Preview shows lined and exposed eaves on neighbouring cottages.

‎docs/DEVELOPMENT.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ ends, both offsets and the rain path. The legacy-fascia mode opens a copy of the
190190
preview and verifies the original bare fascias. Use a fresh runtime root for each candidate.
191191

192192
The optional client probe requires iaa.probe=true, iaa.clientProbe=true and iaa.keepRunning=true.
193-
It creates its own Rye Downpipe Shoe Preview, checks mesh and material variants and both
193+
It creates its own Rye Eaves Preview, checks mesh and material variants and both
194194
creative tabs, captures dry and rain views of the cottage row, then shuts down.
195195
Every visible item must also provide a translated crafting hint without tooltip errors.
196196
The client script's PreviewName argument selects a separate save without replacing an earlier preview.

‎gradle.properties‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ org.gradle.parallel=false
66
net.minecraftforge.gradle.merge-source-sets=false
77
minecraft_version=1.10.2
88
forge_version=12.18.3.2511
9-
mod_version=0.1.11.110021
9+
mod_version=0.1.12.110021
1010
mod_group=zone.moddev.mc
1111
mod_id=ironagearchitecture
1212
mod_name=Iron Age Architecture

‎scripts/generate-resources.cjs‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,14 @@ for (const [part,label] of [['fascia','Fascia'],['verge','Verge'],['ridge_end','
146146
variants[`facing=${facing},right=${right}`] = {model:`${ns}:${mesh}`};
147147
}
148148
state(name,variants); item(name,mesh);
149+
if (part === 'fascia') state(name + '_lined',variants);
149150
lang[`tile.${ns}.${name}.name`] = `Clay Tile ${label}`;
150151
}
152+
model('dark_oak_soffit',{parent:'minecraft:block/block',textures:{wood:'minecraft:blocks/planks_big_oak',particle:'minecraft:blocks/planks_big_oak'},
153+
elements:[{from:[0,7,1],to:[16,8.25,15],faces:Object.fromEntries(
154+
['down','up','north','south','west','east'].map(face=>[face,{texture:'#wood'}]))}]});
155+
item('dark_oak_soffit','dark_oak_soffit');
156+
lang[`item.${ns}.dark_oak_soffit.name`] = 'Dark Oak Soffit';
151157
model('drain_mesh',{parent:'minecraft:block/block',textures:{particle:'minecraft:blocks/iron_block'}});
152158
for (const [name,label] of [['iron_gutter','Iron Gutter'],['iron_gutter_outlet','Iron Gutter Outlet']]) {
153159
item(name,'drain_mesh');
@@ -191,6 +197,8 @@ for(const [w,wood] of woods.entries()) for(const finish of [0,1]) for(const thin
191197
state('open_window_leaf',Object.fromEntries(Object.keys(facings).map(facing=>[`facing=${facing}`,{model:`${ns}:window_mesh`}])));
192198
for(let meta=0;meta<2;meta++) {item(`leaded_pane_${meta}`,'window_mesh');lang[`item.${ns}.leaded_pane.${meta}.name`]=`${meta?'Rectangular':'Diamond'} Leaded Pane`;}
193199
for (const [key,label] of Object.entries({
200+
'soffit.fit':'Fit under a clay fascia. Sneak and use an empty hand underneath to recover it.',
201+
'soffit.craft':'Stack two dark oak slabs in the crafting grid to make four soffits.',
194202
'gutter.fit':'Fit to the outside face of a bare clay fascia. Sneak and use an empty hand to recover it.',
195203
'gutter.outlet':'Place a downpipe beneath the outlet to carry rain down.',
196204
'gutter.craft':'Three iron ingots in a row make six gutters. Add an ingot to make an outlet.',

‎scripts/invoke-client-preview.ps1‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
param(
2-
[string]$Runtime='D:\IronAgeArchitecture\manual-testing\rye-downpipe-shoe-0.1.11\native-client-final',
3-
[string]$PreviewName='Rye Downpipe Shoe Preview',
2+
[string]$Runtime='D:\IronAgeArchitecture\manual-testing\rye-eaves-0.1.12\native-client-verified',
3+
[string]$PreviewName='Rye Eaves Preview',
44
[string]$ServerTemplate='D:\IronAgeArchitecture\manual-testing\jetties-0.1.2-final\core',
55
[string]$GradleHome='D:\GradleCaches\minecraft-mods-shared',
66
[string]$AssetsDirectory='',

‎scripts/invoke-runtime-probe.ps1‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
param(
22
[ValidateSet('core','reload','furniture','disabled','legacy','legacy-daub','legacy-jetties','legacy-fascia','iron-age','late-medieval','mixed-eras','no-eras','invalid-era','windows-disabled','clay-disabled','clay-only')][string]$Mode='core',
3-
[string]$RuntimeRoot='D:\IronAgeArchitecture\manual-testing\rye-downpipe-shoe-0.1.11',
3+
[string]$RuntimeRoot='D:\IronAgeArchitecture\manual-testing\rye-eaves-0.1.12',
44
[string]$ServerTemplate='D:\IronAgeArchitecture\manual-testing\jetties-0.1.2-final\core',
55
[string]$FurnitureJar='D:\IronAgeArchitecture\manual-testing\jetties-0.1.2-final\furniture\mods\iron-age-furniture-0.3.0.110021.jar',
66
[string]$Java8='C:\Users\johnb\.gradle\jdks\temurin-8-amd64-windows.2\bin\java.exe'
@@ -101,7 +101,7 @@ if($Mode -eq 'legacy-jetties') {$args+='-Diaa.legacyJetties=true'}
101101
if($Mode -eq 'legacy-fascia') {$args+='-Diaa.legacyFascia=true'}
102102
if($Mode -eq 'core') {$args+=@('-Diaa.eraMatrix=true','-Diaa.recipeMatrix=true')}
103103
if($Mode -eq 'disabled') {$args+='-Diaa.expectedVariants=0'}
104-
if($Mode -eq 'clay-only') {$args+=@('-Diaa.expectedVariants=15','-Diaa.clayOnly=true','-Diaa.recipeMatrix=true')}
104+
if($Mode -eq 'clay-only') {$args+=@('-Diaa.expectedVariants=16','-Diaa.clayOnly=true','-Diaa.recipeMatrix=true')}
105105
$args+=@('-jar',$forge,'nogui')
106106
Push-Location $folder
107107
try {

‎src/main/java/zone/moddev/mc/ironagearchitecture/ArchitectureBlocks.java‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public final class ArchitectureBlocks {
3939
public static WindowLeafBlock WINDOW_LEAF;
4040
public static LeadedPaneItem LEADED_PANE;
4141
public static GutterItem GUTTER, GUTTER_OUTLET;
42+
public static SoffitItem SOFFIT;
4243
public static DownpipeBlock DOWNPIPE, DOWNPIPE_OFFSET, DOWNPIPE_SHOE;
4344

4445
public static int variants(Block block) {
@@ -53,6 +54,7 @@ public static List<ItemStack> visibleStacks() {
5354
if (GUTTER != null) {
5455
result.add(new ItemStack(GUTTER));
5556
result.add(new ItemStack(GUTTER_OUTLET));
57+
result.add(new ItemStack(SOFFIT));
5658
}
5759
return result;
5860
}
@@ -62,7 +64,7 @@ public static List<FrameBlock> meshes() {
6264
public static FrameBlock DAUB;
6365
public static final List<RoofBlock> ROOFS = new ArrayList<>();
6466
public static TileHangingBlock CLAY_HANGING, CLAY_HANGING_THIN;
65-
public static FasciaBlock CLAY_FASCIA;
67+
public static FasciaBlock CLAY_FASCIA, CLAY_FASCIA_LINED;
6668
public static TrimmedRoofBlock CLAY_VERGE, CLAY_RIDGE_END;
6769
private ArchitectureBlocks() { }
6870
public static <T extends Block> T block(T block, String name) {
@@ -109,7 +111,7 @@ public static void register() {
109111
CLAY_HANGING_THIN = block(new TileHangingBlock(true), "clay_tile_hanging_thin");
110112
item(CLAY_HANGING, new TileHangingItem(CLAY_HANGING));
111113
item(CLAY_HANGING_THIN, new TileHangingItem(CLAY_HANGING_THIN));
112-
CLAY_FASCIA = block(new FasciaBlock(), "clay_tile_fascia");
114+
CLAY_FASCIA = block(new FasciaBlock(false), "clay_tile_fascia");
113115
item(CLAY_FASCIA, new EraItemBlock(CLAY_FASCIA));
114116
ROOFS.add(CLAY_FASCIA);
115117
CLAY_VERGE = roofTrim("clay_tile_verge", TrimmedRoofBlock.Kind.VERGE);
@@ -122,6 +124,13 @@ public static void register() {
122124
item(DOWNPIPE_OFFSET, new DownpipeItem(DOWNPIPE_OFFSET));
123125
DOWNPIPE_SHOE = block(new DownpipeBlock(DownpipeBlock.Kind.SHOE), "iron_downpipe_shoe");
124126
item(DOWNPIPE_SHOE, new DownpipeItem(DOWNPIPE_SHOE));
127+
// The lined fascia keeps the same orientation and gutter metadata as the bare one.
128+
CLAY_FASCIA_LINED = block(new FasciaBlock(true), "clay_tile_fascia_lined");
129+
ROOFS.add(CLAY_FASCIA_LINED);
130+
SOFFIT = new SoffitItem();
131+
SOFFIT.setRegistryName(new ResourceLocation(IronAgeArchitecture.MODID, "dark_oak_soffit"));
132+
SOFFIT.setUnlocalizedName(IronAgeArchitecture.MODID + ".dark_oak_soffit");
133+
GameRegistry.register(SOFFIT);
125134
}
126135
EraCatalog.assignPrimaryTabs();
127136
}

‎src/main/java/zone/moddev/mc/ironagearchitecture/ArchitectureRecipes.java‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ public static void register() {
2626
}
2727
}
2828
if(ArchitectureConfig.windows) registerWindows();
29-
if (ArchitectureConfig.clayTiles) registerGuttering();
29+
if (ArchitectureConfig.clayTiles) {
30+
registerGuttering();
31+
shaped(new ItemStack(ArchitectureBlocks.SOFFIT, 4), "D", "D", 'D', new ItemStack(Blocks.WOODEN_SLAB, 1, 5));
32+
}
3033
for(RoofBlock roof:ArchitectureBlocks.ROOFS) if(!roof.isRidge() && !(roof instanceof TrimmedRoofBlock)) {
3134
Object material;
3235
switch (roof.materialKey) {

0 commit comments

Comments
 (0)