Exemplo n.º 1
0
def setup_android_version():
    vernum = osutil.get_android_version()
    if vernum >= 14: # icecream sandwich causes bug
        features.add_feature("app.disable_android_pause", type=bool, default=True)
    name, version = osutil.get_android_version_info()
    if osutil.is_desktop:
        info_string = 'Desktop'
    else:
        info_string = 'Android %s %s' % (name.capitalize(), version)
    print 'running', info_string, '(code=%s)' % vernum
Exemplo n.º 2
0
def setup_android_version():
    vernum = osutil.get_android_version()
    if vernum >= 14:  # icecream sandwich causes bug
        features.add_feature("app.disable_android_pause",
                             type=bool,
                             default=True)
    name, version = osutil.get_android_version_info()
    if osutil.is_desktop:
        info_string = 'Desktop'
    else:
        info_string = 'Android %s %s' % (name.capitalize(), version)
    print 'running', info_string, '(code=%s)' % vernum
Exemplo n.º 3
0
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

import thread
import save
import os
import osutil
import sys
import time
import features
import gc
import random

features.add_feature('debug.garbage', False, type=bool)
features.add_feature('debug.gc_count', False, type=bool)
features.add_feature('debug.monitor.stop_on_pause', True, type=bool)


def get_save_dir():
    if osutil.is_android:
        return osutil.get_external_storage() + '/saves'
    else:
        return os.path.expanduser('~/.freeciv/android-saves')


def get_mem_usage(process='self'):
    try:
        return int(open('/proc/%s/stat' % process).read().split()[22])
    except IOError:
Exemplo n.º 4
0
import os
import gzip
import features
import subprocess
import atexit
import sys
import stat
import platform

import dropbox

from freeciv.client import _freeciv as freeciv

from monitor import get_save_dir

features.add_feature('app.ruleset', default='classic')
features.add_feature('app.difficulty', default='easy')

# Using fork causes the "Failed to connect to game server" error that happens randomly
# https://stackoverflow.com/questions/6078712/is-it-safe-to-fork-from-within-a-thread#6079669
# https://docs.oracle.com/cd/E19455-01/806-5257/gen-2/index.html
# http://bugs.python.org/issue1336
# https://bugs.python.org/issue6721
features.add_feature('app.fork', type=bool, default=False)

localhost = '127.0.0.1'

def new_game():
    port = random.randint(2000, 15000)
    args = ('-r', './data/%s.serv' % features.get('app.ruleset'))
    gui = ServerGUI()
Exemplo n.º 5
0
import client
import sync
import monitor

import functools
import time
import thread
import random
import os
import gzip
import features
import subprocess

from monitor import get_save_dir

features.add_feature('app.ruleset', default='default')

localhost = '127.0.0.1'

def new_game():
    port = random.randint(2000, 15000)
    args = ('-r', './data/%s.serv' % features.get('app.ruleset'))
    start_server(port, args=args)
    ui.set(ServerGUI(port))

def connect_dialog():
    host = uidialog.inputbox('Server host')
    port = int(uidialog.inputbox('Server port'))
    username = uidialog.inputbox('User name')
    connect(host, port, username)
Exemplo n.º 6
0
import graphics

import sync
import gold

try:
    import json
except ImportError:
    import microjson as json

try:
    from ui import ctrl
except ImportError:
    ctrl = None

features.add_feature('app.debug', default=True, type=bool)
features.add_feature('app.autoupdate', default=True, type=bool)
features.add_feature('app.desktop_size', default='1280,800')
features.add_feature('app.resume', default=False, type=bool)
features.add_feature('app.profile', default=False, type=bool)
features.add_feature('app.shutdown', default=10, type=int)
features.add_feature('app.multiplayer', default=False, type=bool)
features.add_feature('app.marketnotice', default=True, type=bool)
features.add_feature('app.version')
features.add_feature('app.launch_param', default=None)
features.add_feature('app.launch_token', default=None, safe=True)
features.add_feature('app.action', default=None, safe=True)
features.add_feature('app.action_arg', default=None, safe=True)

features.add_feature('debug.remote', default=False, type=bool)
features.add_feature('debug.remote.passphase', default='freeciv1234', type=str)
Exemplo n.º 7
0
    global PROTO
    PROTO = proto

features.set_applier('civsync.host', apply_host_change, default=HOST)
features.set_applier('civsync.proto', apply_proto_change, default=PROTO)

def apply_user_agent_change(ua):
    global USER_AGENT
    USER_AGENT = ua
    # hack, hack, hack
    print 'changing user agent to', ua
    urllib.URLopener.version = ua

features.set_applier('civsync.ua', apply_user_agent_change)
features.set('civsync.ua', 'CivSyncAndroid/1108')
features.add_feature('civsync.enable', False, type=bool)
features.add_feature('civsync.sid', None)

def get_sid():
    sid = features.get('civsync.sid')
    if not sid:
        sid = ''.join( hex(ord(ch))[2:] for ch in os.urandom(8) )
        features.set_perm('civsync.sid', sid)
    return sid

def updates(install_time):
    request('/sync/updates', install_time=install_time)

def get_install_time():
    path = os.path.join(save.get_save_dir(), 'install_time')
    try:
Exemplo n.º 8
0
import osutil
import uidialog
import gamescreen
import ui
import client
import sync
import features
import monitor
import options

from sync import lzma

def new_game():
    save.new_game()

features.add_feature('app.debug', default=True, type=bool)
features.add_feature('app.autoupdate', default=True, type=bool)
features.add_feature('app.forcesize')
features.add_feature('app.resume', default=True, type=bool)
features.add_feature('app.profile', default=False, type=bool)
features.add_feature('app.shutdown', default=10, type=int)
features.add_feature('app.multiplayer', default=False, type=bool)

def apply_hardexit(t):
    client.freeciv.hard_exit = t

features.set_applier('app.hardexit', apply_hardexit, type=bool, default=True)

main_menu = None
main_menu_update_shown = False
Exemplo n.º 9
0
import progress
import save
import osutil
import uidialog
import gamescreen
import ui
import client
import sync
import features
import monitor
import options
import menus

from sync import lzma

features.add_feature('app.debug', default=True, type=bool)
features.add_feature('app.autoupdate', default=True, type=bool)
features.add_feature('app.forcesize')
features.add_feature('app.resume', default=False, type=bool)
features.add_feature('app.profile', default=False, type=bool)
features.add_feature('app.shutdown', default=10, type=int)
features.add_feature('app.multiplayer', default=False, type=bool)
features.add_feature('app.version')

features.add_feature('debug.remote', default=False, type=bool)
features.add_feature('debug.remote.passphase', default='freeciv1234', type=str)
features.add_feature('debug.remote.port', default=15589, type=int)


def apply_hardexit(t):
    client.freeciv.hard_exit = t
Exemplo n.º 10
0
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

import os
import sys
import pygame
import time
import features

features.add_feature("app.disable_android_pause", type=bool, default=False)

try:
    import android
    import pyjni
except ImportError:
    android = None

is_android = bool(android)
is_desktop = not is_android


def init():
    if android:
        android.init()
        android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE)
Exemplo n.º 11
0
    def get_internal_storage():
        return os.path.expanduser('~/.freeciv/android-internal')

else:
    from android import get_internal_storage


import os
import sys
import graphics
import time
import features
from graphics import sdl_open as open_res

features.add_feature('app.emulatedpi', 60, type=int)

if android:
    import jnius
    import reflect as jnius_reflect

is_android = bool(android)
is_desktop = not is_android

def init():
    if android:
        android.map_key(android.KEYCODE_BACK, graphics.const.K_ESCAPE)
        android.map_key(android.KEYCODE_MENU, graphics.const.K_F1)

_jni_initted = False
Exemplo n.º 12
0
import functools
import time
import thread
import random
import os
import gzip
import features
import subprocess
import atexit
import sys

from freeciv.client import _freeciv as freeciv

from monitor import get_save_dir

features.add_feature('app.ruleset', default='default')

localhost = '127.0.0.1'


def new_game():
    port = random.randint(2000, 15000)
    args = ('-r', './data/%s.serv' % features.get('app.ruleset'))
    gui = ServerGUI()
    start_server(port, args=args, line_callback=gui.server_line_callback)
    gui.connect(port)
    ui.set(gui.ui)


class ServerGUI(ui.LinearLayoutWidget):
    def __init__(self, no_quit=False):
Exemplo n.º 13
0
import thread
import random
import os
import gzip
import features
import subprocess
import atexit
import sys

import dropbox

from freeciv.client import _freeciv as freeciv

from monitor import get_save_dir

features.add_feature('app.ruleset', default='default')
features.add_feature('app.fork', type=bool, default=hasattr(os, 'fork'))

localhost = '127.0.0.1'

def new_game():
    port = random.randint(2000, 15000)
    args = ('-r', './data/%s.serv' % features.get('app.ruleset'))
    gui = ServerGUI()
    start_server(port, args=args, line_callback=gui.server_line_callback)
    gui.connect(port)
    ui.set(gui.ui)

class ServerGUI(ui.LinearLayoutWidget):
    def __init__(self, no_quit=False):
        super(ServerGUI, self).__init__()
Exemplo n.º 14
0
import ui
import features
import osutil

from freeciv import sync
import save as _save

import functools

from freeciv.dropbox import get_download_path

if osutil.is_android:
    import reflect as jnius_reflect
    DropboxHelper = None

features.add_feature('civsync.key', None)
features.add_feature('civsync.secret', None)

# Important: all calls to Java need to be done in UI thread
# (execute_later_decorator is for that)


def init():
    print 'DropboxHelper init'
    global DropboxHelper
    if not DropboxHelper:
        DropboxHelper = jnius_reflect.autoclass(
            'com.zielm.freeciv.DropboxHelper')
        print 'initializing DropboxHelper tokens'
        tokenKey = features.get('civsync.key')
        tokenSecret = features.get('civsync.secret')
Exemplo n.º 15
0
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

import ui
import pygame
import client
import math
import time
import features

from client import freeciv

features.add_feature('app.new_joystick', default=True, type=bool)

order_sprites_names = ('auto attack,auto connect,auto explore,'
    'auto settlers,build city,cutdown forest,plant forest,'
    'mine,irrigate,no orders,disband,fortify,goto,goto city,home city,nuke,'
    'paradrop,partol,pillage,railroad,road,sentry,unload,wait,'
    'forterss,fallout,pollutions,airbases,add to city,help build wonder,'
    'none,spy,none,return to,airlift,load'.split(','))

def get_order_sprite(name):
    if name not in order_sprites_names:
        name = 'none'
    i = order_sprites_names.index(name)
    return order_sprites[i][0]

class Menu(ui.LinearLayoutWidget):
Exemplo n.º 16
0
import save
import osutil
import uidialog
import gamescreen
import ui
import client
import features
import monitor
import options
import menus
import graphics

import sync
import gold

features.add_feature("app.debug", default=True, type=bool)
features.add_feature("app.autoupdate", default=True, type=bool)
features.add_feature("app.forcesize")
features.add_feature("app.resume", default=False, type=bool)
features.add_feature("app.profile", default=False, type=bool)
features.add_feature("app.shutdown", default=10, type=int)
features.add_feature("app.multiplayer", default=False, type=bool)
features.add_feature("app.marketnotice", default=True, type=bool)
features.add_feature("app.version")

features.add_feature("debug.remote", default=False, type=bool)
features.add_feature("debug.remote.passphase", default="freeciv1234", type=str)
features.add_feature("debug.remote.port", default=15589, type=int)


def apply_hardexit(t):
Exemplo n.º 17
0
overlays = []

screen_height = 0
screen_width = 0
screen_size = 0, 0

show_fps = False


def set_show_fps(val):
    global show_fps
    show_fps = val


features.set_applier('ui.showfps', set_show_fps, type=bool, default=False)
features.add_feature('ui.enable_anim', type=bool, default=True)


def replace(new_screen):
    global screen
    screen = new_screen


def replace_anim(new_screen, direction=1):
    if features.get('ui.enable_anim'):
        replace(Animation(screen, new_screen, direction))
    else:
        replace(new_screen)


def set(new_screen, anim=True):
Exemplo n.º 18
0
def set_show_fps(val):
    global show_fps
    show_fps = val

def create_window(size):
    graphics.init()
    fullscreen = features.get('ui.fullscreen')
    if fullscreen:
        size = graphics.get_screen_size()
    graphics.create_window(size, fullscreen=fullscreen)
    if features.get('ui.offscreen'):
        graphics.set_offscreen_window(size)

features.set_applier('ui.showfps', set_show_fps, type=bool, default=False)
features.add_feature('ui.enable_anim', type=bool, default=True)
features.add_feature('ui.fps_limit', type=int, default=30)
features.add_feature('ui.redraw_fps_limit', type=int, default=60)
features.add_feature('ui.offscreen', type=bool, default=False)
features.add_feature('ui.fullscreen', type=bool, default=True)

features.add_feature('stream.enable', type=bool, default=False)
features.add_feature('stream.fd', type=int, default=2)

def replace(new_screen):
    assert isinstance(new_screen, ui.Widget)
    global _screen
    _screen = new_screen
    _set_allow_animation(0)

def replace_anim(new_screen, direction=1):
Exemplo n.º 19
0
from client import freeciv

import graphics
import citydlg
import gamemenu
import icons
import features
import diplodialog
import empiredlg
import help
import dropbox
import mapdrawer

SELECT_POPUP = 0

features.add_feature('app.full_label_toggle_button', type=bool)
features.add_feature('app.map_tiles', type=bool, default=False)

class ScreenClient(client.Client):
    def __init__(self, **kwargs):
        client.Client.__init__(self, **kwargs)
        self.turn_loading_dialog = None
        self.init_ui()

    def init_ui(self):
        self.ui = ScreenWidget(self)

    #def console_line(self, line):
    #    self.ui.console.line(line)

    def end_turn(self):
Exemplo n.º 20
0
def set_debug(flag):
    global debug
    debug = flag


debug = False


def make_init_profiling_tuple():
    return [0, 0.0]


_profiling_callback = collections.defaultdict(make_init_profiling_tuple)
_profiling_calls = collections.defaultdict(make_init_profiling_tuple)

features.add_feature('debug.freeciv.print_callbacks', type=bool, default=False)
features.set_applier('debug.freeciv', set_debug, type=bool, default=False)


class _obj:
    pass


func = _obj()
callback = _obj()
const = _obj()

hard_exit = True

callback_num = 0
Exemplo n.º 21
0
def apply_host_change(host):
    print 'using civsync host', host
    civsync.HOST = host


features.set_applier('civsync.host', apply_host_change, default=civsync.HOST)


def apply_user_agent_change(ua):
    civsync.USER_AGENT = ua


features.set_applier('civsync.ua', apply_user_agent_change)
features.set('civsync.ua', 'CivSyncAndroid/1104')
features.add_feature('civsync.enable', False, type=bool)

session = None


def show_load():
    request(show_list, 'list')


def show_list(entries):
    panel = ui.LinearLayoutWidget()
    panel.add(ui.Label('Saves from %s' % civsync.HOST))
    for entry in entries:
        panel.add(
            ui.Button('%s - %dkB' % (entry.name, entry.size / 1024),
                      functools.partial(download_sync, entry.sha1)))
Exemplo n.º 22
0
import ui
from freeciv import sync
from freeciv import help
import osutil
import features
from freeciv import sync

import functools
import microjson as json

features.add_feature('gold.enable', type=bool, default=False)
features.add_feature('gold.initiated', type=bool, default=False)

def set_gold_status(status):
    pass

features.set_applier('gold.status', default='none', func=set_gold_status)
features.add_feature('gold.session_warning', type=bool, default=False)

def menu():
    layout = ui.LinearLayoutWidget(marginleft=10)
    buttons = ui.HorizontalLayoutWidget(spacing=10)
    text_label = help.LongTextWidget('Loading...', ui.screen_width, ui.smallfont)

    layout.add(buttons)
    layout.add(text_label)
    layout.add(buttons)

    ui.async(check_products)

    def text_fetched(text):
Exemplo n.º 23
0
history = []
screen = None
overlays = []

screen_height = 0
screen_width = 0
screen_size = 0, 0

show_fps = False

def set_show_fps(val):
    global show_fps
    show_fps = val

features.set_applier('ui.showfps', set_show_fps, type=bool, default=False)
features.add_feature('ui.enable_anim', type=bool, default=True)

def replace(new_screen):
    global screen
    screen = new_screen

def replace_anim(new_screen, direction=1):
    if features.get('ui.enable_anim'):
        replace(Animation(screen, new_screen, direction))
    else:
        replace(new_screen)

def set(new_screen, anim=True):
    if screen:
        history.append(screen)
        if anim:
Exemplo n.º 24
0
    android = None

    def get_internal_storage():
        return os.path.expanduser('~/.freeciv/android-internal')

else:
    from android import get_internal_storage

import os
import sys
import graphics
import time
import features
from graphics import sdl_open as open_res

features.add_feature('app.emulatedpi', 60, type=int)

if android:
    import jnius
    import reflect as jnius_reflect

is_android = bool(android)
is_desktop = not is_android


def init():
    if android:
        android.map_key(android.KEYCODE_BACK, graphics.const.K_ESCAPE)
        android.map_key(android.KEYCODE_MENU, graphics.const.K_F1)

Exemplo n.º 25
0
# process test set
if utils.ON_KAGGLE:
    test = DSB2019Dataset(mode='test')
    test = preprocess.preprocess_dataset(test)
    X_test, all_test_history = features.generate_features_by_acc(
        test.main_df, win_code, event_code_list, event_id_list, mode='test')
    # for feat_name in feature_mapper.keys():
    #     X_test[feat_name] = X_test['session_title'].map(
    #         feature_mapper[feat_name])
    del test
    gc.collect()
else:
    X_test = utils.load_pickle(test_feat_path)
    all_test_history = utils.load_pickle(all_test_feat_path)

X_test = features.add_feature(X_test, activities_map)
X_test = features.add_agg_feature_test(X_test, all_test_history)
# adjust data
if os.path.exists(input_dir / 'adjust.json'):
    print('adjust !!!')
    adjust_dict = utils.load_json(input_dir / 'adjust.json')
    for key, factor in adjust_dict.items():
        # print(f'{key}: {factor}')
        X_test[key] *= factor

X_test = X_test[all_features]

if config['model_class'] == 'ModelNNRegressor':
    print('preprocessing for nn ...')
    encoder_dict = utils.load_pickle(input_dir / 'encoder_dict.pkl')
    X_test = preprocess.preprocess_for_nn_from_encoder_dict(
Exemplo n.º 26
0
import ui
from freeciv import sync
from freeciv import help
import osutil
import features
from freeciv import sync

import functools
import microjson as json

features.add_feature('gold.enable', type=bool, default=False)
features.add_feature('gold.initiated', type=bool, default=False)


def set_gold_status(status):
    pass


features.set_applier('gold.status', default='none', func=set_gold_status)
features.add_feature('gold.session_warning', type=bool, default=False)


def menu():
    layout = ui.LinearLayoutWidget(marginleft=10)
    buttons = ui.HorizontalLayoutWidget(spacing=10)
    text_label = help.LongTextWidget('Loading...', ui.screen_width,
                                     ui.smallfont)

    layout.add(buttons)
    layout.add(text_label)
    layout.add(buttons)
Exemplo n.º 27
0
import ui
import features
import osutil

from freeciv import sync
import save as _save

import functools

from freeciv.dropbox import get_download_path

if osutil.is_android:
    import reflect as jnius_reflect
    DropboxHelper = None

features.add_feature('civsync.key', None)
features.add_feature('civsync.secret', None)

# Important: all calls to Java need to be done in UI thread
# (execute_later_decorator is for that)

def init():
    print 'DropboxHelper init'
    global DropboxHelper
    if not DropboxHelper:
        DropboxHelper = jnius_reflect.autoclass('com.zielm.freeciv.DropboxHelper')
        print 'initializing DropboxHelper tokens'
        tokenKey = features.get('civsync.key')
        tokenSecret = features.get('civsync.secret')
        DropboxHelper.setTokens(tokenKey, tokenSecret)
        DropboxHelper.init()
Exemplo n.º 28
0
def apply_user_agent_change(ua):
    global USER_AGENT
    USER_AGENT = ua
    # hack, hack, hack
    print 'changing user agent to', ua
    urllib.URLopener.version = ua

features.set_applier('civsync.ua', apply_user_agent_change)

version = 1109
if osutil.is_desktop:
    features.set('civsync.ua', 'CivSyncDesktop/%d' % version)
else:
    features.set('civsync.ua', 'CivSyncAndroid/%d' % version)
features.add_feature('civsync.enable', False, type=bool)
features.add_feature('civsync.sid', None, safe=True)

def get_sid():
    sid = features.get('civsync.sid')
    if not sid:
        sid = ''.join( hex(ord(ch))[2:] for ch in os.urandom(8) )
        features.set_perm('civsync.sid', sid)
    return sid

def updates(install_time):
    request('/sync/updates', install_time=install_time)

def get_install_time():
    path = os.path.join(save.get_save_dir(), 'install_time')
    try:
Exemplo n.º 29
0
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

import ui
import graphics
import client
import math
import time
import features
import functools
import graphics

from freeciv.client import _freeciv as freeciv

features.add_feature('app.new_joystick', default=None, type=bool)
features.add_feature('app.joystick', default=None)

def get_joystick_type():
    sel = features.get('app.joystick')
    if sel:
        return sel
    else:
        new = features.get('app.new_joystick')
        if new == None:
            return 'tile'
        elif new:
            return 'new'
        else:
            return 'old'
Exemplo n.º 30
0
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

import pygame
import freeciv
import features

features.add_feature('ui.fake_max_size')

import osutil
import common
import client


@freeciv.register
def get_overview_window():
    return overview_surface


@freeciv.register
def dirty_all():
    pass
Exemplo n.º 31
0
import osutil
import uidialog
import gamescreen
import ui
import client
import features
import monitor
import options
import menus
import graphics
import ctrl

import sync
import gold

features.add_feature('app.debug', default=True, type=bool)
features.add_feature('app.autoupdate', default=True, type=bool)
features.add_feature('app.forcesize')
features.add_feature('app.resume', default=False, type=bool)
features.add_feature('app.profile', default=False, type=bool)
features.add_feature('app.shutdown', default=10, type=int)
features.add_feature('app.multiplayer', default=False, type=bool)
features.add_feature('app.marketnotice', default=True, type=bool)
features.add_feature('app.version')

features.add_feature('debug.remote', default=False, type=bool)
features.add_feature('debug.remote.passphase', default='freeciv1234', type=str)
features.add_feature('debug.remote.port', default=15589, type=int)

def apply_hardexit(t):
    client.freeciv.hard_exit = t
Exemplo n.º 32
0
import graphics

import sync
import gold

try:
    import json
except ImportError:
    import microjson as json

try:
    from ui import ctrl
except ImportError:
    ctrl = None

features.add_feature('app.debug', default=True, type=bool)
features.add_feature('app.autoupdate', default=True, type=bool)
features.add_feature('app.desktop_size', default='1280,800')
features.add_feature('app.resume', default=False, type=bool)
features.add_feature('app.profile', default=False, type=bool)
features.add_feature('app.shutdown', default=10, type=int)
features.add_feature('app.multiplayer', default=False, type=bool)
features.add_feature('app.marketnotice', default=True, type=bool)
features.add_feature('app.version')
features.add_feature('app.launch_param', default=None)
features.add_feature('app.launch_token', default=None, safe=True)

features.add_feature('debug.remote', default=False, type=bool)
features.add_feature('debug.remote.passphase', default='freeciv1234', type=str)
features.add_feature('debug.remote.port', default=15589, type=int)
Exemplo n.º 33
0
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

import os
import sys
import pygame
import time
import features

features.add_feature("app.disable_android_pause", type=bool, default=False)

try:
    import android
    import pyjni
except ImportError:
    android = None

is_android = bool(android)
is_desktop = not is_android

def init():
    if android:
        android.init()
        android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE)
        android.map_key(android.KEYCODE_MENU, pygame.K_F1)
Exemplo n.º 34
0
import collections
import time

def set_debug(flag):
    global debug
    debug = flag
    
debug = False

def make_init_profiling_tuple():
    return [0, 0.0]

_profiling_callback = collections.defaultdict(make_init_profiling_tuple)
_profiling_calls = collections.defaultdict(make_init_profiling_tuple)

features.add_feature('debug.freeciv.print_callbacks', type=bool, default=False)
features.set_applier('debug.freeciv', set_debug, type=bool, default=False)

class _obj: pass

func = _obj()
callback = _obj()
const = _obj()

hard_exit = True

callback_num = 0

def _callback(funname, *args):
    if debug:
        start_time = time.time()
Exemplo n.º 35
0
from freeciv.client import _freeciv as freeciv

import dialogs
import common
import window
import actions
import diplomacy
import city
import key
import misc

net_socket = -1
client = None
main = None

features.add_feature('debug.outwindow', default=False, type=bool)

class ConnectionError(Exception):
    pass

@freeciv.register
def ui_main():
    freeciv.func.init_things()
    freeciv.func.init_mapcanvas_and_overview()
    main()

def tick():
    pass

@freeciv.register
def ui_init():
Exemplo n.º 36
0
    def get_internal_storage():
        return os.path.expanduser("~/.freeciv/android-internal")


else:
    from android import get_internal_storage


import os
import sys
import graphics
import time
import features
from graphics import sdl_open as open_res

features.add_feature("app.emulatedpi", 60, type=int)

if android:
    import jnius
    import reflect as jnius_reflect

is_android = bool(android)
is_desktop = not is_android


def init():
    if android:
        android.map_key(android.KEYCODE_BACK, graphics.const.K_ESCAPE)
        android.map_key(android.KEYCODE_MENU, graphics.const.K_F1)

Exemplo n.º 37
0
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

import ui
import graphics
import client
import math
import time
import features
import functools
import graphics
import client.actions

from freeciv.client import _freeciv as freeciv

features.add_feature('app.new_joystick', default=None, type=bool)
features.add_feature('app.joystick', default=None)


def get_joystick_type():
    sel = features.get('app.joystick')
    if sel:
        return sel
    else:
        new = features.get('app.new_joystick')
        if new == None:
            return 'tile'
        elif new:
            return 'new'
        else:
            return 'old'
Exemplo n.º 38
0
import features
import ui
import threading
import os
import json
import functools
import graphics
import threading

features.add_feature('ctrl.enable', type=bool, default=False)
features.add_feature('ctrl.fd', type=int, default=0)

_bound_events = {}
_message_available = threading.Condition()
_messages = []

def maybe_init():
    if features.get('ctrl.enable'):
        print 'ctrl enabled (FD=%d)' % features.get('ctrl.fd')
        t = threading.Thread(target=loop)
        t.daemon = True
        t.start()
        ui.idle_hooks.add(idle_sleep)

def idle_sleep(dt):
    with _message_available:
        if dt > 0:
            _message_available.wait(dt)
        for message in _messages:
            process_message(message)
        _messages[:] = []
Exemplo n.º 39
0
import features
import ui
import threading
import os
import json
import functools
import graphics

features.add_feature('ctrl.enable', type=bool, default=False)
features.add_feature('ctrl.fd', type=int, default=0)

def maybe_init():
    if features.get('ctrl.enable'):
        print 'ctrl enabled (FD=%d)' % features.get('ctrl.fd')
        t = threading.Thread(target=loop)
        t.daemon = True
        t.start()

def loop():
    input = os.fdopen(features.get('ctrl.fd'), 'r', 1)
    for line in iter(input.readline, ''):
        message = json.loads(line)
        ui.execute_later(functools.partial(process_message, message))

EVENT_NAMES = [
    'MOUSEBUTTONUP', 'MOUSEBUTTONDOWN',
    'MOUSEMOTION', 'TEXTEDITING', 'TEXTINPUT',
    'QUIT', 'KEYDOWN', 'KEYUP',
]

def process_message(message):
Exemplo n.º 40
0
import thread
import random
import os
import gzip
import features
import subprocess
import atexit
import sys

import dropbox

from freeciv.client import _freeciv as freeciv

from monitor import get_save_dir

features.add_feature('app.ruleset', default='default')
features.add_feature('app.fork', type=bool, default=hasattr(os, 'fork'))

localhost = '127.0.0.1'


def new_game():
    port = random.randint(2000, 15000)
    args = ('-r', './data/%s.serv' % features.get('app.ruleset'))
    gui = ServerGUI()
    start_server(port, args=args, line_callback=gui.server_line_callback)
    gui.connect(port)
    ui.set(gui.ui)


class ServerGUI(ui.LinearLayoutWidget):
Exemplo n.º 41
0
import functools

from client import freeciv

import citydlg
import gamemenu
import icons
import sync
import features
import diplodialog
import empiredlg
import help

SELECT_POPUP = 0

features.add_feature('app.full_label_toggle_button', type=bool)


class ScreenClient(client.Client):
    def __init__(self, **kwargs):
        client.Client.__init__(self, **kwargs)
        self.turn_loading_dialog = None
        self.init_ui()

    def init_ui(self):
        self.ui = ScreenWidget(self)

    #def console_line(self, line):
    #    self.ui.console.line(line)

    def end_turn(self):
Exemplo n.º 42
0
from freeciv import sync
import osutil
from freeciv import help

import save as _save

import time
import functools

if osutil.is_android:
    import jnius
    import reflect as jnius_reflect

    DropboxHelper = None

features.add_feature("civsync.key", None)
features.add_feature("civsync.secret", None)
features.add_feature("civsync.allow_sharing", "none")

# Important: all calls to Java need to be done in UI thread
# (execute_later_decorator is for that)


def init():
    print "DropboxHelper init"
    global DropboxHelper
    if not DropboxHelper:
        DropboxHelper = jnius_reflect.autoclass("com.zielm.freeciv.DropboxHelper")
        print "initializing DropboxHelper tokens"
        tokenKey = features.get("civsync.key")
        tokenSecret = features.get("civsync.secret")
Exemplo n.º 43
0
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

import pygame
import freeciv
import features

features.add_feature('ui.fake_max_size')

import osutil
import common
import client

@freeciv.register
def get_overview_window():
    return overview_surface

@freeciv.register
def dirty_all():
    pass

@freeciv.register
def dirty_rect(x, y, w, h):
Exemplo n.º 44
0
import osutil
import time
import ui
import features
from freeciv import help
import save as _save

features.add_feature('civsync.allow_sharing', 'none')

@ui.execute_later_decorator
def save(path):
    if features.get('civsync.allow_sharing') == 'none':
        return ask_if_sharing_allowed(lambda: save(path))
    name = make_name(path)

    _impl_save(name, path)

class DBButton(ui.Button):
    fg = (0, 0x7E, 0xE5)
    bg = (255, 255, 255, 180)
    color = fg
    active_bg = bg

    def __init__(self, *args, **kwargs):
        ui.Button.__init__(self, *args, **kwargs)
        self._image = ui.load_image('data/dropbox_logo.png')

    def set_text(self, label):
        ui.Button.set_text(self, '     ' + label)

    def draw(self, surf, pos):
Exemplo n.º 45
0
from client import freeciv

import graphics
import citydlg
import gamemenu
import icons
import features
import diplodialog
import empiredlg
import help
import dropbox
import mapdrawer

SELECT_POPUP = 0

features.add_feature('app.full_label_toggle_button', type=bool)
features.add_feature('app.map_tiles', type=bool, default=False)


class ScreenClient(client.Client):
    def __init__(self, **kwargs):
        client.Client.__init__(self, **kwargs)
        self.turn_loading_dialog = None
        self.init_ui()

    def init_ui(self):
        self.ui = ScreenWidget(self)

    #def console_line(self, line):
    #    self.ui.console.line(line)
Exemplo n.º 46
0
import osutil
import time
import ui
import features
from freeciv import help
import save as _save

features.add_feature('civsync.allow_sharing', 'none')


@ui.execute_later_decorator
def save(path):
    if features.get('civsync.allow_sharing') == 'none':
        return ask_if_sharing_allowed(lambda: save(path))
    name = make_name(path)

    _impl_save(name, path)


class DBButton(ui.Button):
    fg = (0, 0x7E, 0xE5)
    bg = (255, 255, 255, 180)
    color = fg
    active_bg = bg

    def __init__(self, *args, **kwargs):
        ui.Button.__init__(self, *args, **kwargs)
        self._image = ui.load_image('data/dropbox_logo.png')

    def set_text(self, label):
        ui.Button.set_text(self, '     ' + label)
Exemplo n.º 47
0
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

import thread
import save
import os
import osutil
import sys
import time
import features
import gc
import random

features.add_feature('debug.garbage', False, type=bool)
features.add_feature('debug.gc_count', False, type=bool)
features.add_feature('debug.monitor.stop_on_pause', True, type=bool)

def get_save_dir():
    if osutil.is_android:
        return osutil.get_external_storage() + '/saves'
    else:
        return os.path.expanduser('~/.freeciv/android-saves')

def get_mem_usage(process='self'):
    try:
        return int(open('/proc/%s/stat' % process).read().split()[22])
    except IOError:
        return -1
Exemplo n.º 48
0
import functools

from client import freeciv

import citydlg
import gamemenu
import icons
import sync
import features
import diplodialog
import empiredlg
import help

SELECT_POPUP = 0

features.add_feature('app.full_label_toggle_button', type=bool)

class ScreenClient(client.Client):
    def __init__(self, **kwargs):
        client.Client.__init__(self, **kwargs)
        self.turn_loading_dialog = None
        self.init_ui()
    
    def init_ui(self):
        self.ui = ScreenWidget(self)
    
    #def console_line(self, line):
    #    self.ui.console.line(line)
    
    def update_meswin(self, lines):
        self.ui.console.clear()
Exemplo n.º 49
0
import ui
import features
import graphics
import time
import zlib
import os
import json
import time
import StringIO

features.add_feature('stream.fd', type=int, default=2)

def init():
    print 'stream enabled (FD=%d)' % features.get('stream.fd')
    ui.draw_hooks.add(run)
    ui.layer_hooks.add(layer_hook)

def write_image(data, size):
    try:
        import Image
    except ImportError:
        from Pillow import Image
    mode = 'RGBA'
    image = Image.frombuffer(mode, size, data, 'raw', mode, 0, 1)
    image.load()

    for format in ['png', 'jpeg']:
        output = StringIO.StringIO()
        image.save(output, format=format)
        content = output.getvalue()
        if len(output.getvalue()) < 500000:
Exemplo n.º 50
0
def apply_host_change(host):
    print "using civsync host", host
    civsync.HOST = host


features.set_applier("civsync.host", apply_host_change, default=civsync.HOST)


def apply_user_agent_change(ua):
    civsync.USER_AGENT = ua


features.set_applier("civsync.ua", apply_user_agent_change)
features.set("civsync.ua", "CivSyncAndroid/1003")
features.add_feature("civsync.enable", False, type=bool)

session = None


def show_load():
    request(show_list, "list")


def show_list(entries):
    panel = ui.LinearLayoutWidget()
    panel.add(ui.Label("Saves from %s" % civsync.HOST))
    for entry in entries:
        panel.add(
            ui.Button("%s - %dkB" % (entry.name, entry.size / 1024), functools.partial(download_sync, entry.sha1))
        )