From 457a6f33e48ba44983dfa1e846dc1dd63c22c5d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emmanuel=20Beno=C3=AEt?= <tseeker@nocternity.net>
Date: Tue, 14 Jun 2016 21:35:10 +0200
Subject: [PATCH] Extra stairs from granite, diorite and andesite

---
 src/java/mmm/deco/DExtraStairs.java           | 49 +++++++++++++++++++
 src/java/mmm/deco/DecorativeBlocks.java       |  8 +++
 .../mmm/blockstates/deco/stairs/andesite.json | 44 +++++++++++++++++
 .../mmm/blockstates/deco/stairs/diorite.json  | 44 +++++++++++++++++
 .../mmm/blockstates/deco/stairs/granite.json  | 44 +++++++++++++++++
 .../block/deco/stairs/andesite/inner.json     |  8 +++
 .../block/deco/stairs/andesite/outer.json     |  8 +++
 .../block/deco/stairs/andesite/straight.json  |  8 +++
 .../block/deco/stairs/diorite/inner.json      |  8 +++
 .../block/deco/stairs/diorite/outer.json      |  8 +++
 .../block/deco/stairs/diorite/straight.json   |  8 +++
 .../block/deco/stairs/granite/inner.json      |  8 +++
 .../block/deco/stairs/granite/outer.json      |  8 +++
 .../block/deco/stairs/granite/straight.json   |  8 +++
 .../mmm/models/item/deco/stairs/andesite.json |  3 ++
 .../mmm/models/item/deco/stairs/diorite.json  |  3 ++
 .../mmm/models/item/deco/stairs/granite.json  |  3 ++
 17 files changed, 270 insertions(+)
 create mode 100644 src/java/mmm/deco/DExtraStairs.java
 create mode 100644 src/resources/assets/mmm/blockstates/deco/stairs/andesite.json
 create mode 100644 src/resources/assets/mmm/blockstates/deco/stairs/diorite.json
 create mode 100644 src/resources/assets/mmm/blockstates/deco/stairs/granite.json
 create mode 100644 src/resources/assets/mmm/models/block/deco/stairs/andesite/inner.json
 create mode 100644 src/resources/assets/mmm/models/block/deco/stairs/andesite/outer.json
 create mode 100644 src/resources/assets/mmm/models/block/deco/stairs/andesite/straight.json
 create mode 100644 src/resources/assets/mmm/models/block/deco/stairs/diorite/inner.json
 create mode 100644 src/resources/assets/mmm/models/block/deco/stairs/diorite/outer.json
 create mode 100644 src/resources/assets/mmm/models/block/deco/stairs/diorite/straight.json
 create mode 100644 src/resources/assets/mmm/models/block/deco/stairs/granite/inner.json
 create mode 100644 src/resources/assets/mmm/models/block/deco/stairs/granite/outer.json
 create mode 100644 src/resources/assets/mmm/models/block/deco/stairs/granite/straight.json
 create mode 100644 src/resources/assets/mmm/models/item/deco/stairs/andesite.json
 create mode 100644 src/resources/assets/mmm/models/item/deco/stairs/diorite.json
 create mode 100644 src/resources/assets/mmm/models/item/deco/stairs/granite.json

diff --git a/src/java/mmm/deco/DExtraStairs.java b/src/java/mmm/deco/DExtraStairs.java
new file mode 100644
index 0000000..661d4b9
--- /dev/null
+++ b/src/java/mmm/deco/DExtraStairs.java
@@ -0,0 +1,49 @@
+package mmm.deco;
+
+
+import mmm.utils.I_URecipeRegistrar;
+import mmm.utils.URegistry;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockStairs;
+import net.minecraft.block.BlockStone;
+import net.minecraft.block.state.IBlockState;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fml.common.registry.GameRegistry;
+
+
+
+public class DExtraStairs
+		extends BlockStairs
+		implements I_URecipeRegistrar
+{
+	public static DExtraStairs makeStoneStairs( BlockStone.EnumType type )
+	{
+		IBlockState bs = Blocks.STONE.getDefaultState( ).withProperty( BlockStone.VARIANT , type );
+		return new DExtraStairs( bs , type.getName( ).replace( "smooth_" , "" ) );
+	}
+
+	public final IBlockState modelState;
+	public final Block modelBlock;
+
+
+	public DExtraStairs( final IBlockState modelState , String name )
+	{
+		super( modelState );
+		this.modelState = modelState;
+		this.modelBlock = modelState.getBlock( );
+		URegistry.setIdentifiers( this , "deco" , "stairs" , name );
+	}
+
+
+	@Override
+	public void registerRecipes( )
+	{
+		GameRegistry.addShapedRecipe( new ItemStack( this ) , //
+				"B  " , //
+				"BB " , //
+				"BBB" , //
+				'B' , new ItemStack( this.modelBlock , 1 , this.modelBlock.getMetaFromState( this.modelState ) ) );
+	}
+
+}
diff --git a/src/java/mmm/deco/DecorativeBlocks.java b/src/java/mmm/deco/DecorativeBlocks.java
index 9f18015..4ccf456 100644
--- a/src/java/mmm/deco/DecorativeBlocks.java
+++ b/src/java/mmm/deco/DecorativeBlocks.java
@@ -2,11 +2,15 @@ package mmm.deco;
 
 
 import mmm.utils.URegistry;
+import net.minecraft.block.BlockStone;
 
 
 
 public class DecorativeBlocks
 {
+	public static final DExtraStairs STAIRS_GRANITE;
+	public static final DExtraStairs STAIRS_DIORITE;
+	public static final DExtraStairs STAIRS_ANDESITE;
 
 	public static final DBlockTable TABLE_OAK;
 	public static final DBlockTable TABLE_BIRCH;
@@ -23,6 +27,10 @@ public class DecorativeBlocks
 	public static final DBlockChair CHAIR_ACACIA;
 
 	static {
+		URegistry.addBlock( STAIRS_GRANITE = DExtraStairs.makeStoneStairs( BlockStone.EnumType.GRANITE_SMOOTH ) );
+		URegistry.addBlock( STAIRS_DIORITE = DExtraStairs.makeStoneStairs( BlockStone.EnumType.DIORITE_SMOOTH ) );
+		URegistry.addBlock( STAIRS_ANDESITE = DExtraStairs.makeStoneStairs( BlockStone.EnumType.ANDESITE_SMOOTH ) );
+
 		URegistry.addBlock( TABLE_OAK = new DBlockTable( E_DWoodType.OAK ) );
 		URegistry.addBlock( TABLE_BIRCH = new DBlockTable( E_DWoodType.BIRCH ) );
 		URegistry.addBlock( TABLE_SPRUCE = new DBlockTable( E_DWoodType.SPRUCE ) );
diff --git a/src/resources/assets/mmm/blockstates/deco/stairs/andesite.json b/src/resources/assets/mmm/blockstates/deco/stairs/andesite.json
new file mode 100644
index 0000000..8becd1a
--- /dev/null
+++ b/src/resources/assets/mmm/blockstates/deco/stairs/andesite.json
@@ -0,0 +1,44 @@
+{
+    "variants": {
+        "facing=east,half=bottom,shape=straight":  { "model": "mmm:deco/stairs/andesite/straight" },
+        "facing=west,half=bottom,shape=straight":  { "model": "mmm:deco/stairs/andesite/straight", "y": 180, "uvlock": true },
+        "facing=south,half=bottom,shape=straight": { "model": "mmm:deco/stairs/andesite/straight", "y": 90, "uvlock": true },
+        "facing=north,half=bottom,shape=straight": { "model": "mmm:deco/stairs/andesite/straight", "y": 270, "uvlock": true },
+        "facing=east,half=bottom,shape=outer_right":  { "model": "mmm:deco/stairs/andesite/outer" },
+        "facing=west,half=bottom,shape=outer_right":  { "model": "mmm:deco/stairs/andesite/outer", "y": 180, "uvlock": true },
+        "facing=south,half=bottom,shape=outer_right": { "model": "mmm:deco/stairs/andesite/outer", "y": 90, "uvlock": true },
+        "facing=north,half=bottom,shape=outer_right": { "model": "mmm:deco/stairs/andesite/outer", "y": 270, "uvlock": true },
+        "facing=east,half=bottom,shape=outer_left":  { "model": "mmm:deco/stairs/andesite/outer", "y": 270, "uvlock": true },
+        "facing=west,half=bottom,shape=outer_left":  { "model": "mmm:deco/stairs/andesite/outer", "y": 90, "uvlock": true },
+        "facing=south,half=bottom,shape=outer_left": { "model": "mmm:deco/stairs/andesite/outer" },
+        "facing=north,half=bottom,shape=outer_left": { "model": "mmm:deco/stairs/andesite/outer", "y": 180, "uvlock": true },
+        "facing=east,half=bottom,shape=inner_right":  { "model": "mmm:deco/stairs/andesite/inner" },
+        "facing=west,half=bottom,shape=inner_right":  { "model": "mmm:deco/stairs/andesite/inner", "y": 180, "uvlock": true },
+        "facing=south,half=bottom,shape=inner_right": { "model": "mmm:deco/stairs/andesite/inner", "y": 90, "uvlock": true },
+        "facing=north,half=bottom,shape=inner_right": { "model": "mmm:deco/stairs/andesite/inner", "y": 270, "uvlock": true },
+        "facing=east,half=bottom,shape=inner_left":  { "model": "mmm:deco/stairs/andesite/inner", "y": 270, "uvlock": true },
+        "facing=west,half=bottom,shape=inner_left":  { "model": "mmm:deco/stairs/andesite/inner", "y": 90, "uvlock": true },
+        "facing=south,half=bottom,shape=inner_left": { "model": "mmm:deco/stairs/andesite/inner" },
+        "facing=north,half=bottom,shape=inner_left": { "model": "mmm:deco/stairs/andesite/inner", "y": 180, "uvlock": true },
+        "facing=east,half=top,shape=straight":  { "model": "mmm:deco/stairs/andesite/straight", "x": 180, "uvlock": true },
+        "facing=west,half=top,shape=straight":  { "model": "mmm:deco/stairs/andesite/straight", "x": 180, "y": 180, "uvlock": true },
+        "facing=south,half=top,shape=straight": { "model": "mmm:deco/stairs/andesite/straight", "x": 180, "y": 90, "uvlock": true },
+        "facing=north,half=top,shape=straight": { "model": "mmm:deco/stairs/andesite/straight", "x": 180, "y": 270, "uvlock": true },
+        "facing=east,half=top,shape=outer_right":  { "model": "mmm:deco/stairs/andesite/outer", "x": 180, "y": 90, "uvlock": true },
+        "facing=west,half=top,shape=outer_right":  { "model": "mmm:deco/stairs/andesite/outer", "x": 180, "y": 270, "uvlock": true },
+        "facing=south,half=top,shape=outer_right": { "model": "mmm:deco/stairs/andesite/outer", "x": 180, "y": 180, "uvlock": true },
+        "facing=north,half=top,shape=outer_right": { "model": "mmm:deco/stairs/andesite/outer", "x": 180, "uvlock": true },
+        "facing=east,half=top,shape=outer_left":  { "model": "mmm:deco/stairs/andesite/outer", "x": 180, "uvlock": true },
+        "facing=west,half=top,shape=outer_left":  { "model": "mmm:deco/stairs/andesite/outer", "x": 180, "y": 180, "uvlock": true },
+        "facing=south,half=top,shape=outer_left": { "model": "mmm:deco/stairs/andesite/outer", "x": 180, "y": 90, "uvlock": true },
+        "facing=north,half=top,shape=outer_left": { "model": "mmm:deco/stairs/andesite/outer", "x": 180, "y": 270, "uvlock": true },
+        "facing=east,half=top,shape=inner_right":  { "model": "mmm:deco/stairs/andesite/inner", "x": 180, "y": 90, "uvlock": true },
+        "facing=west,half=top,shape=inner_right":  { "model": "mmm:deco/stairs/andesite/inner", "x": 180, "y": 270, "uvlock": true },
+        "facing=south,half=top,shape=inner_right": { "model": "mmm:deco/stairs/andesite/inner", "x": 180, "y": 180, "uvlock": true },
+        "facing=north,half=top,shape=inner_right": { "model": "mmm:deco/stairs/andesite/inner", "x": 180, "uvlock": true },
+        "facing=east,half=top,shape=inner_left":  { "model": "mmm:deco/stairs/andesite/inner", "x": 180, "uvlock": true },
+        "facing=west,half=top,shape=inner_left":  { "model": "mmm:deco/stairs/andesite/inner", "x": 180, "y": 180, "uvlock": true },
+        "facing=south,half=top,shape=inner_left": { "model": "mmm:deco/stairs/andesite/inner", "x": 180, "y": 90, "uvlock": true },
+        "facing=north,half=top,shape=inner_left": { "model": "mmm:deco/stairs/andesite/inner", "x": 180, "y": 270, "uvlock": true }
+    }
+}
\ No newline at end of file
diff --git a/src/resources/assets/mmm/blockstates/deco/stairs/diorite.json b/src/resources/assets/mmm/blockstates/deco/stairs/diorite.json
new file mode 100644
index 0000000..fc0e609
--- /dev/null
+++ b/src/resources/assets/mmm/blockstates/deco/stairs/diorite.json
@@ -0,0 +1,44 @@
+{
+    "variants": {
+        "facing=east,half=bottom,shape=straight":  { "model": "mmm:deco/stairs/diorite/straight" },
+        "facing=west,half=bottom,shape=straight":  { "model": "mmm:deco/stairs/diorite/straight", "y": 180, "uvlock": true },
+        "facing=south,half=bottom,shape=straight": { "model": "mmm:deco/stairs/diorite/straight", "y": 90, "uvlock": true },
+        "facing=north,half=bottom,shape=straight": { "model": "mmm:deco/stairs/diorite/straight", "y": 270, "uvlock": true },
+        "facing=east,half=bottom,shape=outer_right":  { "model": "mmm:deco/stairs/diorite/outer" },
+        "facing=west,half=bottom,shape=outer_right":  { "model": "mmm:deco/stairs/diorite/outer", "y": 180, "uvlock": true },
+        "facing=south,half=bottom,shape=outer_right": { "model": "mmm:deco/stairs/diorite/outer", "y": 90, "uvlock": true },
+        "facing=north,half=bottom,shape=outer_right": { "model": "mmm:deco/stairs/diorite/outer", "y": 270, "uvlock": true },
+        "facing=east,half=bottom,shape=outer_left":  { "model": "mmm:deco/stairs/diorite/outer", "y": 270, "uvlock": true },
+        "facing=west,half=bottom,shape=outer_left":  { "model": "mmm:deco/stairs/diorite/outer", "y": 90, "uvlock": true },
+        "facing=south,half=bottom,shape=outer_left": { "model": "mmm:deco/stairs/diorite/outer" },
+        "facing=north,half=bottom,shape=outer_left": { "model": "mmm:deco/stairs/diorite/outer", "y": 180, "uvlock": true },
+        "facing=east,half=bottom,shape=inner_right":  { "model": "mmm:deco/stairs/diorite/inner" },
+        "facing=west,half=bottom,shape=inner_right":  { "model": "mmm:deco/stairs/diorite/inner", "y": 180, "uvlock": true },
+        "facing=south,half=bottom,shape=inner_right": { "model": "mmm:deco/stairs/diorite/inner", "y": 90, "uvlock": true },
+        "facing=north,half=bottom,shape=inner_right": { "model": "mmm:deco/stairs/diorite/inner", "y": 270, "uvlock": true },
+        "facing=east,half=bottom,shape=inner_left":  { "model": "mmm:deco/stairs/diorite/inner", "y": 270, "uvlock": true },
+        "facing=west,half=bottom,shape=inner_left":  { "model": "mmm:deco/stairs/diorite/inner", "y": 90, "uvlock": true },
+        "facing=south,half=bottom,shape=inner_left": { "model": "mmm:deco/stairs/diorite/inner" },
+        "facing=north,half=bottom,shape=inner_left": { "model": "mmm:deco/stairs/diorite/inner", "y": 180, "uvlock": true },
+        "facing=east,half=top,shape=straight":  { "model": "mmm:deco/stairs/diorite/straight", "x": 180, "uvlock": true },
+        "facing=west,half=top,shape=straight":  { "model": "mmm:deco/stairs/diorite/straight", "x": 180, "y": 180, "uvlock": true },
+        "facing=south,half=top,shape=straight": { "model": "mmm:deco/stairs/diorite/straight", "x": 180, "y": 90, "uvlock": true },
+        "facing=north,half=top,shape=straight": { "model": "mmm:deco/stairs/diorite/straight", "x": 180, "y": 270, "uvlock": true },
+        "facing=east,half=top,shape=outer_right":  { "model": "mmm:deco/stairs/diorite/outer", "x": 180, "y": 90, "uvlock": true },
+        "facing=west,half=top,shape=outer_right":  { "model": "mmm:deco/stairs/diorite/outer", "x": 180, "y": 270, "uvlock": true },
+        "facing=south,half=top,shape=outer_right": { "model": "mmm:deco/stairs/diorite/outer", "x": 180, "y": 180, "uvlock": true },
+        "facing=north,half=top,shape=outer_right": { "model": "mmm:deco/stairs/diorite/outer", "x": 180, "uvlock": true },
+        "facing=east,half=top,shape=outer_left":  { "model": "mmm:deco/stairs/diorite/outer", "x": 180, "uvlock": true },
+        "facing=west,half=top,shape=outer_left":  { "model": "mmm:deco/stairs/diorite/outer", "x": 180, "y": 180, "uvlock": true },
+        "facing=south,half=top,shape=outer_left": { "model": "mmm:deco/stairs/diorite/outer", "x": 180, "y": 90, "uvlock": true },
+        "facing=north,half=top,shape=outer_left": { "model": "mmm:deco/stairs/diorite/outer", "x": 180, "y": 270, "uvlock": true },
+        "facing=east,half=top,shape=inner_right":  { "model": "mmm:deco/stairs/diorite/inner", "x": 180, "y": 90, "uvlock": true },
+        "facing=west,half=top,shape=inner_right":  { "model": "mmm:deco/stairs/diorite/inner", "x": 180, "y": 270, "uvlock": true },
+        "facing=south,half=top,shape=inner_right": { "model": "mmm:deco/stairs/diorite/inner", "x": 180, "y": 180, "uvlock": true },
+        "facing=north,half=top,shape=inner_right": { "model": "mmm:deco/stairs/diorite/inner", "x": 180, "uvlock": true },
+        "facing=east,half=top,shape=inner_left":  { "model": "mmm:deco/stairs/diorite/inner", "x": 180, "uvlock": true },
+        "facing=west,half=top,shape=inner_left":  { "model": "mmm:deco/stairs/diorite/inner", "x": 180, "y": 180, "uvlock": true },
+        "facing=south,half=top,shape=inner_left": { "model": "mmm:deco/stairs/diorite/inner", "x": 180, "y": 90, "uvlock": true },
+        "facing=north,half=top,shape=inner_left": { "model": "mmm:deco/stairs/diorite/inner", "x": 180, "y": 270, "uvlock": true }
+    }
+}
\ No newline at end of file
diff --git a/src/resources/assets/mmm/blockstates/deco/stairs/granite.json b/src/resources/assets/mmm/blockstates/deco/stairs/granite.json
new file mode 100644
index 0000000..0d09086
--- /dev/null
+++ b/src/resources/assets/mmm/blockstates/deco/stairs/granite.json
@@ -0,0 +1,44 @@
+{
+    "variants": {
+        "facing=east,half=bottom,shape=straight":  { "model": "mmm:deco/stairs/granite/straight" },
+        "facing=west,half=bottom,shape=straight":  { "model": "mmm:deco/stairs/granite/straight", "y": 180, "uvlock": true },
+        "facing=south,half=bottom,shape=straight": { "model": "mmm:deco/stairs/granite/straight", "y": 90, "uvlock": true },
+        "facing=north,half=bottom,shape=straight": { "model": "mmm:deco/stairs/granite/straight", "y": 270, "uvlock": true },
+        "facing=east,half=bottom,shape=outer_right":  { "model": "mmm:deco/stairs/granite/outer" },
+        "facing=west,half=bottom,shape=outer_right":  { "model": "mmm:deco/stairs/granite/outer", "y": 180, "uvlock": true },
+        "facing=south,half=bottom,shape=outer_right": { "model": "mmm:deco/stairs/granite/outer", "y": 90, "uvlock": true },
+        "facing=north,half=bottom,shape=outer_right": { "model": "mmm:deco/stairs/granite/outer", "y": 270, "uvlock": true },
+        "facing=east,half=bottom,shape=outer_left":  { "model": "mmm:deco/stairs/granite/outer", "y": 270, "uvlock": true },
+        "facing=west,half=bottom,shape=outer_left":  { "model": "mmm:deco/stairs/granite/outer", "y": 90, "uvlock": true },
+        "facing=south,half=bottom,shape=outer_left": { "model": "mmm:deco/stairs/granite/outer" },
+        "facing=north,half=bottom,shape=outer_left": { "model": "mmm:deco/stairs/granite/outer", "y": 180, "uvlock": true },
+        "facing=east,half=bottom,shape=inner_right":  { "model": "mmm:deco/stairs/granite/inner" },
+        "facing=west,half=bottom,shape=inner_right":  { "model": "mmm:deco/stairs/granite/inner", "y": 180, "uvlock": true },
+        "facing=south,half=bottom,shape=inner_right": { "model": "mmm:deco/stairs/granite/inner", "y": 90, "uvlock": true },
+        "facing=north,half=bottom,shape=inner_right": { "model": "mmm:deco/stairs/granite/inner", "y": 270, "uvlock": true },
+        "facing=east,half=bottom,shape=inner_left":  { "model": "mmm:deco/stairs/granite/inner", "y": 270, "uvlock": true },
+        "facing=west,half=bottom,shape=inner_left":  { "model": "mmm:deco/stairs/granite/inner", "y": 90, "uvlock": true },
+        "facing=south,half=bottom,shape=inner_left": { "model": "mmm:deco/stairs/granite/inner" },
+        "facing=north,half=bottom,shape=inner_left": { "model": "mmm:deco/stairs/granite/inner", "y": 180, "uvlock": true },
+        "facing=east,half=top,shape=straight":  { "model": "mmm:deco/stairs/granite/straight", "x": 180, "uvlock": true },
+        "facing=west,half=top,shape=straight":  { "model": "mmm:deco/stairs/granite/straight", "x": 180, "y": 180, "uvlock": true },
+        "facing=south,half=top,shape=straight": { "model": "mmm:deco/stairs/granite/straight", "x": 180, "y": 90, "uvlock": true },
+        "facing=north,half=top,shape=straight": { "model": "mmm:deco/stairs/granite/straight", "x": 180, "y": 270, "uvlock": true },
+        "facing=east,half=top,shape=outer_right":  { "model": "mmm:deco/stairs/granite/outer", "x": 180, "y": 90, "uvlock": true },
+        "facing=west,half=top,shape=outer_right":  { "model": "mmm:deco/stairs/granite/outer", "x": 180, "y": 270, "uvlock": true },
+        "facing=south,half=top,shape=outer_right": { "model": "mmm:deco/stairs/granite/outer", "x": 180, "y": 180, "uvlock": true },
+        "facing=north,half=top,shape=outer_right": { "model": "mmm:deco/stairs/granite/outer", "x": 180, "uvlock": true },
+        "facing=east,half=top,shape=outer_left":  { "model": "mmm:deco/stairs/granite/outer", "x": 180, "uvlock": true },
+        "facing=west,half=top,shape=outer_left":  { "model": "mmm:deco/stairs/granite/outer", "x": 180, "y": 180, "uvlock": true },
+        "facing=south,half=top,shape=outer_left": { "model": "mmm:deco/stairs/granite/outer", "x": 180, "y": 90, "uvlock": true },
+        "facing=north,half=top,shape=outer_left": { "model": "mmm:deco/stairs/granite/outer", "x": 180, "y": 270, "uvlock": true },
+        "facing=east,half=top,shape=inner_right":  { "model": "mmm:deco/stairs/granite/inner", "x": 180, "y": 90, "uvlock": true },
+        "facing=west,half=top,shape=inner_right":  { "model": "mmm:deco/stairs/granite/inner", "x": 180, "y": 270, "uvlock": true },
+        "facing=south,half=top,shape=inner_right": { "model": "mmm:deco/stairs/granite/inner", "x": 180, "y": 180, "uvlock": true },
+        "facing=north,half=top,shape=inner_right": { "model": "mmm:deco/stairs/granite/inner", "x": 180, "uvlock": true },
+        "facing=east,half=top,shape=inner_left":  { "model": "mmm:deco/stairs/granite/inner", "x": 180, "uvlock": true },
+        "facing=west,half=top,shape=inner_left":  { "model": "mmm:deco/stairs/granite/inner", "x": 180, "y": 180, "uvlock": true },
+        "facing=south,half=top,shape=inner_left": { "model": "mmm:deco/stairs/granite/inner", "x": 180, "y": 90, "uvlock": true },
+        "facing=north,half=top,shape=inner_left": { "model": "mmm:deco/stairs/granite/inner", "x": 180, "y": 270, "uvlock": true }
+    }
+}
\ No newline at end of file
diff --git a/src/resources/assets/mmm/models/block/deco/stairs/andesite/inner.json b/src/resources/assets/mmm/models/block/deco/stairs/andesite/inner.json
new file mode 100644
index 0000000..de8948e
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/stairs/andesite/inner.json
@@ -0,0 +1,8 @@
+{
+    "parent": "minecraft:block/inner_stairs",
+    "textures": {
+        "bottom": "minecraft:blocks/stone_andesite_smooth",
+        "top": "minecraft:blocks/stone_andesite_smooth",
+        "side": "minecraft:blocks/stone_andesite_smooth"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/stairs/andesite/outer.json b/src/resources/assets/mmm/models/block/deco/stairs/andesite/outer.json
new file mode 100644
index 0000000..c16257a
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/stairs/andesite/outer.json
@@ -0,0 +1,8 @@
+{
+    "parent": "minecraft:block/outer_stairs",
+    "textures": {
+        "bottom": "minecraft:blocks/stone_andesite_smooth",
+        "top": "minecraft:blocks/stone_andesite_smooth",
+        "side": "minecraft:blocks/stone_andesite_smooth"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/stairs/andesite/straight.json b/src/resources/assets/mmm/models/block/deco/stairs/andesite/straight.json
new file mode 100644
index 0000000..4e544ad
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/stairs/andesite/straight.json
@@ -0,0 +1,8 @@
+{
+    "parent": "minecraft:block/stairs",
+    "textures": {
+        "bottom": "minecraft:blocks/stone_andesite_smooth",
+        "top": "minecraft:blocks/stone_andesite_smooth",
+        "side": "minecraft:blocks/stone_andesite_smooth"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/stairs/diorite/inner.json b/src/resources/assets/mmm/models/block/deco/stairs/diorite/inner.json
new file mode 100644
index 0000000..62537d1
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/stairs/diorite/inner.json
@@ -0,0 +1,8 @@
+{
+    "parent": "minecraft:block/inner_stairs",
+    "textures": {
+        "bottom": "minecraft:blocks/stone_diorite_smooth",
+        "top": "minecraft:blocks/stone_diorite_smooth",
+        "side": "minecraft:blocks/stone_diorite_smooth"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/stairs/diorite/outer.json b/src/resources/assets/mmm/models/block/deco/stairs/diorite/outer.json
new file mode 100644
index 0000000..31225f0
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/stairs/diorite/outer.json
@@ -0,0 +1,8 @@
+{
+    "parent": "minecraft:block/outer_stairs",
+    "textures": {
+        "bottom": "minecraft:blocks/stone_diorite_smooth",
+        "top": "minecraft:blocks/stone_diorite_smooth",
+        "side": "minecraft:blocks/stone_diorite_smooth"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/stairs/diorite/straight.json b/src/resources/assets/mmm/models/block/deco/stairs/diorite/straight.json
new file mode 100644
index 0000000..623f603
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/stairs/diorite/straight.json
@@ -0,0 +1,8 @@
+{
+    "parent": "minecraft:block/stairs",
+    "textures": {
+        "bottom": "minecraft:blocks/stone_diorite_smooth",
+        "top": "minecraft:blocks/stone_diorite_smooth",
+        "side": "minecraft:blocks/stone_diorite_smooth"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/stairs/granite/inner.json b/src/resources/assets/mmm/models/block/deco/stairs/granite/inner.json
new file mode 100644
index 0000000..2a977ac
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/stairs/granite/inner.json
@@ -0,0 +1,8 @@
+{
+    "parent": "minecraft:block/inner_stairs",
+    "textures": {
+        "bottom": "minecraft:blocks/stone_granite_smooth",
+        "top": "minecraft:blocks/stone_granite_smooth",
+        "side": "minecraft:blocks/stone_granite_smooth"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/stairs/granite/outer.json b/src/resources/assets/mmm/models/block/deco/stairs/granite/outer.json
new file mode 100644
index 0000000..068c650
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/stairs/granite/outer.json
@@ -0,0 +1,8 @@
+{
+    "parent": "minecraft:block/outer_stairs",
+    "textures": {
+        "bottom": "minecraft:blocks/stone_granite_smooth",
+        "top": "minecraft:blocks/stone_granite_smooth",
+        "side": "minecraft:blocks/stone_granite_smooth"
+    }
+}
diff --git a/src/resources/assets/mmm/models/block/deco/stairs/granite/straight.json b/src/resources/assets/mmm/models/block/deco/stairs/granite/straight.json
new file mode 100644
index 0000000..cf69d28
--- /dev/null
+++ b/src/resources/assets/mmm/models/block/deco/stairs/granite/straight.json
@@ -0,0 +1,8 @@
+{
+    "parent": "minecraft:block/stairs",
+    "textures": {
+        "bottom": "minecraft:blocks/stone_granite_smooth",
+        "top": "minecraft:blocks/stone_granite_smooth",
+        "side": "minecraft:blocks/stone_granite_smooth"
+    }
+}
diff --git a/src/resources/assets/mmm/models/item/deco/stairs/andesite.json b/src/resources/assets/mmm/models/item/deco/stairs/andesite.json
new file mode 100644
index 0000000..5ab0842
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco/stairs/andesite.json
@@ -0,0 +1,3 @@
+{
+	"parent": "mmm:block/deco/stairs/andesite/straight"
+}
\ No newline at end of file
diff --git a/src/resources/assets/mmm/models/item/deco/stairs/diorite.json b/src/resources/assets/mmm/models/item/deco/stairs/diorite.json
new file mode 100644
index 0000000..d87c14f
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco/stairs/diorite.json
@@ -0,0 +1,3 @@
+{
+	"parent": "mmm:block/deco/stairs/diorite/straight"
+}
\ No newline at end of file
diff --git a/src/resources/assets/mmm/models/item/deco/stairs/granite.json b/src/resources/assets/mmm/models/item/deco/stairs/granite.json
new file mode 100644
index 0000000..c1c328a
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/deco/stairs/granite.json
@@ -0,0 +1,3 @@
+{
+	"parent": "mmm:block/deco/stairs/granite/straight"
+}
\ No newline at end of file