package net.sourceforge.pain.data.prototype;
import net.sourceforge.pain.data.type.*;
import net.sourceforge.pain.db.*;
import net.sourceforge.pain.util.*;
public final class InteractivePrototype extends Prototype {
/**we see interactive object in space via it's DESC */
public static final int DESC = LAST_BASE_FIELD_INDEX + 1;
/**We can interact with object via one of it's target names*/
public static final int TARGET_LIST = LAST_BASE_FIELD_INDEX + 2;
/**usage example: 'Interactive_Name' tells you..*/
public static final int INTERACTIVE_NAME = 3 + LAST_BASE_FIELD_INDEX;
public static final int NFIELDS = LAST_BASE_FIELD_INDEX + 4;
public final static Class superroles[] = new Class[]{ReceptivePrototype.class};
public InteractivePrototype(PainDB db) {
super(db);
}
public InteractivePrototype() {
}
public Class[] getSuperroles() {
return superroles;
}
public DbClassSchema provideSchema() {
byte types[] = new byte[NFIELDS];
String names[] = new String[NFIELDS];
fillSuperSchema(types, names);
types[DESC] = DbType.STRING;
names[DESC] = "desc";
types[TARGET_LIST] = DbType.ARRAY_OF_STRING;
names[TARGET_LIST] = "target_list";
types[INTERACTIVE_NAME] = DbType.STRING;
names[INTERACTIVE_NAME] = "interactive_name";
return new DbClassSchema(types, names);
}
public void setDesc(String value) {
setString(DESC, value);
}
public void setTargetList(String[] list) {
setStringArray(TARGET_LIST, list);
}
public String getDesc() {
return getString(DESC);
}
public String[] getTargetList() {
return getStringArrayForRead(TARGET_LIST);
}
public Class getPrototypedRoleClass() {
return Interactive.class;
}
public void setInteractiveName(String value) {
setString(INTERACTIVE_NAME, value);
}
public String getInteractiveName() {
return getString(INTERACTIVE_NAME);
}
public String toString() {
return "interactive_name=" + getInteractiveName() + " desc=" + getDesc() + " target_list=" + TargetList.string(getTargetList());
}
}