Skip to content

Commit

Permalink
Add Ported Simple Blocks From Engineer's Decor (#5842)
Browse files Browse the repository at this point in the history
* Add Grit Sand, ported from Engineer's Decor

* Reorganize textures in stone_decoration folder

 - Any texture with variations has a subfolder
 - Visually declutters folder to make it organized

* Add Slag Brick & Clinker Brick blocks, stairs, slabs

 - Adds Slag & Clinker brick: Blocks, Slabs, Stairs
 - Does not add walls, sastors, or recipes
 - A few brick blocks got slight hardness updates

* Add Clinker Brick Quoin

* Cleanup after adding Clinker Brick Quoin

* Update Clinker Brick Quoin textures to fit with the bricks

* Add Clinker & Slag brick recipes

* Add missed JSONs from recipes commit

* Wall template model prep

* Add in walls courtesy of @50m31-AW

 - Adds walls for Slag Brick & Clinker Brick
 - Adds custom wall generator for blocks with "tops" & variations
 - Adds recipes for walls

Wall model bases with culling courtesy of @50m31-AW

* Add in Clinker Brick Sill

* Add in manual entries & stonecutting recipe for slag brick

* Add attributions for MIT files from Engineer's Decor
  • Loading branch information
voidsong-dragonfly authored Mar 4, 2024
1 parent 2f36220 commit f0d26f7
Show file tree
Hide file tree
Showing 722 changed files with 9,751 additions and 1,224 deletions.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ Wires, transformers, capacitors!
# Asset Credits
- Sound for the collapsible glider is by Iain McCurdy on [freesound.org](https://freesound.org/people/iainmccurdy/sounds/645974/), licensed under CC BY 4.0
- Sound for the excavator ore conveyor is by tosha73 on [freesound.org](https://freesound.org/people/tosha73/sounds/584592/), licensed under CC BY 4.0
- Sound for the electromagnet is by _MC5_ on [freesound.org](https://freesound.org/people/_MC5_/sounds/672082/), licensed under CC BY 4.0
- Sound for the electromagnet is by _MC5_ on [freesound.org](https://freesound.org/people/_MC5_/sounds/672082/), licensed under CC BY 4.0
- Assets for several blocks are derived from @stfwi assets in [Engineer's Decor](https://github.com/stfwi/engineers-decor), licensed under MIT
- These assets include clinker bricks, slag bricks, and grit sand
Original file line number Diff line number Diff line change
Expand Up @@ -1526,6 +1526,29 @@ private void recipesStoneDecorations(@Nonnull Consumer<FinishedRecipe> out)
makeIngredient(Tags.Items.INGOTS_BRICK),
makeIngredient(Blocks.MAGMA_BLOCK),
has(Tags.Items.INGOTS_BRICK), out);
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, StoneDecoration.SLAG_BRICK, 4)
.pattern("ss")
.pattern("ss")
.define('s', IETags.slag)
.unlockedBy("has_slag", has(IETags.slag))
.save(out, toRL(toPath(StoneDecoration.SLAG_BRICK)));
SimpleCookingRecipeBuilder.smoking(Ingredient.of(Blocks.BRICKS), RecipeCategory.MISC, StoneDecoration.CLINKER_BRICK, 0.1f, standardSmeltingTime)
.unlockedBy("has_bricks", has(Blocks.BRICKS))
.save(out, toRL("smoking/"+toPath(StoneDecoration.CLINKER_BRICK)));
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, StoneDecoration.CLINKER_BRICK_QUOIN, 4)
.pattern("tb")
.pattern("bb")
.define('t', Blocks.WHITE_TERRACOTTA)
.define('b', StoneDecoration.CLINKER_BRICK)
.unlockedBy("has_bricks", has(Blocks.BRICKS))
.save(out, toRL(toPath(StoneDecoration.CLINKER_BRICK_QUOIN)));
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, StoneDecoration.CLINKER_BRICK_SILL, 4)
.pattern("tt")
.pattern("bb")
.define('t', Blocks.WHITE_TERRACOTTA)
.define('b', StoneDecoration.CLINKER_BRICK)
.unlockedBy("has_bricks", has(Blocks.BRICKS))
.save(out, toRL(toPath(StoneDecoration.CLINKER_BRICK_SILL)));
addSandwich(StoneDecoration.HEMPCRETE, 6,
makeIngredient(IETags.clay),
makeIngredient(IETags.fiberHemp),
Expand All @@ -1545,13 +1568,25 @@ private void recipesStoneDecorations(@Nonnull Consumer<FinishedRecipe> out)
.save(out, toRL(toPath(StoneDecoration.HEMPCRETE_PILLAR)));
add3x3Conversion(StoneDecoration.COKE, IEItems.Ingredients.COAL_COKE, IETags.coalCoke, out);

addStairs(StoneDecoration.SLAG_BRICK, out);
addStairs(StoneDecoration.CLINKER_BRICK, out);
addStairs(StoneDecoration.HEMPCRETE, out);
addStairs(StoneDecoration.HEMPCRETE_BRICK, out);
addStairs(StoneDecoration.CONCRETE, out);
addStairs(StoneDecoration.CONCRETE_BRICK, out);
addStairs(StoneDecoration.CONCRETE_TILE, out);
addStairs(StoneDecoration.CONCRETE_LEADED, out);

addWall(StoneDecoration.SLAG_BRICK, out);
addWall(StoneDecoration.CLINKER_BRICK, out);

addStonecuttingRecipe(Ingredients.SLAG, StoneDecoration.SLAG_BRICK, out);
addStonecuttingRecipe(StoneDecoration.SLAG_BRICK, IEBlocks.TO_SLAB.get(StoneDecoration.SLAG_BRICK.getId()), 2, out);
addStonecuttingRecipe(StoneDecoration.SLAG_BRICK, IEBlocks.TO_STAIRS.get(StoneDecoration.SLAG_BRICK.getId()), out);
addStonecuttingRecipe(StoneDecoration.SLAG_BRICK, IEBlocks.TO_WALL.get(StoneDecoration.SLAG_BRICK.getId()), out);
addStonecuttingRecipe(StoneDecoration.CLINKER_BRICK, IEBlocks.TO_SLAB.get(StoneDecoration.CLINKER_BRICK.getId()), 2, out);
addStonecuttingRecipe(StoneDecoration.CLINKER_BRICK, IEBlocks.TO_STAIRS.get(StoneDecoration.CLINKER_BRICK.getId()), out);
addStonecuttingRecipe(StoneDecoration.CLINKER_BRICK, IEBlocks.TO_WALL.get(StoneDecoration.CLINKER_BRICK.getId()), out);
addStonecuttingRecipe(StoneDecoration.HEMPCRETE, IEBlocks.TO_SLAB.get(StoneDecoration.HEMPCRETE.getId()), 2, out);
addStonecuttingRecipe(StoneDecoration.HEMPCRETE, IEBlocks.TO_STAIRS.get(StoneDecoration.HEMPCRETE.getId()), out);
addStonecuttingRecipe(StoneDecoration.HEMPCRETE_BRICK, IEBlocks.TO_SLAB.get(StoneDecoration.HEMPCRETE_BRICK.getId()), 2, out);
Expand Down Expand Up @@ -1582,7 +1617,7 @@ private void recipesStoneDecorations(@Nonnull Consumer<FinishedRecipe> out)
.unlockedBy("has_concrete", has(StoneDecoration.CONCRETE))
.save(out, toRL("smelting/"+toPath(StoneDecoration.CONCRETE_BRICK_CRACKED)));
SimpleCookingRecipeBuilder.smelting(Ingredient.of(StoneDecoration.HEMPCRETE_BRICK), RecipeCategory.MISC, StoneDecoration.HEMPCRETE_BRICK_CRACKED, 0.1f, standardSmeltingTime)
.unlockedBy("has_hempcrete", has(StoneDecoration.CONCRETE))
.unlockedBy("has_hempcrete", has(StoneDecoration.HEMPCRETE))
.save(out, toRL("smelting/"+toPath(StoneDecoration.HEMPCRETE_BRICK_CRACKED)));

SimpleCookingRecipeBuilder.smelting(Ingredient.of(IETags.slag), RecipeCategory.MISC, StoneDecoration.SLAG_GLASS, 0.1f, standardSmeltingTime)
Expand Down Expand Up @@ -3464,6 +3499,12 @@ private void recipesMisc(@Nonnull Consumer<FinishedRecipe> out)
.define('C', Items.MINECART)
.unlockedBy("has_minecart", has(Items.MINECART))
.save(out, toRL(toPath(Minecarts.CART_METAL_BARREL)));
shapelessMisc(StoneDecoration.GRIT_SAND, 5)
.requires(Ingredient.of(Tags.Items.GRAVEL), 1)
.requires(Ingredient.of(Tags.Items.SAND_COLORLESS), 4)
.unlockedBy("has_sand", has(Tags.Items.GRAVEL))
.unlockedBy("has_gravel", has(Tags.Items.SAND_COLORLESS))
.save(out, toRL("grit_sand"));

//Lead to dye recipes
shapelessMisc(Items.WHITE_DYE, 16)
Expand Down Expand Up @@ -3566,6 +3607,17 @@ private void addStairs(ItemLike block, Consumer<FinishedRecipe> out)
.save(out, toRL(toPath(stairs)));
}

private void addWall(ItemLike block, Consumer<FinishedRecipe> out)
{
ItemLike wall = IEBlocks.TO_WALL.get(BuiltInRegistries.ITEM.getKey(block.asItem()));
shapedMisc(wall, 6)
.define('s', block)
.pattern("sss")
.pattern("sss")
.unlockedBy("has_"+toPath(block), has(block))
.save(out, toRL(toPath(wall)));
}

private void addStonecuttingRecipe(ItemLike input, ItemLike output, Consumer<FinishedRecipe> out)
{
addStonecuttingRecipe(input, output, 1, out);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,20 +155,29 @@ protected void registerStatesAndModels()
cubeAll(StoneDecoration.COKEBRICK, rl("block/stone_decoration/cokebrick"));
cubeAll(StoneDecoration.BLASTBRICK, rl("block/stone_decoration/blastbrick"));
cubeAll(StoneDecoration.BLASTBRICK_REINFORCED, rl("block/stone_decoration/blastbrick_reinforced"));
multiEightCubeAll(StoneDecoration.SLAG_GRAVEL, rl("block/stone_decoration/slag_gravel"));
multiEightCubeAll(StoneDecoration.SLAG_BRICK, rl("block/stone_decoration/slag_brick/slag_brick"));
multiEightCubeAll(StoneDecoration.CLINKER_BRICK, rl("block/stone_decoration/clinker_brick/clinker_brick"));
simpleBlockAndItem(StoneDecoration.CLINKER_BRICK_SILL, new ConfiguredModel(models().cubeBottomTop(
"clinker_brick_sill",
modLoc("block/stone_decoration/clinker_brick/clinker_brick_sill_side"),
modLoc("block/stone_decoration/clinker_brick/clinker_brick0"),
modLoc("block/stone_decoration/clinker_brick/clinker_brick_sill_top")
)));
multiEightCubeAll(StoneDecoration.SLAG_GRAVEL, rl("block/stone_decoration/slag_gravel/slag_gravel"));
multiEightCubeAll(StoneDecoration.GRIT_SAND, rl("block/stone_decoration/grit_sand/grit_sand"));
cubeAll(StoneDecoration.COKE, rl("block/stone_decoration/coke"));
multiEightCubeAll(StoneDecoration.CONCRETE, rl("block/stone_decoration/concrete"));
multiEightCubeAll(StoneDecoration.CONCRETE_BRICK, rl("block/stone_decoration/concrete_brick"));
multiEightCubeAll(StoneDecoration.CONCRETE, rl("block/stone_decoration/concrete/concrete"));
multiEightCubeAll(StoneDecoration.CONCRETE_BRICK, rl("block/stone_decoration/concrete_brick/concrete_brick"));
cubeAll(StoneDecoration.CONCRETE_BRICK_CRACKED, rl("block/stone_decoration/concrete_brick_cracked"));
cubeAll(StoneDecoration.CONCRETE_CHISELED, rl("block/stone_decoration/concrete_chiseled"));
cubeSideVertical(StoneDecoration.CONCRETE_PILLAR, rl("block/stone_decoration/concrete_pillar"), rl("block/stone_decoration/concrete_tile0"));
cubeSideVertical(StoneDecoration.CONCRETE_PILLAR, rl("block/stone_decoration/concrete_pillar"), rl("block/stone_decoration/concrete_tile/concrete_tile0"));
cubeAll(StoneDecoration.CONCRETE_LEADED, rl("block/stone_decoration/concrete_leaded"));
multiEightCubeAll(StoneDecoration.CONCRETE_TILE, rl("block/stone_decoration/concrete_tile"));
multiEightCubeAll(StoneDecoration.HEMPCRETE, rl("block/stone_decoration/hempcrete"));
multiEightCubeAll(StoneDecoration.HEMPCRETE_BRICK, rl("block/stone_decoration/hempcrete_brick"));
multiEightCubeAll(StoneDecoration.CONCRETE_TILE, rl("block/stone_decoration/concrete_tile/concrete_tile"));
multiEightCubeAll(StoneDecoration.HEMPCRETE, rl("block/stone_decoration/hempcrete/hempcrete"));
multiEightCubeAll(StoneDecoration.HEMPCRETE_BRICK, rl("block/stone_decoration/hempcrete_brick/hempcrete_brick"));
cubeAll(StoneDecoration.HEMPCRETE_BRICK_CRACKED, rl("block/stone_decoration/hempcrete_brick_cracked"));
cubeAll(StoneDecoration.HEMPCRETE_CHISELED, rl("block/stone_decoration/hempcrete_chiseled"));
cubeSideVertical(StoneDecoration.HEMPCRETE_PILLAR, rl("block/stone_decoration/hempcrete_pillar"), rl("block/stone_decoration/hempcrete0"));
cubeSideVertical(StoneDecoration.HEMPCRETE_PILLAR, rl("block/stone_decoration/hempcrete_pillar"), rl("block/stone_decoration/hempcrete/hempcrete0"));
cubeAll(StoneDecoration.INSULATING_GLASS, rl("block/stone_decoration/insulating_glass"), translucent());
cubeAll(StoneDecoration.SLAG_GLASS, rl("block/stone_decoration/slag_glass"), translucent());
cubeAll(StoneDecoration.ALLOYBRICK, rl("block/stone_decoration/alloybrick"));
Expand Down Expand Up @@ -205,27 +214,40 @@ protected void registerStatesAndModels()
slabFor(StoneDecoration.COKEBRICK, rl("block/stone_decoration/cokebrick"));
slabFor(StoneDecoration.BLASTBRICK, rl("block/stone_decoration/blastbrick"));
slabFor(StoneDecoration.BLASTBRICK_REINFORCED, rl("block/stone_decoration/blastbrick_reinforced"));
slabForMultiEightAll(StoneDecoration.SLAG_BRICK, rl("block/stone_decoration/slag_brick/slag_brick"));
slabForMultiEightAll(StoneDecoration.CLINKER_BRICK, rl("block/stone_decoration/clinker_brick/clinker_brick"));
slabFor(StoneDecoration.COKE, rl("block/stone_decoration/coke"));
slabForMultiEightAll(StoneDecoration.CONCRETE, rl("block/stone_decoration/concrete"));
slabForMultiEightAll(StoneDecoration.CONCRETE_BRICK, rl("block/stone_decoration/concrete_brick"));
slabForMultiEightAll(StoneDecoration.CONCRETE_TILE, rl("block/stone_decoration/concrete_tile"));
slabForMultiEightAll(StoneDecoration.CONCRETE, rl("block/stone_decoration/concrete/concrete"));
slabForMultiEightAll(StoneDecoration.CONCRETE_BRICK, rl("block/stone_decoration/concrete_brick/concrete_brick"));
slabForMultiEightAll(StoneDecoration.CONCRETE_TILE, rl("block/stone_decoration/concrete_tile/concrete_tile"));
slabFor(StoneDecoration.CONCRETE_LEADED, rl("block/stone_decoration/concrete_leaded"));
slabForMultiEightAll(StoneDecoration.HEMPCRETE, rl("block/stone_decoration/hempcrete"));
slabForMultiEightAll(StoneDecoration.HEMPCRETE_BRICK, rl("block/stone_decoration/hempcrete_brick"));
slabForMultiEightAll(StoneDecoration.HEMPCRETE, rl("block/stone_decoration/hempcrete/hempcrete"));
slabForMultiEightAll(StoneDecoration.HEMPCRETE_BRICK, rl("block/stone_decoration/hempcrete_brick/hempcrete_brick"));
slabFor(StoneDecoration.INSULATING_GLASS, rl("block/stone_decoration/insulating_glass"), translucent());
slabFor(StoneDecoration.ALLOYBRICK, rl("block/stone_decoration/alloybrick"));
for(TreatedWoodStyles style : TreatedWoodStyles.values())
slabFor(WoodenDecoration.TREATED_WOOD.get(style), rl("block/wooden_decoration/treated_wood_"+style.name().toLowerCase(Locale.ENGLISH)));

stairsForMultiEightAll(StoneDecoration.HEMPCRETE, rl("block/stone_decoration/hempcrete"));
stairsForMultiEightAll(StoneDecoration.HEMPCRETE_BRICK, rl("block/stone_decoration/hempcrete_brick"));
stairsForMultiEightAll(StoneDecoration.CONCRETE, rl("block/stone_decoration/concrete"));
stairsForMultiEightAll(StoneDecoration.CONCRETE_BRICK, rl("block/stone_decoration/concrete_brick"));
stairsForMultiEightAll(StoneDecoration.CONCRETE_TILE, rl("block/stone_decoration/concrete_tile"));
stairsForMultiEightAll(StoneDecoration.SLAG_BRICK, rl("block/stone_decoration/slag_brick/slag_brick"));
stairsForMultiEightAll(StoneDecoration.CLINKER_BRICK, rl("block/stone_decoration/clinker_brick/clinker_brick"));
stairsForMultiEightAll(StoneDecoration.HEMPCRETE, rl("block/stone_decoration/hempcrete/hempcrete"));
stairsForMultiEightAll(StoneDecoration.HEMPCRETE_BRICK, rl("block/stone_decoration/hempcrete_brick/hempcrete_brick"));
stairsForMultiEightAll(StoneDecoration.CONCRETE, rl("block/stone_decoration/concrete/concrete"));
stairsForMultiEightAll(StoneDecoration.CONCRETE_BRICK, rl("block/stone_decoration/concrete_brick/concrete_brick"));
stairsForMultiEightAll(StoneDecoration.CONCRETE_TILE, rl("block/stone_decoration/concrete_tile/concrete_tile"));
stairsFor(StoneDecoration.CONCRETE_LEADED, rl("block/stone_decoration/concrete_leaded"));
for(TreatedWoodStyles style : TreatedWoodStyles.values())
stairsFor(WoodenDecoration.TREATED_WOOD.get(style), rl("block/wooden_decoration/treated_wood_"+style.name().toLowerCase(Locale.ENGLISH)));

wallForMultiEight(StoneDecoration.SLAG_BRICK,
rl("block/stone_decoration/slag_brick/slag_brick"),
rl("block/stone_decoration/slag_brick/slag_brick_wall"),
rl("block/stone_decoration/slag_brick/slag_brick_top"));
wallForMultiEight(StoneDecoration.CLINKER_BRICK,
rl("block/stone_decoration/clinker_brick/clinker_brick"),
rl("block/stone_decoration/clinker_brick/clinker_brick_wall"),
rl("block/stone_decoration/clinker_brick/clinker_brick_top"));

postBlock(WoodenDecoration.TREATED_POST, rl("block/wooden_decoration/post"));
postBlock(MetalDecoration.STEEL_POST, rl("block/metal_decoration/steel_post"));
postBlock(MetalDecoration.ALU_POST, rl("block/metal_decoration/aluminum_post"));
Expand Down Expand Up @@ -298,7 +320,7 @@ protected void registerStatesAndModels()
createStructuralArm("block/metal_decoration/aluminum_scaffolding", MetalDecoration.ALU_SLOPE);

createHorizontalRotatedBlock(StoneDecoration.CORESAMPLE, obj("block/coresample.obj"));
ResourceLocation concreteTexture = rl("block/stone_decoration/concrete0");
ResourceLocation concreteTexture = rl("block/stone_decoration/concrete/concrete0");
simpleBlockAndItem(StoneDecoration.CONCRETE_SHEET, models().carpet("concrete_sheet", concreteTexture));
simpleBlockAndItem(StoneDecoration.CONCRETE_QUARTER, quarter("concrete_quarter", concreteTexture));
simpleBlockAndItem(StoneDecoration.CONCRETE_THREE_QUARTER, threeQuarter("concrete_three_quarter", concreteTexture));
Expand Down
Loading

0 comments on commit f0d26f7

Please sign in to comment.