diff --git a/li/cil/oc/common/block/Delegator.scala b/li/cil/oc/common/block/Delegator.scala index 840deb6a5..faf271cf3 100644 --- a/li/cil/oc/common/block/Delegator.scala +++ b/li/cil/oc/common/block/Delegator.scala @@ -59,7 +59,9 @@ class Delegator[Child <: Delegate](id: Int) extends Block(id, Material.iron) { // Workaround for MC's untyped lists... def add[T](list: util.List[T], value: Any) = list.add(value.asInstanceOf[T]) (0 until subBlocks.length).filter(id => subBlocks(id).showInItemList && subBlocks(id).parent == this). - foreach(id => add(list, new ItemStack(this, 1, id))) + map(new ItemStack(this, 1, _)). + sortBy(_.getUnlocalizedName). + foreach(add(list, _)) } // ----------------------------------------------------------------------- // diff --git a/li/cil/oc/common/item/Delegator.scala b/li/cil/oc/common/item/Delegator.scala index 51df886ba..c10859542 100644 --- a/li/cil/oc/common/item/Delegator.scala +++ b/li/cil/oc/common/item/Delegator.scala @@ -48,8 +48,10 @@ class Delegator(id: Int) extends Item(id) { override def getSubItems(itemId: Int, tab: CreativeTabs, list: util.List[_]) { // Workaround for MC's untyped lists... def add[T](list: util.List[T], value: Any) = list.add(value.asInstanceOf[T]) - (0 until subItems.length).filter(id => subItems(id).showInItemList). - foreach(id => add(list, new ItemStack(this, 1, id))) + (0 until subItems.length).filter(subItems(_).showInItemList). + map(subItems(_).createItemStack()). + sortBy(_.getUnlocalizedName). + foreach(add(list, _)) } // ----------------------------------------------------------------------- //