[Avida-cvs] [avida-svn] r877 - in development/source: actions event
brysonda at myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Sat Aug 19 14:37:35 PDT 2006
Author: brysonda
Date: 2006-08-19 17:37:35 -0400 (Sat, 19 Aug 2006)
New Revision: 877
Modified:
development/source/actions/EnvironmentActions.cc
development/source/event/cEventManager.cc
Log:
Transition reaction events into actions framework.
Modified: development/source/actions/EnvironmentActions.cc
===================================================================
--- development/source/actions/EnvironmentActions.cc 2006-08-19 21:29:36 UTC (rev 876)
+++ development/source/actions/EnvironmentActions.cc 2006-08-19 21:37:35 UTC (rev 877)
@@ -91,7 +91,7 @@
if (largs.GetSize()) m_res_percent = largs.PopWord().AsDouble();
}
- const cString GetDescription() { return "OutflowScaledResource <string res_name> <double res_count>"; }
+ const cString GetDescription() { return "OutflowScaledResource <string res_name> <double res_percent>"; }
void Process(cAvidaContext& ctx)
{
@@ -134,17 +134,94 @@
};
+class cActionSetReactionValue : public cAction
+{
+private:
+ cString m_name;
+ double m_value;
+
+public:
+ cActionSetReactionValue(cWorld* world, const cString& args) : cAction(world, args), m_name(""), m_value(0.0)
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_name = largs.PopWord();
+ if (largs.GetSize()) m_value = largs.PopWord().AsDouble();
+ }
+
+ const cString GetDescription() { return "SetReactionValue <string reaction_name> <double value>"; }
+
+ void Process(cAvidaContext& ctx)
+ {
+ m_world->GetEnvironment().SetReactionValue(m_name, m_value);
+ }
+};
+
+class cActionSetReactionValueMult : public cAction
+{
+private:
+ cString m_name;
+ double m_value;
+
+public:
+ cActionSetReactionValueMult(cWorld* world, const cString& args) : cAction(world, args), m_name(""), m_value(0.0)
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_name = largs.PopWord();
+ if (largs.GetSize()) m_value = largs.PopWord().AsDouble();
+ }
+
+ const cString GetDescription() { return "SetReactionValueMult <string reaction_name> <double value>"; }
+
+ void Process(cAvidaContext& ctx)
+ {
+ m_world->GetEnvironment().SetReactionValueMult(m_name, m_value);
+ }
+};
+
+
+class cActionSetReactionInst : public cAction
+{
+private:
+ cString m_name;
+ cString m_inst;
+
+public:
+ cActionSetReactionInst(cWorld* world, const cString& args) : cAction(world, args), m_name(""), m_inst("")
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_name = largs.PopWord();
+ if (largs.GetSize()) m_inst = largs.PopWord();
+ }
+
+ const cString GetDescription() { return "SetReactionInst <string reaction_name> <string inst>"; }
+
+ void Process(cAvidaContext& ctx)
+ {
+ m_world->GetEnvironment().SetReactionInst(m_name, m_inst);
+ }
+};
+
+
+
void RegisterEnvironmentActions(cActionLibrary* action_lib)
{
action_lib->Register<cActionInjectResource>("InjectResource");
action_lib->Register<cActionInjectScaledResource>("InjectScaledResource");
action_lib->Register<cActionOutflowScaledResource>("OutflowScaledResource");
action_lib->Register<cActionSetResource>("SetResource");
-
+
+ action_lib->Register<cActionSetReactionValue>("SetReactionValue");
+ action_lib->Register<cActionSetReactionValueMult>("SetReactionValueMult");
+ action_lib->Register<cActionSetReactionInst>("SetReactionInst");
+
// @DMB - The following actions are DEPRECATED aliases - These will be removed in 2.7.
action_lib->Register<cActionInjectResource>("inject_resource");
action_lib->Register<cActionInjectScaledResource>("inject_scaled_resource");
action_lib->Register<cActionOutflowScaledResource>("outflow_scaled_resource");
action_lib->Register<cActionSetResource>("set_resource");
+
+ action_lib->Register<cActionSetReactionValue>("set_reaction_value");
+ action_lib->Register<cActionSetReactionValueMult>("set_reaction_value_mult");
+ action_lib->Register<cActionSetReactionInst>("set_reaction_inst");
}
Modified: development/source/event/cEventManager.cc
===================================================================
--- development/source/event/cEventManager.cc 2006-08-19 21:29:36 UTC (rev 876)
+++ development/source/event/cEventManager.cc 2006-08-19 21:37:35 UTC (rev 877)
@@ -526,91 +526,6 @@
};
-
-
-///// set_reaction_value /////
-
-/**
-* Set the value associated with a reaction to a specific level
- **/
-class cEvent_set_reaction_value : public cEvent {
-private:
- cString reaction_name;
- double reaction_value;
-public:
- const cString GetName() const { return "set_reaction_value"; }
- const cString GetDescription() const { return "set_reaction_value <cString reaction_name> <double reaction_value>"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- cString args(in_args);
- reaction_name = args.PopWord();
- reaction_value = args.PopWord().AsDouble();
- }
- void Process()
- {
- m_world->GetEnvironment().SetReactionValue(reaction_name, reaction_value);
- }
-};
-
-
-///// set_reaction_value_mult /////
-
-/**
-* Change the value of the reaction by multiplying it with the imput number
- **/
-class cEvent_set_reaction_value_mult : public cEvent {
-private:
- cString reaction_name;
- double value_mult;
-public:
- const cString GetName() const { return "set_reaction_value_mult"; }
- const cString GetDescription() const { return "set_reaction_value_mult <cString reaction_name> <double value_mult>"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- cString args(in_args);
- reaction_name = args.PopWord();
- value_mult = args.PopWord().AsDouble();
- }
- void Process()
- {
- m_world->GetEnvironment().SetReactionValueMult(reaction_name, value_mult);
- }
-};
-
-
-///// set_reaction_inst /////
-
-/**
-* Change the instruction triggered by the task
- **/
-class cEvent_set_reaction_inst : public cEvent {
-private:
- cString reaction_name;
- cString inst_name;
-public:
- const cString GetName() const { return "set_reaction_inst"; }
- const cString GetDescription() const { return "set_reaction_inst <cString reaction_name> <cString inst_name>"; }
-
- void Configure(cWorld* world, const cString& in_args)
- {
- m_world = world;
- m_args = in_args;
- cString args(in_args);
- reaction_name = args.PopWord();
- inst_name = args.PopWord();
- }
- void Process()
- {
- m_world->GetEnvironment().SetReactionInst(reaction_name, inst_name);
- }
-};
-
class cEventAction : public cEvent
{
private:
@@ -650,11 +565,6 @@
REGISTER(join_grid_row);
REGISTER(connect_cells);
REGISTER(disconnect_cells);
-
- // Environment events --> Environment Action
- REGISTER(set_reaction_value);
- REGISTER(set_reaction_value_mult);
- REGISTER(set_reaction_inst);
}
cEvent* cEventManager::ConstructEvent(const cString name, const cString& args)
More information about the Avida-cvs
mailing list