Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.81 KB | None | 0 0
  1. package al132.alchemistry.chemistry
  2.  
  3. import com.google.common.collect.ImmutableList
  4. import java.awt.Color
  5.  
  6. /**
  7.  * Created by al132 on 1/22/2017.
  8.  */
  9. object CompoundRegistry {
  10.  
  11.     lateinit var compounds: ImmutableList<Compound>
  12.  
  13.     fun init() {
  14.         compounds = ImmutableList.Builder<Compound>()
  15.                 .add(CompoundDSL.create {
  16.                     isReversible = true
  17.                     name = "cellulose"
  18.                     color = Color.red
  19.                     addComponent { CompoundPair(ElementRegistry.get("carbon")!!, 6) }
  20.                     addComponent { CompoundPair(ElementRegistry.get("hydrogen")!!, 10) }
  21.                     addComponent { CompoundPair(ElementRegistry.get("oxygen")!!, 5) }
  22.                 })
  23.                 .add(CompoundDSL.create {
  24.                     name = "silicon_dioxide"
  25.                     color = Color.yellow
  26.                     isReversible = true
  27.                     addComponent { CompoundPair(ElementRegistry.get("silicon")!!, 1) }
  28.                     addComponent { CompoundPair(ElementRegistry.get("oxygen")!!, 2) }
  29.                 })
  30.                 .add(CompoundDSL.create {
  31.                     name = "potassium_nitrate"
  32.                     color = Color.gray
  33.                     isReversible = true
  34.                     addComponent { CompoundPair(ElementRegistry.get("potassium")!!, 1) }
  35.                     addComponent { CompoundPair(ElementRegistry.get("nitrogen")!!, 1) }
  36.                     addComponent { CompoundPair(ElementRegistry.get("oxygen")!!, 3) }
  37.                 })
  38.  
  39.  
  40.                 .build()
  41.     }
  42.  
  43.     operator fun get(name: String) = compounds.find { it.name == name }
  44.  
  45.     fun getMeta(name: String) = compounds.indexOfFirst { it.name == name } //indexOfFirst returns -1 if none match
  46.  
  47.     fun size(): Int = compounds.size
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement