本文整理汇总了Python中horizons.entities.Entities类的典型用法代码示例。如果您正苦于以下问题:Python Entities类的具体用法?Python Entities怎么用?Python Entities使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Entities类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, gui, db):
super(Session, self).__init__()
self.log.debug("Initing session")
self.gui = gui # main gui, not ingame gui
self.db = db # main db for game data (game.sqlite)
# this saves how often the current game has been saved
self.savecounter = 0
self.is_alive = True
WorldObject.reset()
NamedObject.reset()
#game
self.random = self.create_rng()
self.timer = Timer()
Scheduler.create_instance(self.timer)
self.manager = self.create_manager()
self.view = View(self, (15, 15))
Entities.load(self.db)
self.scenario_eventhandler = ScenarioEventHandler(self) # dummy handler with no events
self.campaign = {}
#GUI
self.gui.session = self
self.ingame_gui = IngameGui(self, self.gui)
self.keylistener = IngameKeyListener(self)
self.display_speed()
self.selected_instances = set()
self.selection_groups = [set()] * 10 # List of sets that holds the player assigned unit groups.
示例2: __init__
def __init__(self, db, rng_seed=None, ingame_gui_class=IngameGui):
super(Session, self).__init__()
assert isinstance(db, horizons.util.uhdbaccessor.UhDbAccessor)
self.log.debug("Initing session")
self.db = db # main db for game data (game.sql)
# this saves how often the current game has been saved
self.savecounter = 0
self.is_alive = True
self._clear_caches()
#game
self.random = self.create_rng(rng_seed)
assert isinstance(self.random, Random)
self.timer = self.create_timer()
Scheduler.create_instance(self.timer)
self.manager = self.create_manager()
self.view = View()
Entities.load(self.db)
self.scenario_eventhandler = ScenarioEventHandler(self) # dummy handler with no events
#GUI
self._ingame_gui_class = ingame_gui_class
self.selected_instances = set()
# List of sets that holds the player assigned unit groups.
self.selection_groups = [set()] * 10
self._old_autosave_interval = None
示例3: generate_random_minimap
def generate_random_minimap(size, parameters):
"""Called as subprocess, calculates minimap data and passes it via string via stdout"""
# called as standalone basically, so init everything we need
from horizons.entities import Entities
from horizons.main import _create_main_db
if not VERSION.IS_DEV_VERSION:
# Hack enable atlases.
# Usually the minimap generator uses single tile files, but in release
# mode these are not available. Therefor we have to hackenable atlases
# for the minimap generation in this case. This forces the game to use
# the correct imageloader
# In normal dev mode + enabled atlases we ignore this and just continue
# to use single tile files instead of atlases for the minimap generation.
# These are always available in dev checkouts
PATHS.DB_FILES = PATHS.DB_FILES + (PATHS.ATLAS_DB_PATH, )
db = _create_main_db()
horizons.globals.db = db
horizons.globals.fife.init_animation_loader(not VERSION.IS_DEV_VERSION)
Entities.load_grounds(db, load_now=False) # create all references
map_file = generate_random_map(*parameters)
world = load_raw_world(map_file)
location = Rect.init_from_topleft_and_size_tuples((0, 0), size)
# communicate via stdout. Sometimes the process seems to print more information, therefore
# we add markers around our data so it's easier for the caller to get to the data.
args = (location, world, Minimap.COLORS['island'], Minimap.COLORS['water'])
data = [(x, y, r, g, b) for (x, y), (r, g, b) in iter_minimap_points_colors(*args)]
print('DATA', json.dumps(data), 'ENDDATA')
示例4: __init__
def __init__(self, db, rng_seed=None):
"""
Unfortunately, right now there is no other way to setup Dummy versions of the GUI,
View etc., unless we want to patch the references in the session module.
"""
super(LivingObject, self).__init__()
self.gui = Dummy()
self.db = db
self.savecounter = 0 # this is a new game.
self.is_alive = True
WorldObject.reset()
NamedObject.reset()
AIPlayer.clear_caches()
# Game
self.current_tick = 0
self.random = self.create_rng(rng_seed)
self.timer = self.create_timer()
Scheduler.create_instance(self.timer)
ExtScheduler.create_instance(Dummy)
self.manager = self.create_manager()
self.view = Dummy()
self.view.renderer = Dummy()
Entities.load(self.db)
self.scenario_eventhandler = Dummy()
self.campaign = {}
self.selected_instances = []
# GUI
self.gui.session = self
self.ingame_gui = Dummy()
GAME_SPEED.TICKS_PER_SECOND = 16
示例5: __init__
def __init__(self, gui, db, rng_seed=None):
super(Session, self).__init__()
assert isinstance(db, horizons.util.uhdbaccessor.UhDbAccessor)
self.log.debug("Initing session")
self.gui = gui # main gui, not ingame gui
self.db = db # main db for game data (game.sql)
# this saves how often the current game has been saved
self.savecounter = 0
self.is_alive = True
self._clear_caches()
#game
self.random = self.create_rng(rng_seed)
assert isinstance(self.random, Random)
self.timer = self.create_timer()
Scheduler.create_instance(self.timer)
self.manager = self.create_manager()
self.view = View(self)
Entities.load(self.db)
self.scenario_eventhandler = ScenarioEventHandler(self) # dummy handler with no events
self.campaign = {}
#GUI
self.gui.session = self
self.ingame_gui = IngameGui(self, self.gui)
self.keylistener = IngameKeyListener(self)
self.coordinates_tooltip = None
self.display_speed()
LastActivePlayerSettlementManager.create_instance(self)
self.status_icon_manager = StatusIconManager(
renderer=self.view.renderer['GenericRenderer'],
layer=self.view.layers[LAYERS.OBJECTS]
)
self.production_finished_icon_manager = None
self.create_production_finished_icon_manager()
self.selected_instances = set()
self.selection_groups = [set() for _ in range(10)] # List of sets that holds the player assigned unit groups.
self._old_autosave_interval = None
示例6: __init__
def __init__(self, gui, db, rng_seed=None):
super(Session, self).__init__()
assert isinstance(gui, Gui)
assert isinstance(db, horizons.util.uhdbaccessor.UhDbAccessor)
self.log.debug("Initing session")
self.gui = gui # main gui, not ingame gui
self.db = db # main db for game data (game.sql)
# this saves how often the current game has been saved
self.savecounter = 0
self.is_alive = True
self.message_bus = MessageBus()
# misc
WorldObject.reset()
NamedComponent.reset()
AIPlayer.clear_caches()
#game
self.random = self.create_rng(rng_seed)
assert isinstance(self.random, Random)
self.timer = self.create_timer()
Scheduler.create_instance(self.timer)
self.manager = self.create_manager()
self.view = View(self)
Entities.load(self.db)
self.scenario_eventhandler = ScenarioEventHandler(self) # dummy handler with no events
self.campaign = {}
#GUI
self.gui.session = self
self.ingame_gui = IngameGui(self, self.gui)
self.keylistener = IngameKeyListener(self)
self.coordinates_tooltip = None
self.display_speed()
LastActivePlayerSettlementManager.create_instance(self)
self.status_icon_manager = StatusIconManager(self)
self.selected_instances = set()
self.selection_groups = [set()] * 10 # List of sets that holds the player assigned unit groups.
示例7: __init__
def __init__(self, db, rng_seed=None):
"""
Unfortunately, right now there is no other way to setup Dummy versions of the GUI,
View etc., unless we want to patch the references in the session module.
"""
super(LivingObject, self).__init__()
self.gui = Dummy()
self.db = db
self.savecounter = 0 # this is a new game.
self.is_alive = True
WorldObject.reset()
NamedComponent.reset()
AIPlayer.clear_caches()
# Game
self.random = self.create_rng(rng_seed)
self.timer = self.create_timer()
Scheduler.create_instance(self.timer)
ExtScheduler.create_instance(Dummy)
self.manager = self.create_manager()
self.view = Dummy()
self.view.renderer = Dummy()
Entities.load(self.db)
self.scenario_eventhandler = Dummy()
self.campaign = {}
self.message_bus = MessageBus()
self.status_icon_manager = StatusIconManager(self)
# GUI
self.gui.session = self
self.ingame_gui = Dummy()
LastActivePlayerSettlementManager.create_instance(self)
self.selected_instances = set()
self.selection_groups = [set()] * 10 # List of sets that holds the player assigned unit groups.
GAME_SPEED.TICKS_PER_SECOND = 16
示例8: generate_random_minimap
def generate_random_minimap(size, parameters):
"""Called as subprocess, calculates minimap data and passes it via string via stdout"""
# called as standalone basically, so init everything we need
from horizons.entities import Entities
from horizons.ext.dummy import Dummy
from horizons.main import _create_main_db
if not VERSION.IS_DEV_VERSION:
# Hack enable atlases.
# Usually the minimap generator uses single tile files, but in release
# mode these are not available. Therefor we have to hackenable atlases
# for the minimap generation in this case. This forces the game to use
# the correct imageloader
# In normal dev mode + enabled atlases we ignore this and just continue
# to use single tile files instead of atlases for the minimap generation.
# These are always available in dev checkouts
PATHS.DB_FILES = PATHS.DB_FILES + (PATHS.ATLAS_DB_PATH, )
db = _create_main_db()
horizons.globals.db = db
horizons.globals.fife.init_animation_loader(not VERSION.IS_DEV_VERSION)
Entities.load_grounds(db, load_now=False) # create all references
map_file = generate_random_map(*parameters)
world = load_raw_world(map_file)
location = Rect.init_from_topleft_and_size_tuples((0, 0), size)
minimap = Minimap(
location,
session=None,
view=None,
world=world,
targetrenderer=Dummy(),
imagemanager=Dummy(),
cam_border=False,
use_rotation=False,
preview=True)
# communicate via stdout
print minimap.dump_data()
示例9: start
#.........这里部分代码省略.........
if client_id is None or len(client_id) == 0:
# We need a new client id
client_id = "".join("-" if c in (8, 13, 18, 23) else \
random.choice("0123456789abcdef") for c in xrange(0, 36))
fife.set_uh_setting("ClientID", client_id)
fife.save_settings()
# Install gui logger, needs to be done before instanciating Gui, otherwise we miss
# the events of the main menu buttons
if command_line_arguments.log_gui:
if command_line_arguments.gui_test:
raise Exception("Logging gui interactions doesn't work when running tests.")
try:
from tests.gui.logger import setup_gui_logger
setup_gui_logger()
except ImportError:
import traceback
traceback.print_exc()
print
print "Gui logging requires code that is only present in the repository and is not being installed."
return False
# GUI tests always run with sound disabled and SDL (so they can run under xvfb).
# Needs to be done before engine is initialized.
if command_line_arguments.gui_test:
fife.engine.getSettings().setRenderBackend('SDL')
fife.set_fife_setting('PlaySounds', False)
ExtScheduler.create_instance(fife.pump)
fife.init()
_modules.gui = Gui()
SavegameManager.init()
from horizons.entities import Entities
Entities.load(db, load_now=False) # create all references
# for preloading game data while in main screen
preload_lock = threading.Lock()
preload_thread = threading.Thread(target=preload_game_data, args=(preload_lock,))
preloading = (preload_thread, preload_lock)
# initalize update checker
from horizons.util.checkupdates import UpdateInfo, check_for_updates, show_new_version_hint
update_info = UpdateInfo()
update_check_thread = threading.Thread(target=check_for_updates, args=(update_info,))
update_check_thread.start()
def update_info_handler(info):
if info.status == UpdateInfo.UNINITIALISED:
ExtScheduler().add_new_object(Callback(update_info_handler, info), info)
elif info.status == UpdateInfo.READY:
show_new_version_hint(_modules.gui, info)
elif info.status == UpdateInfo.INVALID:
pass # couldn't retrieve file or nothing relevant in there
update_info_handler(update_info) # schedules checks by itself
# Singleplayer seed needs to be changed before startup.
if command_line_arguments.sp_seed:
SINGLEPLAYER.SEED = command_line_arguments.sp_seed
# start something according to commandline parameters
startup_worked = True
if command_line_arguments.start_dev_map:
startup_worked = _start_dev_map(command_line_arguments.ai_players, command_line_arguments.human_ai, command_line_arguments.force_player_id)
elif command_line_arguments.start_random_map:
startup_worked = _start_random_map(command_line_arguments.ai_players, command_line_arguments.human_ai, force_player_id=command_line_arguments.force_player_id)
示例10: start
#.........这里部分代码省略.........
print "Gui logging requires code that is only present in the repository and is not being installed."
return False
# GUI tests always run with sound disabled and SDL (so they can run under xvfb).
# Needs to be done before engine is initialized.
if command_line_arguments.gui_test:
horizons.globals.fife.engine.getSettings().setRenderBackend('SDL')
horizons.globals.fife.set_fife_setting('PlaySounds', False)
ExtScheduler.create_instance(horizons.globals.fife.pump)
horizons.globals.fife.init()
if atlas_generator is not None:
atlas_generator.wait()
assert atlas_generator.returncode is not None
if atlas_generator.returncode != 0:
print 'Atlas generation failed. Continuing without atlas support.'
print 'This just means that the game will run a bit slower.'
print 'It will still run fine unless there are other problems.'
print
GFX.USE_ATLASES = False
else:
GFX.USE_ATLASES = True
PATHS.DB_FILES = PATHS.DB_FILES + (PATHS.ATLAS_DB_PATH, )
elif not VERSION.IS_DEV_VERSION and horizons.globals.fife.get_uh_setting('AtlasesEnabled'):
GFX.USE_ATLASES = True
PATHS.DB_FILES = PATHS.DB_FILES + (PATHS.ATLAS_DB_PATH, )
horizons.globals.db = _create_main_db()
horizons.globals.fife.init_animation_loader(GFX.USE_ATLASES)
_modules.gui = Gui()
SavegameManager.init()
from horizons.entities import Entities
Entities.load(horizons.globals.db, load_now=False) # create all references
# for preloading game data while in main screen
preload_lock = threading.Lock()
preload_thread = threading.Thread(target=preload_game_data, args=(preload_lock,))
preloading = (preload_thread, preload_lock)
# Singleplayer seed needs to be changed before startup.
if command_line_arguments.sp_seed:
SINGLEPLAYER.SEED = command_line_arguments.sp_seed
SINGLEPLAYER.FREEZE_PROTECTION = command_line_arguments.freeze_protection
# start something according to commandline parameters
startup_worked = True
if command_line_arguments.start_dev_map:
startup_worked = _start_map('development', command_line_arguments.ai_players,
force_player_id=command_line_arguments.force_player_id, is_map=True)
elif command_line_arguments.start_random_map:
startup_worked = _start_random_map(command_line_arguments.ai_players, force_player_id=command_line_arguments.force_player_id)
elif command_line_arguments.start_specific_random_map is not None:
startup_worked = _start_random_map(command_line_arguments.ai_players,
seed=command_line_arguments.start_specific_random_map, force_player_id=command_line_arguments.force_player_id)
elif command_line_arguments.start_map is not None:
startup_worked = _start_map(command_line_arguments.start_map, command_line_arguments.ai_players,
force_player_id=command_line_arguments.force_player_id, is_map=True)
elif command_line_arguments.start_scenario is not None:
startup_worked = _start_map(command_line_arguments.start_scenario, 0, True, force_player_id=command_line_arguments.force_player_id)
elif command_line_arguments.load_game is not None:
startup_worked = _load_cmd_map(command_line_arguments.load_game, command_line_arguments.ai_players,
command_line_arguments.force_player_id)
elif command_line_arguments.load_quicksave is not None:
startup_worked = _load_last_quicksave()
示例11: init_environment
init_environment(True)
import horizons.main
from horizons.constants import UNITS, BUILDINGS, TIER
from horizons.scenario.actions import ACTIONS
from horizons.scenario.conditions import CONDITIONS
db = horizons.main._create_main_db()
# we also need to load entities to get access to the yaml data
from horizons.extscheduler import ExtScheduler
from horizons.component.storagecomponent import StorageComponent
from horizons.entities import Entities
from tests.dummy import Dummy
ExtScheduler.create_instance(Dummy()) # sometimes needed by entities in subsequent calls
Entities.load_buildings(db, load_now=True)
Entities.load_units(load_now=True)
building_name_mapping = dict((b.id, b.name) for b in Entities.buildings.itervalues())
unit_name_mapping = dict((u.id, u.name) for u in Entities.units.itervalues())
def get_obj_name(obj):
global db
if obj < UNITS.DIFFERENCE_BUILDING_UNIT_ID:
return db("SELECT name FROM building where id = ?", obj)[0][0]
else:
return unit_name_mapping[obj]
def get_res_name(res):
示例12: start
#.........这里部分代码省略.........
# set MAX_TICKS
if command_line_arguments.max_ticks:
GAME.MAX_TICKS = command_line_arguments.max_ticks
horizons.globals.db = _create_main_db()
# init game parts
# Install gui logger, needs to be done before instantiating Gui, otherwise we miss
# the events of the main menu buttons
if command_line_arguments.log_gui:
if command_line_arguments.gui_test:
raise Exception("Logging gui interactions doesn't work when running tests.")
try:
from tests.gui.logger import setup_gui_logger
setup_gui_logger()
except ImportError:
traceback.print_exc()
print
print "Gui logging requires code that is only present in the repository and is not being installed."
return False
# GUI tests always run with sound disabled and SDL (so they can run under xvfb).
# Needs to be done before engine is initialized.
if command_line_arguments.gui_test:
horizons.globals.fife.engine.getSettings().setRenderBackend('SDL')
horizons.globals.fife.set_fife_setting('PlaySounds', False)
ExtScheduler.create_instance(horizons.globals.fife.pump)
horizons.globals.fife.init()
_modules.gui = Gui()
SavegameManager.init()
from horizons.entities import Entities
Entities.load(horizons.globals.db, load_now=False) # create all references
# for preloading game data while in main screen
preload_lock = threading.Lock()
preload_thread = threading.Thread(target=preload_game_data, args=(preload_lock,))
preloading = (preload_thread, preload_lock)
# Singleplayer seed needs to be changed before startup.
if command_line_arguments.sp_seed:
SINGLEPLAYER.SEED = command_line_arguments.sp_seed
# start something according to commandline parameters
startup_worked = True
if command_line_arguments.start_dev_map:
startup_worked = _start_dev_map(command_line_arguments.ai_players, command_line_arguments.human_ai, command_line_arguments.force_player_id)
elif command_line_arguments.start_random_map:
startup_worked = _start_random_map(command_line_arguments.ai_players, command_line_arguments.human_ai, force_player_id=command_line_arguments.force_player_id)
elif command_line_arguments.start_specific_random_map is not None:
startup_worked = _start_random_map(command_line_arguments.ai_players, command_line_arguments.human_ai,
seed=command_line_arguments.start_specific_random_map, force_player_id=command_line_arguments.force_player_id)
elif command_line_arguments.start_map is not None:
startup_worked = _start_map(command_line_arguments.start_map, command_line_arguments.ai_players,
command_line_arguments.human_ai, force_player_id=command_line_arguments.force_player_id)
elif command_line_arguments.start_scenario is not None:
startup_worked = _start_map(command_line_arguments.start_scenario, 0, False, True, force_player_id=command_line_arguments.force_player_id)
elif command_line_arguments.start_campaign is not None:
startup_worked = _start_campaign(command_line_arguments.start_campaign, force_player_id=command_line_arguments.force_player_id)
elif command_line_arguments.load_map is not None:
startup_worked = _load_map(command_line_arguments.load_map, command_line_arguments.ai_players,
command_line_arguments.human_ai, command_line_arguments.force_player_id)
elif command_line_arguments.load_quicksave is not None:
startup_worked = _load_last_quicksave()
示例13: start
#.........这里部分代码省略.........
window.update()
time.sleep(0.1)
window.destroy()
except Tkinter.TclError:
# catch #2298
atlas_loading_thread.join()
except ImportError:
# tkinter or PIL may be missing
atlas_loading_thread.join()
# init game parts
if not setup_gui_logger(command_line_arguments):
return False
# GUI tests always run with sound disabled and SDL (so they can run under xvfb).
# Needs to be done before engine is initialized.
if command_line_arguments.gui_test:
horizons.globals.fife.engine.getSettings().setRenderBackend("SDL")
horizons.globals.fife.set_fife_setting("PlaySounds", False)
ExtScheduler.create_instance(horizons.globals.fife.pump)
horizons.globals.fife.init()
if not VERSION.IS_DEV_VERSION and horizons.globals.fife.get_uh_setting("AtlasesEnabled"):
GFX.USE_ATLASES = True
PATHS.DB_FILES = PATHS.DB_FILES + (PATHS.ATLAS_DB_PATH,)
horizons.globals.db = _create_main_db()
_modules.gui = Gui()
SavegameManager.init()
horizons.globals.fife.init_animation_loader(GFX.USE_ATLASES)
from horizons.entities import Entities
Entities.load(horizons.globals.db, load_now=False) # create all references
# for preloading game data while in main screen
preload_thread = threading.Thread(target=preload_game_data, args=(preload_lock,))
preloading = (preload_thread, preload_lock)
# Singleplayer seed needs to be changed before startup.
if command_line_arguments.sp_seed:
SINGLEPLAYER.SEED = command_line_arguments.sp_seed
SINGLEPLAYER.FREEZE_PROTECTION = command_line_arguments.freeze_protection
# start something according to commandline parameters
startup_worked = True
if command_line_arguments.start_dev_map:
startup_worked = _start_map(
"development",
command_line_arguments.ai_players,
force_player_id=command_line_arguments.force_player_id,
is_map=True,
)
elif command_line_arguments.start_random_map:
startup_worked = _start_random_map(
command_line_arguments.ai_players, force_player_id=command_line_arguments.force_player_id
)
elif command_line_arguments.start_specific_random_map is not None:
startup_worked = _start_random_map(
command_line_arguments.ai_players,
seed=command_line_arguments.start_specific_random_map,
force_player_id=command_line_arguments.force_player_id,
)
elif command_line_arguments.start_map is not None:
示例14: start
def start(_command_line_arguments):
"""Starts the horizons. Will drop you to the main menu.
@param _command_line_arguments: options object from optparse.OptionParser. see run_uh.py.
"""
global debug, preloading, command_line_arguments
command_line_arguments = _command_line_arguments
# NOTE: globals are designwise the same thing as singletons. they don't look pretty.
# here, we only have globals that are either trivial, or only one instance may ever exist.
from engine import Fife
# handle commandline globals
debug = command_line_arguments.debug
if command_line_arguments.restore_settings:
# just delete the file, Settings ctor will create a new one
os.remove( PATHS.USER_CONFIG_FILE )
if command_line_arguments.mp_master:
try:
mpieces = command_line_arguments.mp_master.partition(':')
NETWORK.SERVER_ADDRESS = mpieces[0]
# only change port if port is specified
if mpieces[2]:
NETWORK.SERVER_PORT = parse_port(mpieces[2])
except ValueError:
print "Error: Invalid syntax in --mp-master commandline option. Port must be a number between 1 and 65535."
return False
# init fife before mp_bind is parsed, since it's needed there
horizons.globals.fife = Fife()
if command_line_arguments.generate_minimap: # we've been called as subprocess to generate a map preview
from horizons.gui.modules.singleplayermenu import generate_random_minimap
generate_random_minimap( * json.loads(
command_line_arguments.generate_minimap
) )
sys.exit(0)
if debug: # also True if a specific module is logged (but not 'fife')
setup_debug_mode(command_line_arguments)
if horizons.globals.fife.get_uh_setting("DebugLog"):
set_debug_log(True, startup=True)
if command_line_arguments.mp_bind:
try:
mpieces = command_line_arguments.mp_bind.partition(':')
NETWORK.CLIENT_ADDRESS = mpieces[0]
horizons.globals.fife.set_uh_setting("NetworkPort", parse_port(mpieces[2]))
except ValueError:
print "Error: Invalid syntax in --mp-bind commandline option. Port must be a number between 1 and 65535."
return False
setup_AI_settings(command_line_arguments)
# set MAX_TICKS
if command_line_arguments.max_ticks:
GAME.MAX_TICKS = command_line_arguments.max_ticks
preload_lock = threading.Lock()
atlas_loading_thread = None
atlas_loading_thread = AtlasLoadingThread(preload_lock, command_line_arguments)
atlas_loading_thread.start()
atlas_loading_thread.join()
# init game parts
if not setup_gui_logger(command_line_arguments):
return False
# GUI tests always run with sound disabled and SDL (so they can run under xvfb).
# Needs to be done before engine is initialized.
if command_line_arguments.gui_test:
horizons.globals.fife.engine.getSettings().setRenderBackend('SDL')
horizons.globals.fife.set_fife_setting('PlaySounds', False)
ExtScheduler.create_instance(horizons.globals.fife.pump)
horizons.globals.fife.init()
if not VERSION.IS_DEV_VERSION and horizons.globals.fife.get_uh_setting('AtlasesEnabled'):
GFX.USE_ATLASES = True
PATHS.DB_FILES = PATHS.DB_FILES + (PATHS.ATLAS_DB_PATH, )
horizons.globals.db = _create_main_db()
_modules.gui = Gui()
SavegameManager.init()
horizons.globals.fife.init_animation_loader(GFX.USE_ATLASES)
from horizons.entities import Entities
Entities.load(horizons.globals.db, load_now=False) # create all references
# for preloading game data while in main screen
preload_thread = threading.Thread(target=preload_game_data, args=(preload_lock,))
preloading = (preload_thread, preload_lock)
# Singleplayer seed needs to be changed before startup.
if command_line_arguments.sp_seed:
SINGLEPLAYER.SEED = command_line_arguments.sp_seed
SINGLEPLAYER.FREEZE_PROTECTION = command_line_arguments.freeze_protection
#.........这里部分代码省略.........