示例#1
0
文件: forge.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("forge", world.Visible((*Forge)(nil)))
	world.RegisterSpawnFunc(func(s string) world.Visible {
		if s == "forge" {
			return &Forge{}
		}
		return nil
	})
}
示例#2
0
文件: door.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("door", world.Visible((*Door)(nil)))
	world.RegisterSpawnFunc(func(s string) world.Visible {
		if s == "door" {
			return &Door{}
		}
		return nil
	})
}
示例#3
0
文件: wall.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("wall", world.Visible((*Wall)(nil)))
	world.RegisterSpawnFunc(WrapSpawnFunc(func(material *Material, s string) world.Visible {
		if s == "wall" {
			return &Wall{
				material: material,
			}
		}
		return nil
	}))
}
示例#4
0
文件: floor.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("floor", world.Visible((*Floor)(nil)))
	world.RegisterSpawnFunc(WrapSpawnFunc(func(material *Material, s string) world.Visible {
		if s == "floor" {
			return &Floor{
				material: material,
			}
		}
		return nil
	}))
}
示例#5
0
文件: hero.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("hero", HeroLike((*Hero)(nil)))

	world.RegisterSpawnFunc(func(s string) world.Visible {
		for i := range raceInfo {
			r := Race(i)
			if r.Name() == s {
				return GenerateHeroRace(rand.New(rand.NewSource(rand.Int63())), r)
			}
		}
		return nil
	})
}
示例#6
0
文件: ingot.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("ingot", world.Visible((*Ingot)(nil)))

	world.RegisterSpawnFunc(WrapSpawnFunc(func(material *Material, s string) world.Visible {
		wood, stone, metal := material.Get()
		if len(wood) != 0 || len(stone) != 0 || len(metal) == 0 {
			return nil
		}
		if s == "ingot" {
			return &Ingot{
				material: material,
			}
		}
		return nil
	}))
}
示例#7
0
文件: equip.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("equip", world.Visible((*Equip)(nil)))

	world.RegisterSpawnFunc(material.WrapSpawnFunc(func(mat *material.Material, s string) world.Visible {
		wood, stone, metal := mat.Get()
		for t := range equippables {
			for i, e := range equippables[t] {
				if e.name == s {
					haveWood := false
					haveStone := false
					haveMetal := false
					for _, c := range e.colors {
						if c == woodColor {
							haveWood = true
						}
						if c == stoneColor {
							haveStone = true
						}
						if c == metalColor {
							haveMetal = true
						}
					}
					if !haveWood && len(wood) != 0 {
						continue
					}
					if !haveStone && len(stone) != 0 {
						continue
					}
					if !haveMetal && len(metal) != 0 {
						continue
					}
					return &Equip{
						slot:      EquipSlot(t),
						kind:      uint64(i),
						materials: []*material.Material{mat},
					}
				}
			}
		}
		return nil
	}))
}
示例#8
0
func init() {
	world.Register("critter", world.Combat((*Critter)(nil)))

	world.RegisterSpawnFunc(func(s string) world.Visible {
		living, s := world.SpawnModules(s)

		for t := CritterType(0); t < critterTypeCount; t++ {
			if s == t.Name() {
				return &Critter{
					CombatObject: world.CombatObject{
						LivingObject: living,
					},
					kind:   t,
					colors: t.GenerateColors(),
				}
			}
		}
		return nil
	})
}
示例#9
0
文件: rock.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("stone", world.Visible((*Stone)(nil)))
}
示例#10
0
文件: tree.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("tree", NodeLike((*Tree)(nil)))
}
示例#11
0
文件: tree.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("logs", world.Visible((*Logs)(nil)))
}
示例#12
0
文件: player.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("player", HeroLike((*Player)(nil)))
}
示例#13
0
文件: player.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("playerinst", world.ObjectLike((*PlayerInstance)(nil)))
}
示例#14
0
文件: player.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("ancestry", world.ObjectLike((*PlayerAncestry)(nil)))
}
示例#15
0
文件: rock.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("rock", NodeLike((*Rock)(nil)))
}
示例#16
0
文件: rock.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("ore", world.Visible((*Ore)(nil)))
}
示例#17
0
文件: slime.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("slime", world.Visible((*Slime)(nil)))
}
示例#18
0
func init() {
	world.Register("mat", world.ObjectLike((*Material)(nil)))
}
示例#19
0
文件: node.go 项目: BenLubar/Rnoadm
func init() {
	world.Register("resnode", NodeLike((*Node)(nil)))
}