Пример #1
0
def _setup_camp(m):

    cfire=m.make('campfire',pos=(100,-50,settlement_height))
    m.make('fire',pos=(0,0,0),parent=cfire.id)

    cfire=m.make('campfire',pos=(90,-50,settlement_height))
    m.make('fire',pos=(0,0,0),parent=cfire.id)

    for i in range(10, 350, 5):
        direction=Vector3D(sin(radians(i)) * uniform(0,2),
                           cos(radians(i)) * uniform(0,2), 10).unit_vector()
        orient=Quaternion(Vector3D(0, 1, 0), direction)
        m.make('stake', pos=(100 + 14 * sin(radians(i)),
                             -50 + 16 * cos(radians(i)), -1),
               bbox=[-0.5,-0.5,0,0.5,0.5,5 + uniform(0,2)],
               orientation=orient.as_list())
        
    camp_area_points=[]
    for i in range(10, 350, 17):
        camp_area_points.append([14 * sin(radians(i)), 16 * cos(radians(i))])
    camp_area={'shape': {'points': camp_area_points, 'type': 'polygon'},
               'layer': 7 }
    m.make('path', name='camp_area', pos=camp_pos, area=camp_area,
           bbox=[-14, -16, 0, 14, 16, 1],
           spawn={'name': 'goblin village',
                  'character_types': ['goblin'],
                  'contains': ['shirt', 'pants', 'cloak', 'boots', 'hat']})
Пример #2
0
def _setup_camp(m):

    cfire=m.make('campfire',pos=(100,-50,settlement_height))
    m.make('fire',pos=(0,0,0),parent=cfire.id)

    cfire=m.make('campfire',pos=(90,-50,settlement_height))
    m.make('fire',pos=(0,0,0),parent=cfire.id)

    for i in range(10, 350, 5):
        direction=Vector3D(sin(radians(i)) * uniform(0,2),
                           cos(radians(i)) * uniform(0,2), 10).unit_vector()
        orient=Quaternion(Vector3D(0,0,1), direction)
        m.make('stake', pos=(100 + 14 * sin(radians(i)),
                             -50 + 16 * cos(radians(i)), -1),
               bbox=[-0.5,-0.5,0,0.5,0.5,5 + uniform(0,2)],
               orientation=orient.as_list())
        
    camp_area_points=[]
    for i in range(10, 350, 17):
        camp_area_points.append([14 * sin(radians(i)), 16 * cos(radians(i))])
    camp_area={'shape': {'points': camp_area_points, 'type': 'polygon'},
               'layer': 7 }
    m.make('path', name='camp_area', pos=camp_pos, area=camp_area,
           bbox=[-14, -16, 0, 14, 16, 1],
           spawn={'name': 'goblin village',
                  'character_types': ['goblin'],
                  'contains': ['shirt', 'trousers', 'cloak', 'boots', 'hat']})
Пример #3
0
def _setup_camp(m):

    cfire = m.make("campfire", pos=(100, -50, settlement_height))
    m.make("fire", pos=(0, 0, 0), parent=cfire.id)

    cfire = m.make("campfire", pos=(90, -50, settlement_height))
    m.make("fire", pos=(0, 0, 0), parent=cfire.id)

    for i in range(10, 350, 5):
        direction = Vector3D(sin(radians(i)) * uniform(0, 2), cos(radians(i)) * uniform(0, 2), 10).unit_vector()
        orient = Quaternion(Vector3D(0, 0, 1), direction)
        m.make(
            "stake",
            pos=(100 + 14 * sin(radians(i)), -50 + 16 * cos(radians(i)), -1),
            bbox=[-0.5, -0.5, 0, 0.5, 0.5, 5 + uniform(0, 2)],
            orientation=orient.as_list(),
        )

    camp_area_points = []
    for i in range(10, 350, 17):
        camp_area_points.append([14 * sin(radians(i)), 16 * cos(radians(i))])
    camp_area = {"shape": {"points": camp_area_points, "type": "polygon"}, "layer": 7}
    m.make(
        "path",
        name="camp_area",
        pos=camp_pos,
        area=camp_area,
        bbox=[-14, -16, 0, 14, 16, 1],
        spawn={
            "name": "goblin village",
            "character_types": ["goblin"],
            "contains": ["shirt", "trousers", "cloak", "boots", "hat"],
        },
    )
Пример #4
0
def _add_obstacles(m):
    for i in range(0, num_obstacles):
        xpos = uniform(xmin, xmax)
        ypos = uniform(ymin, ymax)

        orient = Quaternion(Vector3D(0, 1, 0), uniform(0, pi * 2.0))

        m.make('stone_palisade', pos=(xpos, ypos, defaultZ), orientation=orient.as_list())
Пример #5
0
def _add_agents(m):
    for i in range(0, num_humans):
        xpos = uniform(xmin, xmax)
        ypos = uniform(ymin, ymax)

        orient = Quaternion(Vector3D(0, 0, 1), uniform(0, pi * 2.0))

        h = m.make('human', pos=(xpos, ypos, defaultZ), orientation=orient.as_list())

        m.know(h, [('w1', 'location', (uniform(xmin, xmax), uniform(ymin, ymax), defaultZ))
            , ('w2', 'location', (uniform(xmin, xmax), uniform(ymin, ymax), defaultZ))
            , ('w3', 'location', (uniform(xmin, xmax), uniform(ymin, ymax), defaultZ))
            , ('w4', 'location', (uniform(xmin, xmax), uniform(ymin, ymax), defaultZ))])
        m.learn(h, [(il.patrol, "patrol(['w1', 'w2', 'w3', 'w4'])")])