From 49274e7e523eca600be26bcc441e13b604e6dfff Mon Sep 17 00:00:00 2001 From: iceiix <43691553+iceiix@users.noreply.github.com> Date: Thu, 14 Jan 2021 16:46:41 -0800 Subject: [PATCH] blocks: add 1.16.1/2+ new blocks/states (#474) Adds _some _new blocks and block states, building on the version- dependent block support added in #469. Notably, fixes grass on 1.16.4. 1.16.1+ (protocol_version >= 735) * Add NetherGoldOre * Add SoulFire * Add SoulSoil, Basalt * Add PolishedBasalt, SoulTorch, SoulWallTorch * Add Chain 1.16.2+ (protocol_version >= 751) * Add Chain axis states --- blocks/src/lib.rs | 92 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/blocks/src/lib.rs b/blocks/src/lib.rs index af70f10..e9a3391 100644 --- a/blocks/src/lib.rs +++ b/blocks/src/lib.rs @@ -714,6 +714,12 @@ define_blocks! { props {}, model { ("minecraft", "coal_ore") }, } + NetherGoldOre { + props {}, + data None, + offsets |protocol_version| { if protocol_version >= 735 { Some(0) } else { None } }, + model { ("minecraft", "nether_gold_ore") }, + } Log { props { variant: TreeVariant = [ @@ -1389,6 +1395,12 @@ define_blocks! { _ => false, }, } + SoulFire { + props {}, + offsets |protocol_version| { if protocol_version >= 735 { Some(0) } else { None } }, + model { ("minecraft", "soul_fire") }, + collision vec![], + } MobSpawner { props {}, material material::NON_SOLID, @@ -2043,6 +2055,58 @@ define_blocks! { Point3::new(1.0, 7.0/8.0, 1.0) )], } + SoulSoil { + props {}, + offsets |protocol_version| { if protocol_version >= 735 { Some(0) } else { None } }, + model { ("minecraft", "soul_soil") }, + } + Basalt { + props { + axis: Axis = [Axis::X, Axis::Y, Axis::Z], + }, + data None, + offsets |protocol_version| { if protocol_version >= 735 { Some( + match axis { + Axis::X => 0, + Axis::Y => 1, + Axis::Z => 2, + _ => unreachable!() + }) } else { None } }, + model { ("minecraft", "basalt") }, + } + PolishedBasalt { + props { + axis: Axis = [Axis::X, Axis::Y, Axis::Z], + }, + data None, + offsets |protocol_version| { if protocol_version >= 735 { Some( + match axis { + Axis::X => 0, + Axis::Y => 1, + Axis::Z => 2, + _ => unreachable!() + }) } else { None } }, + model { ("minecraft", "polished_basalt") }, + } + SoulTorch { + props {}, + data None, + offsets |protocol_version| { if protocol_version >= 735 { Some(0) } else { None } }, + model { ("minecraft", "soul_torch") }, + } + SoulWallTorch { + props { + facing: Direction = [ + Direction::North, + Direction::South, + Direction::West, + Direction::East + ], + }, + data None, + offsets |protocol_version| { if protocol_version >= 735 { Some(facing.offset()) } else { None } }, + model { ("minecraft", "soul_wall_torch") }, + } Glowstone { props {}, material Material { @@ -2328,6 +2392,34 @@ define_blocks! { _ => false, }, } + Chain { + props { + waterlogged: bool = [true, false], + axis: Axis = [Axis::X, Axis::Y, Axis::Z], + }, + data None, + offsets |protocol_version| { + if protocol_version >= 735 { + let o = if waterlogged { 1 } else { 0 }; + if protocol_version >= 751 { + Some(match axis { + Axis::X => 0, + Axis::Y => 1, + Axis::Z => 2, + _ => unreachable!() + } * 2 + o) + } else { + match axis { + Axis::Y => Some(o), + _ => None, + } + } + } else { + None + } + }, + model { ("minecraft", "chain") }, + } GlassPane { props { north: bool = [false, true],