Просто кусочек красивой Scala

necauqua

когда-то был anti344
Администратор
1,216
27
172
Код:
package net.anti344.cbs

import java.io.{DataOutputStream, ByteArrayOutputStream}
import net.anti344.scalanbt._

class Schematic
 extends NBTWriter{

  var width, height, lenght : Int = 0

  private val blocks, metas : Seq[Byte] = Seq()
  private val tiles: Seq[NBTTagCompound] = Seq()

  def compile(): Array[Byte] = {
    val nbt = comp(
      "Width" -> width,
      "Height" -> height,
      "Lenght" -> lenght,
      "Blocks" -> blocks.toArray,
      "Data" -> metas.toArray,
      "TileEntities" -> list(tiles:_*)
    )
    val out = new ByteArrayOutputStream()
    NBT.write(new DataOutputStream(out), nbt, "Schematic")
    out.toByteArray
  }
}
 
1,990
18
105
Внезапно. Ну так, прикольно выглядит, да. Ты меня заставляешь хотет изучать скалу. После конкурса возьмусь.

anti344 написал(а):
Код:
      "Lenght" -> lenght,
Лал. Lenght
 

necauqua

когда-то был anti344
Администратор
1,216
27
172

necauqua

когда-то был anti344
Администратор
1,216
27
172
Код:
package net.anti344.cbs

import java.io.{DataOutputStream, ByteArrayOutputStream}
import scala.collection.mutable.{Map => MMap}
import net.anti344.scalanbt._

class Schematic
 extends NBTWriter{

  var width, height, length : Int = 0

  private val tiles: Seq[NBTTagCompound] = Seq()

  val blocks: MMap[(Int, Int, Int), Byte] = MMap().withDefaultValue(0)
  val metas: MMap[(Int, Int, Int), Byte] = MMap().withDefaultValue(0)

  def compile(): Array[Byte] = {
    val nbt = comp(
      "Width" -> width,
      "Height" -> height,
      "Length" -> length,
      "Blocks" -> bytes(
        for(y <- 0 until height; z <- 0 until length; x <- 0 until width)
          yield blocks(x, y, z)
      ),
      "Data" -> bytes(
        for(y <- 0 until height; z <- 0 until length; x <- 0 until width)
          yield metas(x, y, z)
      ),
      "TileEntities" -> list(tiles:_*)
    )
    val out = new ByteArrayOutputStream()
    NBT.write(new DataOutputStream(out), nbt, "Schematic")
    out.toByteArray
  }
}
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Типа думаю ***Ну щас я заставлю вас всех любить Scala***

Код:
  def processCommand(ics: ICommandSender, args: Array[String]) =
    args match{
      case Array("reload") =>
        Parser.reload()
      case Array("test") =>
        tipaDoTest()
      case Array("add", text) =>
        println(text)
      case _ =>
        ics.addChatMessage(new ChatComponentTranslation("mymod.command.unknown"))
    }
 
176
0
anti344 написал(а):
Типа думаю ***Ну щас я заставлю вас всех любить Scala***

Код:
  def processCommand(ics: ICommandSender, args: Array[String]) =
    args match{
      case Array("reload") =>
        Parser.reload()
      case Array("test") =>
        tipaDoTest()
      case Array("add", text) =>
        println(text)
      case _ =>
        ics.addChatMessage(new ChatComponentTranslation("mymod.command.unknown"))
    }
<sarcasm>
Каки какие-то непонятные. Вот ХЭТЭМЭЛЭ это да. Это язык норм.
</sarcasm>
 
2,955
12
Очень даже понятно и просто. Переходите на нашу сторону.
 
Код:
<?php
if(base.getUser("laz2727") msg.get("drawText(x, y, "Nope.")") {
print "You're doing wrong";
}
?>
[merge_posts_bbcode]Добавлено: 06.08.2014 15:41:10[/merge_posts_bbcode]

Кстати, как думаете, в какой версии кубические чанки добавят? Или есть исходники? Cебе мож запилю...
 
905
5
Global.gameInstance.getCommandManager().execute("draw_text(x,y,'Heck no.')");

Пилят уже. В треде поищи, у меня в подписи.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Majestic, сам ты нечитабельный, все прекрасно понятно, а это вообще офигезный и мощный type matching(switch на стероидах, как написано на офф сайте).

А хетемеле вообще не язык.
 
1,990
18
105
anti344 написал(а):
все прекрасно понятно, а это вообще офигезный и мощный type matching(switch на стероидах, как написано на офф сайте).
Да, выглядит довольно годно.
Всяко лучше очередного чего-нибудь уровня
Код:
System.Windows.getOutputStream().setPrinting(true).println("my text").setPrinting(false);
Ноо я дико рад за лямбды в жаба-8, правда пока не хочу переходить, тут доделаю с анонимными классами, пофиг.
Хотя в Swing'е лямбд ОЧЕНЬ не хватало.
 
200
0
RaVeN_II написал(а):
anti344 написал(а):
Majestic, сам ты нечитабельный, все прекрасно понятно, а это вообще офигезный и мощный type matching(switch на стероидах, как написано на офф сайте).

А хетемеле вообще не язык.
Язык!Но не программирования
Сам только узнал, теперь всем об этом говорит :DD
[merge_posts_bbcode]Добавлено: 07.08.2014 17:23:18[/merge_posts_bbcode]

Vova_master написал(а):
Код:
<?php
if(base.getUser("laz2727") msg.get("drawText(x, y, "Nope.")") {
print "You're doing wrong";
}
?>
[merge_posts_bbcode]Добавлено: 06.08.2014 15:41:10[/merge_posts_bbcode]

Кстати, как думаете, в какой версии кубические чанки добавят? Или есть исходники? Cебе мож запилю...
Что это за пых такой? О.о где нет таких переменных типа $msg? при том в пыхе классы действуют так -> а не точкой. Это что за чёрная магия? О.о
 
104
0
RaVeN_II написал(а):
evan написал(а):
RaVeN_II написал(а):
evan,wot?!То что это язык я уже давно знаю
я про то что это язык не программирования)
OMG
Ну и что? HTML все-равно лишь язык разметки. А всю работу по выдаче контента и динамике страницы выполняют PHP и JS.
 
Сверху