Sarke
Warlord
Ok... i'm trying to first do something real basic... just a popup when you start the game saying "Hello World" -- and if possible have this toggle by a config file.... It seems EVERYTHING I try to do ends in nothing happening at all...
First thing I did was modify the CustomEventManager file
I added: import CvPAModEventManager to the file
Next I created a PAModEventManager
When I launch the game though...no popup... the entire files are below... am I missing something stupid?
Thanks!
CvCustomEventManager.py
CvPAModEventManager.py
PAMod Config.ini
First thing I did was modify the CustomEventManager file
I added: import CvPAModEventManager to the file
Next I created a PAModEventManager
When I launch the game though...no popup... the entire files are below... am I missing something stupid?
Thanks!
CvCustomEventManager.py
Spoiler :
import CvEventManager
import CvCulturalInfluencesEventManager
import CvCulturalDecayEventManager
import CvEnhancedCultureConquestEventManager
import CvPAModEventManager
class CvCustomEventManager(CvEventManager.CvEventManager, object):
def __init__(self, *args, **kwargs):
super(CvCustomEventManager, self).__init__(*args, **kwargs)
# map the initial EventHandlerMap values into the new data structure
for eventType, eventHandler in self.EventHandlerMap.iteritems():
self.setEventHandler(eventType, eventHandler)
# --> INSERT EVENT HANDLER INITIALIZATION HERE <--
CvCulturalInfluencesEventManager.CvCulturalInfluencesEventManager(self)
CvCulturalDecayEventManager.CvCulturalDecayEventManager(self)
CvEnhancedCultureConquestEventManager.CvEnhancedCultureConquestEventManager(self)
CvPAModEventManager.CvPAModEventManager(self)
def addEventHandler(self, eventType, eventHandler):
"""Adds a handler for the given event type.
A list of supported event types can be found in the initialization
of EventHandlerMap in the CvEventManager class.
"""
self.EventHandlerMap[eventType].append(eventHandler)
def removeEventHandler(self, eventType, eventHandler):
"""Removes a handler for the given event type.
A list of supported event types can be found in the initialization
of EventHandlerMap in the CvEventManager class. It is an error if
the given handler is not found in the list of installed handlers.
"""
self.EventHandlerMap[eventType].remove(eventHandler)
def setEventHandler(self, eventType, eventHandler):
"""Removes all previously installed event handlers for the given
event type and installs a new handler .
A list of supported event types can be found in the initialization
of EventHandlerMap in the CvEventManager class. This method is
primarily useful for overriding, rather than extending, the default
event handler functionality.
"""
self.EventHandlerMap[eventType] = [eventHandler]
def handleEvent(self, argsList):
"""Handles events by calling all installed handlers."""
self.origArgsList = argsList
flagsIndex = len(argsList) - 6
self.bDbg, self.bMultiPlayer, self.bAlt, self.bCtrl, self.bShift, self.bAllowCheats = argsList[flagsIndex:]
eventType = argsList[0]
return {
"kbdEvent": self._handleConsumableEvent,
"mouseEvent": self._handleConsumableEvent,
"OnSave": self._handleOnSaveEvent,
"OnLoad": self._handleOnLoadEvent
}.get(eventType, self._handleDefaultEvent)(eventType, argsList[1:])
def _handleDefaultEvent(self, eventType, argsList):
if self.EventHandlerMap.has_key(eventType):
for eventHandler in self.EventHandlerMap[eventType]:
# the last 6 arguments are for internal use by handleEvent
eventHandler(argsList[:len(argsList) - 6])
def _handleConsumableEvent(self, eventType, argsList):
"""Handles events that can be consumed by the handlers, such as
keyboard or mouse events.
If a handler returns non-zero, processing is terminated, and no
subsequent handlers are invoked.
"""
if self.EventHandlerMap.has_key(eventType):
for eventHandler in self.EventHandlerMap[eventType]:
# the last 6 arguments are for internal use by handleEvent
result = eventHandler(argsList[:len(argsList) - 6])
if (result > 0):
return result
return 0
# TODO: this probably needs to be more complex
def _handleOnSaveEvent(self, eventType, argsList):
"""Handles OnSave events by concatenating the results obtained
from each handler to form an overall consolidated save string.
"""
result = ""
if self.EventHandlerMap.has_key(eventType):
for eventHandler in self.EventHandlerMap[eventType]:
# the last 6 arguments are for internal use by handleEvent
result = result + eventHandler(argsList[:len(argsList) - 6])
return result
# TODO: this probably needs to be more complex
def _handleOnLoadEvent(self, eventType, argsList):
"""Handles OnLoad events."""
return self._handleDefaultEvent(eventType, argsList)
import CvCulturalInfluencesEventManager
import CvCulturalDecayEventManager
import CvEnhancedCultureConquestEventManager
import CvPAModEventManager
class CvCustomEventManager(CvEventManager.CvEventManager, object):
def __init__(self, *args, **kwargs):
super(CvCustomEventManager, self).__init__(*args, **kwargs)
# map the initial EventHandlerMap values into the new data structure
for eventType, eventHandler in self.EventHandlerMap.iteritems():
self.setEventHandler(eventType, eventHandler)
# --> INSERT EVENT HANDLER INITIALIZATION HERE <--
CvCulturalInfluencesEventManager.CvCulturalInfluencesEventManager(self)
CvCulturalDecayEventManager.CvCulturalDecayEventManager(self)
CvEnhancedCultureConquestEventManager.CvEnhancedCultureConquestEventManager(self)
CvPAModEventManager.CvPAModEventManager(self)
def addEventHandler(self, eventType, eventHandler):
"""Adds a handler for the given event type.
A list of supported event types can be found in the initialization
of EventHandlerMap in the CvEventManager class.
"""
self.EventHandlerMap[eventType].append(eventHandler)
def removeEventHandler(self, eventType, eventHandler):
"""Removes a handler for the given event type.
A list of supported event types can be found in the initialization
of EventHandlerMap in the CvEventManager class. It is an error if
the given handler is not found in the list of installed handlers.
"""
self.EventHandlerMap[eventType].remove(eventHandler)
def setEventHandler(self, eventType, eventHandler):
"""Removes all previously installed event handlers for the given
event type and installs a new handler .
A list of supported event types can be found in the initialization
of EventHandlerMap in the CvEventManager class. This method is
primarily useful for overriding, rather than extending, the default
event handler functionality.
"""
self.EventHandlerMap[eventType] = [eventHandler]
def handleEvent(self, argsList):
"""Handles events by calling all installed handlers."""
self.origArgsList = argsList
flagsIndex = len(argsList) - 6
self.bDbg, self.bMultiPlayer, self.bAlt, self.bCtrl, self.bShift, self.bAllowCheats = argsList[flagsIndex:]
eventType = argsList[0]
return {
"kbdEvent": self._handleConsumableEvent,
"mouseEvent": self._handleConsumableEvent,
"OnSave": self._handleOnSaveEvent,
"OnLoad": self._handleOnLoadEvent
}.get(eventType, self._handleDefaultEvent)(eventType, argsList[1:])
def _handleDefaultEvent(self, eventType, argsList):
if self.EventHandlerMap.has_key(eventType):
for eventHandler in self.EventHandlerMap[eventType]:
# the last 6 arguments are for internal use by handleEvent
eventHandler(argsList[:len(argsList) - 6])
def _handleConsumableEvent(self, eventType, argsList):
"""Handles events that can be consumed by the handlers, such as
keyboard or mouse events.
If a handler returns non-zero, processing is terminated, and no
subsequent handlers are invoked.
"""
if self.EventHandlerMap.has_key(eventType):
for eventHandler in self.EventHandlerMap[eventType]:
# the last 6 arguments are for internal use by handleEvent
result = eventHandler(argsList[:len(argsList) - 6])
if (result > 0):
return result
return 0
# TODO: this probably needs to be more complex
def _handleOnSaveEvent(self, eventType, argsList):
"""Handles OnSave events by concatenating the results obtained
from each handler to form an overall consolidated save string.
"""
result = ""
if self.EventHandlerMap.has_key(eventType):
for eventHandler in self.EventHandlerMap[eventType]:
# the last 6 arguments are for internal use by handleEvent
result = result + eventHandler(argsList[:len(argsList) - 6])
return result
# TODO: this probably needs to be more complex
def _handleOnLoadEvent(self, eventType, argsList):
"""Handles OnLoad events."""
return self._handleDefaultEvent(eventType, argsList)
CvPAModEventManager.py
Spoiler :
## Sid Meier's Civilization 4
## Copyright Firaxis Games 2005
from CvPythonExtensions import *
import Popup as PyPopup
import DataStorage
import CvEventManager
import PyHelpers
import CvConfigParser
# globals
gc = CyGlobalContext()
PyPlayer = PyHelpers.PyPlayer
PyGame = PyHelpers.PyGame()
data = DataStorage.DataStorage()
g_bDisplayTurn = true
class CvPAModEventManager:
def __init__(self, eventManager):
global g_bDisplayTurn
config = CvConfigParser.CvConfigParser("PAMod Config.ini")
if(config != None):
g_bDisplayTurn = config.getboolean("PAMod", "Display Message at Start of Turn", True)
if(g_bDisplayTurn):
eventManager.addEventHandler("GameStart", self.onEndGameStart)
def onGameStart(self, argsList):
popup = PyPopup.PyPopup()
popup.setBodyString( 'Hello World' )
popup.launch()
## Copyright Firaxis Games 2005
from CvPythonExtensions import *
import Popup as PyPopup
import DataStorage
import CvEventManager
import PyHelpers
import CvConfigParser
# globals
gc = CyGlobalContext()
PyPlayer = PyHelpers.PyPlayer
PyGame = PyHelpers.PyGame()
data = DataStorage.DataStorage()
g_bDisplayTurn = true
class CvPAModEventManager:
def __init__(self, eventManager):
global g_bDisplayTurn
config = CvConfigParser.CvConfigParser("PAMod Config.ini")
if(config != None):
g_bDisplayTurn = config.getboolean("PAMod", "Display Message at Start of Turn", True)
if(g_bDisplayTurn):
eventManager.addEventHandler("GameStart", self.onEndGameStart)
def onGameStart(self, argsList):
popup = PyPopup.PyPopup()
popup.setBodyString( 'Hello World' )
popup.launch()
PAMod Config.ini
Spoiler :
[PaMod]
; Displays Hello World at Start of Game
Display Message at Start of Turn = True
; Displays Hello World at Start of Game
Display Message at Start of Turn = True