├── .gitignore ├── README.md ├── ScriptEase2.7.zip ├── ScriptEase2.8.zip ├── StandardCplusplusMaster.zip ├── Tutorials ├── Hack-E-BotMakingyourRobotMove.docx ├── LibraryTutorials.docx ├── Neverwinter Nights │ ├── NWN Tutorial 0.docx │ ├── NWN Tutorial 1.docx │ ├── NWN Tutorial 2.docx │ ├── NWN Tutorial 3.docx │ ├── NWN Tutorial 4.docx │ ├── NWN Tutorial 5.docx │ └── NWN Tutorial 6.docx ├── README.txt ├── ScriptEaseIITranslatorInstructions.docx └── Unity │ ├── Unity Tutorial 1.pdf │ ├── Unity Tutorial 2.pdf │ ├── Unity Tutorial 3.pdf │ ├── Unity Tutorial 4.pdf │ └── Unity Tutorial 5.pdf ├── build.xml ├── buildandinstalltranslators.bash ├── commonBuild.xml ├── installer ├── SE_2012_installerscript.iss ├── SE_II_installerscript.iss ├── java.ico └── nwnse1.ico ├── installtranslators.bash ├── mailingLists.properties ├── scriptease2 └── scriptease │ ├── ScriptEase.java │ ├── controller │ ├── BindingAdapter.java │ ├── BindingVisitor.java │ ├── FileManager.java │ ├── FragmentAdapter.java │ ├── FragmentVisitor.java │ ├── ModelAdapter.java │ ├── ModelVisitor.java │ ├── MouseForwardingAdapter.java │ ├── ScopeVisitor.java │ ├── StoryAdapter.java │ ├── StoryComponentUtils.java │ ├── StoryMetrics.java │ ├── StoryVisitor.java │ ├── exceptionhandler │ │ └── ScriptEaseExceptionHandler.java │ ├── groupvisitor │ │ ├── GroupVisitor.java │ │ ├── SameBindingGroupVisitor.java │ │ └── SameNameGroupVisitor.java │ ├── io │ │ ├── FileIO.java │ │ ├── XMLAttribute.java │ │ ├── XMLNode.java │ │ └── converter │ │ │ ├── IdentityArrayListConverter.java │ │ │ ├── fragment │ │ │ ├── FormatDefinitionFragmentConverter.java │ │ │ ├── FormatReferenceFragmentConverter.java │ │ │ ├── IndentedFragmentConverter.java │ │ │ ├── LineFragmentConverter.java │ │ │ ├── LiteralFragmentConverter.java │ │ │ ├── ScopeFragmentConverter.java │ │ │ ├── SeriesFragmentConverter.java │ │ │ └── SimpleDataFragmentConverter.java │ │ │ ├── model │ │ │ ├── DescribeItConverter.java │ │ │ ├── DescribeItNodeConverter.java │ │ │ ├── DialogueLineConverter.java │ │ │ ├── GameTypeConverter.java │ │ │ ├── LanguageDictionaryConverter.java │ │ │ ├── LibraryModelConverter.java │ │ │ ├── SlotConverter.java │ │ │ └── StoryModelConverter.java │ │ │ └── storycomponent │ │ │ ├── ActivityItConverter.java │ │ │ ├── AskItConverter.java │ │ │ ├── CauseItConverter.java │ │ │ ├── CodeBlockReferenceConverter.java │ │ │ ├── CodeBlockSourceConverter.java │ │ │ ├── ComplexStoryComponentConverter.java │ │ │ ├── ControlItConverter.java │ │ │ ├── KnowItBindingConverter.java │ │ │ ├── KnowItConverter.java │ │ │ ├── NoteConverter.java │ │ │ ├── PickItConverter.java │ │ │ ├── ScriptItConverter.java │ │ │ ├── StoryComponentContainerConverter.java │ │ │ ├── StoryComponentConverter.java │ │ │ ├── StoryGroupConverter.java │ │ │ ├── StoryNodeConverter.java │ │ │ ├── StoryPointConverter.java │ │ │ └── behaviour │ │ │ ├── BehaviourConverter.java │ │ │ ├── CollaborativeTaskConverter.java │ │ │ ├── IndependentTaskConverter.java │ │ │ └── TaskConverter.java │ ├── logger │ │ ├── Logging.aj │ │ ├── MultiHandler.java │ │ ├── NetworkHandler.java │ │ ├── ScriptEaseFormatter.java │ │ └── ScriptEaseMemoryHandler.java │ ├── modelverifier │ │ ├── ModelVerifier.java │ │ ├── problem │ │ │ ├── ModelProblem.java │ │ │ └── StoryProblem.java │ │ └── rule │ │ │ ├── ParameterBoundRule.java │ │ │ ├── ReferenceRule.java │ │ │ ├── StoryRule.java │ │ │ └── UniqueNameRule.java │ ├── observer │ │ ├── CodeBlockPanelObserver.java │ │ ├── FileManagerObserver.java │ │ ├── ObserverManager.java │ │ ├── ParameterPanelObserver.java │ │ ├── RecentFileObserver.java │ │ ├── ResourceObserver.java │ │ ├── ResourceTreeAdapter.java │ │ ├── ResourceTreeObserver.java │ │ ├── SEFocusObserver.java │ │ ├── SEGraphToolBarObserver.java │ │ ├── SEModelEvent.java │ │ ├── SEModelObserver.java │ │ ├── SetEffectObserver.java │ │ ├── StatusObserver.java │ │ ├── StoryComponentPanelJListObserver.java │ │ ├── StoryModelAdapter.java │ │ ├── StoryModelObserver.java │ │ ├── TranslatorObserver.java │ │ ├── UndoManagerObserver.java │ │ ├── library │ │ │ ├── LibraryEvent.java │ │ │ └── LibraryObserver.java │ │ └── storycomponent │ │ │ ├── StoryComponentEvent.java │ │ │ └── StoryComponentObserver.java │ └── undo │ │ ├── FieldModification.java │ │ ├── History.java │ │ ├── Modification.java │ │ ├── Undo.aj │ │ ├── UndoManager.java │ │ └── UndoableCommand.java │ ├── gui │ ├── ExceptionDialog.java │ ├── MenuFactory.java │ ├── SEFocusManager.java │ ├── SEGraph │ │ ├── SEGraph.java │ │ ├── SEGraphFactory.java │ │ ├── SEGraphNodeTransferHandler.java │ │ ├── SEGraphToolBar.java │ │ ├── StoryGraphManager.java │ │ ├── controllers │ │ │ └── GraphGroupController.java │ │ ├── models │ │ │ ├── DescribeItNodeGraphModel.java │ │ │ ├── DialogueLineGraphModel.java │ │ │ ├── SEGraphModel.java │ │ │ ├── StoryNodeGraphModel.java │ │ │ └── TaskGraphModel.java │ │ ├── observers │ │ │ ├── SEGraphAdapter.java │ │ │ └── SEGraphObserver.java │ │ └── renderers │ │ │ ├── DescribeItNodeRenderer.java │ │ │ ├── DialogueLineNodeRenderer.java │ │ │ ├── EditableDescribeItNodeRenderer.java │ │ │ ├── SEGraphNodeRenderer.java │ │ │ ├── StoryNodeRenderer.java │ │ │ └── TaskNodeRenderer.java │ ├── StatusManager.java │ ├── WidgetDecorator.java │ ├── WindowFactory.java │ ├── action │ │ ├── ActiveModelSensitiveAction.java │ │ ├── ActiveTranslatorSensitiveAction.java │ │ ├── components │ │ │ ├── CopyAction.java │ │ │ ├── CutAction.java │ │ │ ├── DeleteAction.java │ │ │ ├── DisableAction.java │ │ │ ├── DuplicateAction.java │ │ │ └── PasteAction.java │ │ ├── file │ │ │ ├── CloseActiveModelAction.java │ │ │ ├── CloseModelAction.java │ │ │ ├── NewStoryModelAction.java │ │ │ ├── OpenRecentFileAction.java │ │ │ ├── OpenStoryModelAction.java │ │ │ ├── SaveModelAction.java │ │ │ ├── SaveModelExplicitlyAction.java │ │ │ ├── SaveModelPackageAction.java │ │ │ ├── SaveModelWithoutCodeAction.java │ │ │ ├── TestCodeAction.java │ │ │ └── TestStoryAction.java │ │ ├── library │ │ │ ├── AddLibraryToStoryModelAction.java │ │ │ └── RemoveLibraryFromStoryModelAction.java │ │ ├── libraryeditor │ │ │ ├── NewActivityAction.java │ │ │ ├── NewBehaviourAction.java │ │ │ ├── NewCauseAction.java │ │ │ ├── NewDescriptionAction.java │ │ │ ├── NewEffectAction.java │ │ │ └── codeeditor │ │ │ │ ├── AbstractInsertFragmentAction.java │ │ │ │ ├── AbstractMoveFragmentAction.java │ │ │ │ ├── InsertIndentAction.java │ │ │ │ ├── InsertLineAction.java │ │ │ │ ├── InsertLiteralAction.java │ │ │ │ ├── InsertReferenceAction.java │ │ │ │ ├── InsertScopeAction.java │ │ │ │ ├── InsertSeriesAction.java │ │ │ │ ├── InsertSimpleAction.java │ │ │ │ ├── MoveFragmentDownAction.java │ │ │ │ └── MoveFragmentUpAction.java │ │ ├── metrics │ │ │ └── MetricsAction.java │ │ ├── preferences │ │ │ └── StoryPropertiesAction.java │ │ ├── system │ │ │ ├── ExitScriptEaseAction.java │ │ │ └── ShowErrorLogAction.java │ │ ├── typemenus │ │ │ ├── TypeAction.java │ │ │ └── TypeDialogBuilder.java │ │ └── undo │ │ │ ├── RedoAction.java │ │ │ └── UndoAction.java │ ├── component │ │ ├── BindingWidget.java │ │ ├── ComponentFactory.java │ │ ├── ExpansionButton.java │ │ ├── ScriptWidgetFactory.java │ │ ├── SlotPanel.java │ │ ├── TypeWidget.java │ │ └── UserInformationPane.java │ ├── dialog │ │ └── DialogBuilder.java │ ├── filters │ │ ├── CategoryFilter.java │ │ ├── Filter.java │ │ ├── Filterable.java │ │ ├── SimilarFilter.java │ │ ├── StoryComponentFilter.java │ │ ├── StoryComponentSearchFilter.java │ │ ├── TranslatorFilter.java │ │ ├── TypeFilter.java │ │ └── VisibilityFilter.java │ ├── internationalization │ │ └── Il8nResources.java │ ├── libraryeditor │ │ ├── EffectHolderPanel.java │ │ ├── LibraryEditorPanel.java │ │ ├── LibraryEditorPanelFactory.java │ │ ├── ParameterPanel.java │ │ └── codeblocks │ │ │ ├── CodeBlockPanel.java │ │ │ └── CodeFragmentPanel.java │ ├── pane │ │ ├── BehaviourEditorPanel.java │ │ ├── DescribeItPanel.java │ │ ├── DialogueEditorPanel.java │ │ ├── LibraryPanel.java │ │ ├── MetricsPanel.java │ │ ├── PanelFactory.java │ │ ├── ResourcePanel.java │ │ ├── ResourceTree.java │ │ └── SEModelTabbedPane.java │ ├── storycomponentpanel │ │ ├── StoryComponentPanel.java │ │ ├── StoryComponentPanelFactory.java │ │ ├── StoryComponentPanelJList.java │ │ ├── StoryComponentPanelLayoutManager.java │ │ ├── StoryComponentPanelManager.java │ │ └── StoryComponentPanelTree.java │ ├── transfer │ │ ├── BindingTransferHandlerExportOnly.java │ │ ├── BindingTransferable.java │ │ ├── BindingWidgetTransferHandler.java │ │ ├── StoryComponentPanelTransferHandler.java │ │ └── StoryComponentTransferUtils.java │ ├── translatoreditor │ │ └── TranslatorEditorFactory.java │ └── ui │ │ ├── BindingWidgetUI.java │ │ ├── ScriptEaseUI.java │ │ ├── TypeWidgetUI.java │ │ └── border │ │ └── GradientLineBorder.java │ ├── model │ ├── CodeBlock.java │ ├── CodeBlockReference.java │ ├── CodeBlockSource.java │ ├── StoryComponent.java │ ├── TypedComponent.java │ ├── atomic │ │ ├── KnowIt.java │ │ ├── Note.java │ │ ├── describeits │ │ │ ├── DescribeIt.java │ │ │ └── DescribeItNode.java │ │ └── knowitbindings │ │ │ ├── KnowItBinding.java │ │ │ ├── KnowItBindingAutomatic.java │ │ │ ├── KnowItBindingFunction.java │ │ │ ├── KnowItBindingNull.java │ │ │ ├── KnowItBindingReference.java │ │ │ ├── KnowItBindingResource.java │ │ │ ├── KnowItBindingStoryGroup.java │ │ │ ├── KnowItBindingStoryPoint.java │ │ │ └── KnowItBindingUninitialized.java │ ├── complex │ │ ├── ActivityIt.java │ │ ├── AskIt.java │ │ ├── CauseIt.java │ │ ├── ComplexStoryComponent.java │ │ ├── ControlIt.java │ │ ├── PickIt.java │ │ ├── ScriptIt.java │ │ ├── StoryComponentContainer.java │ │ ├── StoryGroup.java │ │ ├── StoryNode.java │ │ ├── StoryPoint.java │ │ └── behaviours │ │ │ ├── Behaviour.java │ │ │ ├── CollaborativeTask.java │ │ │ ├── IndependentTask.java │ │ │ └── Task.java │ └── semodel │ │ ├── SEModel.java │ │ ├── SEModelManager.java │ │ ├── ScriptEaseKeywords.java │ │ ├── StoryModel.java │ │ ├── dialogue │ │ └── DialogueLine.java │ │ └── librarymodel │ │ ├── DescribeItManager.java │ │ ├── LibraryModel.java │ │ └── TypeConverter.java │ ├── resources │ ├── Il8nResources.properties │ ├── Il8nResources_en_US.properties │ ├── Il8nResources_fr_FR.properties │ ├── Il8nResources_pl_PL.properties │ ├── default_preferences.ini │ ├── icons │ │ ├── buttonicons │ │ │ ├── connect.png │ │ │ ├── delete.png │ │ │ ├── disconnect.png │ │ │ ├── group.png │ │ │ ├── insert.png │ │ │ └── select.png │ │ ├── cursors │ │ │ ├── connect.png │ │ │ ├── delete.png │ │ │ ├── disconnect.png │ │ │ ├── group.png │ │ │ ├── insert.png │ │ │ ├── select.png │ │ │ ├── unavailable.png │ │ │ └── ungroup.png │ │ ├── noteicon.png │ │ ├── questIcons │ │ │ ├── Cursors │ │ │ │ ├── con_dep.png │ │ │ │ ├── dc_dep.png │ │ │ │ ├── del_dep.png │ │ │ │ ├── insertBet_dep.png │ │ │ │ └── selection_dep.png │ │ │ ├── Large Size Images.zip │ │ │ ├── Large Size Images │ │ │ │ ├── con_dep.png │ │ │ │ ├── con_hover.png │ │ │ │ ├── con_static.png │ │ │ │ ├── dc_dep.png │ │ │ │ ├── dc_hover.png │ │ │ │ ├── dc_static.png │ │ │ │ ├── del_dep.png │ │ │ │ ├── del_hover.png │ │ │ │ ├── del_static.png │ │ │ │ ├── insertAlt_dep.png │ │ │ │ ├── insertAlt_hover.png │ │ │ │ ├── insertAlt_static.png │ │ │ │ ├── insertBet_dep.png │ │ │ │ ├── insertBet_hover.png │ │ │ │ ├── insertBet_static.png │ │ │ │ ├── selection_dep.png │ │ │ │ ├── selection_hover.png │ │ │ │ └── selection_static.png │ │ │ ├── addition.png │ │ │ ├── addition_line.png │ │ │ └── trashcan.png │ │ └── src │ │ │ ├── Cursors │ │ │ ├── addition_cursor.pdn │ │ │ ├── connection_new.pdn │ │ │ ├── deletion_cursor.pdn │ │ │ ├── disconnection_new.pdn │ │ │ ├── node_add.png │ │ │ ├── node_delete.png │ │ │ ├── path_draw.png │ │ │ └── path_erase.png │ │ │ ├── Large Size Images │ │ │ ├── con_dep.png │ │ │ ├── con_hover.png │ │ │ ├── con_static.png │ │ │ ├── dc_dep.png │ │ │ ├── dc_hover.png │ │ │ ├── dc_static.png │ │ │ ├── del_dep.png │ │ │ ├── del_hover.png │ │ │ ├── del_static.png │ │ │ ├── insertAlt_dep.png │ │ │ ├── insertAlt_hover.png │ │ │ ├── insertAlt_static.png │ │ │ ├── insertBet_dep.png │ │ │ ├── insertBet_hover.png │ │ │ ├── insertBet_static.png │ │ │ ├── selection_dep.png │ │ │ ├── selection_hover.png │ │ │ └── selection_static.png │ │ │ ├── addition_new.pdn │ │ │ ├── addition_new.png │ │ │ ├── connection_new.pdn │ │ │ ├── connection_new_icon.pdn │ │ │ ├── connection_new_icon.png │ │ │ ├── deletion_new.pdn │ │ │ ├── deletion_new.png │ │ │ ├── disconnection_new.pdn │ │ │ ├── disconnection_new_icon.pdn │ │ │ ├── disconnection_new_icon.png │ │ │ └── trashcan.png │ ├── lib │ │ ├── commons-logging-1.1.1.jar │ │ ├── httpclient-4.0.1.jar │ │ ├── httpcore-4.0.1.jar │ │ ├── jcommon-1.0.17.jar │ │ ├── jfreechart-1.0.14.jar │ │ └── xstream-1.3.1 │ │ │ ├── LICENSE.txt │ │ │ ├── README.txt │ │ │ └── lib │ │ │ ├── commons-lang-license.txt │ │ │ ├── junit-license.txt │ │ │ ├── oro-license.txt │ │ │ ├── woodstox-license.txt │ │ │ ├── xpp3-license.txt │ │ │ ├── xpp3_min-1.1.4c.jar │ │ │ └── xstream-1.3.1.jar │ ├── monocleDinosaur.txt │ ├── schema │ │ ├── CodeElementSchema.xsd │ │ ├── LanguageDictionarySchema.xsd │ │ └── LibrarySchema.xsd │ └── scriptease.ini │ ├── translator │ ├── GameCompilerException.java │ ├── LanguageDictionary.java │ ├── Translator.java │ ├── TranslatorManager.java │ ├── codegenerator │ │ ├── CodeGenerationException.java │ │ ├── CodeGenerator.java │ │ ├── LocationInformation.java │ │ ├── ScriptInfo.java │ │ ├── SemanticAnalyzer.java │ │ └── code │ │ │ ├── CodeContextSet.java │ │ │ ├── CodeGenerationNamifier.java │ │ │ ├── contexts │ │ │ ├── CodeBlockContext.java │ │ │ ├── Context.java │ │ │ ├── ContextFactory.java │ │ │ ├── DialogueLineContext.java │ │ │ ├── FileContext.java │ │ │ ├── ResourceContext.java │ │ │ ├── knowitbinding │ │ │ │ ├── KnowItBindingAutomaticContext.java │ │ │ │ ├── KnowItBindingContext.java │ │ │ │ ├── KnowItBindingFunctionContext.java │ │ │ │ ├── KnowItBindingNullContext.java │ │ │ │ ├── KnowItBindingReferenceContext.java │ │ │ │ ├── KnowItBindingResourceContext.java │ │ │ │ ├── KnowItBindingStoryGroupContext.java │ │ │ │ ├── KnowItBindingStoryPointContext.java │ │ │ │ └── KnowItBindingUninitializedContext.java │ │ │ └── storycomponent │ │ │ │ ├── AskItContext.java │ │ │ │ ├── KnowItContext.java │ │ │ │ ├── PickItContext.java │ │ │ │ ├── StoryComponentContext.java │ │ │ │ └── complexstorycomponent │ │ │ │ ├── ComplexStoryComponentContext.java │ │ │ │ ├── scriptit │ │ │ │ ├── ActivityItContext.java │ │ │ │ ├── BehaviourContext.java │ │ │ │ ├── CauseItContext.java │ │ │ │ ├── ControlItContext.java │ │ │ │ └── ScriptItContext.java │ │ │ │ ├── storynode │ │ │ │ ├── StoryGroupContext.java │ │ │ │ ├── StoryNodeContext.java │ │ │ │ └── StoryPointContext.java │ │ │ │ └── task │ │ │ │ ├── CollaborativeTaskContext.java │ │ │ │ ├── IndependentTaskContext.java │ │ │ │ └── TaskContext.java │ │ │ └── fragments │ │ │ ├── AbstractFragment.java │ │ │ ├── FormatReferenceFragment.java │ │ │ ├── LiteralFragment.java │ │ │ ├── SimpleDataFragment.java │ │ │ └── container │ │ │ ├── AbstractContainerFragment.java │ │ │ ├── FormatDefinitionFragment.java │ │ │ ├── IndentFragment.java │ │ │ ├── LineFragment.java │ │ │ ├── ScopeFragment.java │ │ │ └── SeriesFragment.java │ └── io │ │ ├── model │ │ ├── EditableResource.java │ │ ├── GameModule.java │ │ ├── GameType.java │ │ ├── Resource.java │ │ ├── SimpleResource.java │ │ └── Slot.java │ │ └── tools │ │ ├── BitwiseConverter.java │ │ ├── FileReader.java │ │ └── ScriptEaseFileAccess.java │ └── util │ ├── BiHashMap.java │ ├── FileOp.java │ ├── GUIOp.java │ ├── ImageOp.java │ ├── ListOp.java │ └── StringOp.java └── translators_src ├── botstory ├── .cproject ├── .settings │ └── org.eclipse.cdt.managedbuilder.core.prefs ├── Debug │ ├── botstory.exe │ └── src │ │ ├── HEBStory.o │ │ └── main.o └── src │ ├── HEBStory.cpp │ ├── HEBStory.h │ └── main.cpp ├── hackebot ├── Examples │ ├── Dance.ses │ ├── Dance │ │ └── Dance.ino │ ├── README.txt │ ├── Square.ses │ ├── Square │ │ └── Square.ino │ ├── Triangle.ses │ └── Triangle │ │ └── Triangle.ino ├── io │ ├── HackEBotFile.java │ ├── HackEBotResource.java │ └── HackEBotScript.java ├── resources │ ├── HackEBot.png │ ├── apidictionary.xml │ ├── includes │ │ ├── .HEBStory.cpp.swp │ │ ├── HEBStory.cpp │ │ ├── HEBStory.h │ │ ├── HackEBot_Move.cpp │ │ ├── HackEBot_Move.h │ │ ├── HackEBot_Sonar.cpp │ │ └── HackEBot_Sonar.h │ └── languageDictionary.xml └── translator.ini ├── nwn ├── .settings │ └── org.eclipse.jdt.core.prefs ├── build.xml ├── io │ ├── ErfFile.java │ ├── ErfKey.java │ ├── NWNConversation.java │ ├── NWNDialogueLine.java │ ├── NWNGameConstant.java │ ├── NWNObject.java │ ├── NWNResource.java │ ├── ResourceListElement.java │ ├── TlkManager.java │ └── genericfileformat │ │ ├── GeneratedJournalGFF.java │ │ └── GenericFileFormat.java ├── resources │ ├── NWNIcon_Small.gif │ ├── apidictionary.xml │ ├── includes │ │ ├── i_se_aux.nss │ │ ├── i_se_behav.nss │ │ ├── i_se_behav2.nss │ │ ├── i_se_journal.nss │ │ ├── i_se_quest.nss │ │ ├── i_se_story.nss │ │ └── i_se_structs.nss │ └── languageDictionary.xml └── translator.ini ├── pinball ├── CustomPicker │ ├── CustomPicker.java │ ├── ImageMapParser.java │ ├── PickerPanel.java │ └── WidgetMap.java ├── Includes │ ├── ball.global │ ├── display.global │ ├── game.global │ ├── hitcount.global │ ├── network.global │ ├── queue.global │ ├── score.global │ └── time.global ├── LOTR.xml ├── LOTRPBGameObject.java ├── LOTRPlayFieldSwitches.png ├── LampMap.png ├── Makefile ├── Makefile.prj.inc ├── Module.pin ├── PinballGameModule.java ├── apidictionary.xml ├── dSwitchMap ├── lampMap ├── languageDictionary.xml ├── pinball.gif ├── switchMap └── translator.ini └── unity ├── .settings └── org.eclipse.jdt.core.prefs ├── build.xml ├── io ├── UnityFile.class ├── UnityFile.java ├── UnityProject$1.class ├── UnityProject.class ├── UnityProject.java ├── UnityScript.class ├── UnityScript.java ├── constants │ ├── UnityField.class │ ├── UnityField.java │ ├── UnityType.class │ └── UnityType.java └── unityresource │ ├── PropertyValue$Type.class │ ├── PropertyValue.class │ ├── PropertyValue.java │ ├── UnityResource.class │ ├── UnityResource.java │ ├── UnityResourceFactory.class │ └── UnityResourceFactory.java ├── lib ├── snakeyaml-1.11-javadoc.jar ├── snakeyaml-1.11-sources.jar └── snakeyaml-1.11.jar ├── libraries ├── APathFinding │ ├── APathFindingLibrary.sel │ └── SEPath.js ├── Colour │ └── ColourLibrary.sel └── ParkGameAnimation │ ├── ParkGameAnimationLibrary.sel │ └── SEAnimationController.js ├── resources ├── apiDictionary.xml ├── includes │ ├── SEDialogue.js │ ├── SEFunctions.js │ ├── SEGameObject.cs │ ├── SEStory.js │ ├── SEVariable.js │ ├── XMLNode.js │ ├── XMLNodeList.js │ └── XMLParser.js ├── languageDictionary.xml └── unity_icon.png └── translator.ini /.gitignore: -------------------------------------------------------------------------------- 1 | # --------------- READ ME ----------------------------------- 2 | # This file declares what files will be ignored by git. Comments are after hash (#) characters. 3 | # 4 | # You may need to alter this file if you change the file structure or get a new library or 5 | # something that unfortunately collides with one of these filters. 6 | # Some of the filters are there for a good reason, but others are broad to avoid over-specification. 7 | # Use your best judgement on what will be allowed into git by changes to this file. 8 | # 9 | # Google .gitignore to learn more about this type of file. 10 | # - remiller 11 | # ---------------------------------------------------------- 12 | 13 | # ignore eclipse garbage 14 | */.externalToolBuilders 15 | 16 | # Don't save the user prefs in git. Logs aren't necessary in the repo, either. 17 | # Nor are classpath and project files. They all contain person-specific paths. 18 | */user_preferences.ini 19 | *.log 20 | *.log.lck 21 | *.log.* 22 | *.log.*.lck 23 | .classpath 24 | .project 25 | scriptease2/.externalToolBuilders 26 | translators_src/*/.externalToolBuilders 27 | scriptease2/.settings/ 28 | 29 | # Don't store distributables or distro temp directories. 30 | # They should be made as needed, not remembered by git. 31 | scriptease2/bin 32 | build/ 33 | jar/ 34 | ScriptEase2.zip 35 | scriptease2/output 36 | 37 | # same goes for translators 38 | translators_src/*/bin 39 | translators_src/*/build 40 | translators_src/*/zip 41 | translators_src/*/*.zip 42 | translators_src/*/.settings/org.eclipse.jdt.core.prefs 43 | 44 | # and while we're at it, don't allow anything in the installed translators directory into the repo. 45 | # Translator development stuff should go into translators_src 46 | scriptease2/translators/ 47 | 48 | # ignore the sloccount directory. 49 | sloccount-2.26/ 50 | 51 | build.xml 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ScriptEase II 2 | ScriptEase II is a program that allows video game designers to add events to their games without directly knowing how to code software. 3 | Instead of a programming language, ScriptEase gives the user a graphical user interface to add functionality to their game worlds. 4 | ScriptEase II can work with any supported game through the use of specific translators plugins. 5 | 6 | 7 | ## Deprecation Notice 8 | This project is largely no longer maintained. ScriptEase II was the product of University of Alberta research before becoming an open source project in 2015. 9 | 10 | ## Versions 11 | ScriptEase II is currently in version 2.8, however a more stable environment 2.7 is available for download from our [website](http://webdocs.cs.ualberta.ca/~script/scriptease-ii-downloads/). The zip file for version 2.7 is also available in our repository. Please see "Issues" for the current problems with 2.8 12 | 13 | ## Documentation 14 | Installation, running and developer documentation can be found on [the wiki](https://github.com/UA-ScriptEase/scriptease/wiki). 15 | 16 | ## ScriptEase I Links 17 | Some old remnants of the first version of ScriptEase: 18 | 19 | Quest pack: http://www.cs.ualberta.ca/~script/files/QuestPak.spz 20 | *NOTE* Right-click and Save-As this file link or else your browser may attempt to open it. 21 | 22 | Special Conversation Templates: http://www.cs.ualberta.ca/~script/files/conversations.erf 23 | *NOTE* Save as above. 24 | 25 | Last ScriptEase 1 JAR file: http://webdocs.cs.ualberta.ca/~script/ScriptEase.jar 26 | 27 | ## Translator Specific Library 28 | The Hack-E-Bot translator utilizes github user Maniacbug's [StandardCplusplu](https://github.com/maniacbug/StandardCplusplus) Arduino library. 29 | A zipped copy of the library can be found in this repository, but please feel free to download a fresh copy from the given link. 30 | -------------------------------------------------------------------------------- /ScriptEase2.7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/ScriptEase2.7.zip -------------------------------------------------------------------------------- /ScriptEase2.8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/ScriptEase2.8.zip -------------------------------------------------------------------------------- /StandardCplusplusMaster.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/StandardCplusplusMaster.zip -------------------------------------------------------------------------------- /Tutorials/Hack-E-BotMakingyourRobotMove.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Hack-E-BotMakingyourRobotMove.docx -------------------------------------------------------------------------------- /Tutorials/LibraryTutorials.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/LibraryTutorials.docx -------------------------------------------------------------------------------- /Tutorials/Neverwinter Nights/NWN Tutorial 0.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Neverwinter Nights/NWN Tutorial 0.docx -------------------------------------------------------------------------------- /Tutorials/Neverwinter Nights/NWN Tutorial 1.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Neverwinter Nights/NWN Tutorial 1.docx -------------------------------------------------------------------------------- /Tutorials/Neverwinter Nights/NWN Tutorial 2.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Neverwinter Nights/NWN Tutorial 2.docx -------------------------------------------------------------------------------- /Tutorials/Neverwinter Nights/NWN Tutorial 3.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Neverwinter Nights/NWN Tutorial 3.docx -------------------------------------------------------------------------------- /Tutorials/Neverwinter Nights/NWN Tutorial 4.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Neverwinter Nights/NWN Tutorial 4.docx -------------------------------------------------------------------------------- /Tutorials/Neverwinter Nights/NWN Tutorial 5.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Neverwinter Nights/NWN Tutorial 5.docx -------------------------------------------------------------------------------- /Tutorials/Neverwinter Nights/NWN Tutorial 6.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Neverwinter Nights/NWN Tutorial 6.docx -------------------------------------------------------------------------------- /Tutorials/README.txt: -------------------------------------------------------------------------------- 1 | ******************************************** 2 | * Translator Tutorials * 3 | ******************************************** 4 | 5 | These tutorials will help you familiarize 6 | yourself with how ScriptEase works and how 7 | to use it with the NeverWinter Nights game 8 | engine, the Unity game engine, the Hack-E-bot 9 | Arduino environment, and others. 10 | 11 | LibraryTutorials: step-by-step walkthrough on 12 | how to make your own causes, effects and 13 | definitions for the translator you're working 14 | with. 15 | 16 | TranslatorInstructions: an indepth look at the 17 | translator structure. 18 | 19 | -------------------------------------------------------------------------------- /Tutorials/ScriptEaseIITranslatorInstructions.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/ScriptEaseIITranslatorInstructions.docx -------------------------------------------------------------------------------- /Tutorials/Unity/Unity Tutorial 1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Unity/Unity Tutorial 1.pdf -------------------------------------------------------------------------------- /Tutorials/Unity/Unity Tutorial 2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Unity/Unity Tutorial 2.pdf -------------------------------------------------------------------------------- /Tutorials/Unity/Unity Tutorial 3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Unity/Unity Tutorial 3.pdf -------------------------------------------------------------------------------- /Tutorials/Unity/Unity Tutorial 4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Unity/Unity Tutorial 4.pdf -------------------------------------------------------------------------------- /Tutorials/Unity/Unity Tutorial 5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/Tutorials/Unity/Unity Tutorial 5.pdf -------------------------------------------------------------------------------- /buildandinstalltranslators.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ant zip 3 | cd translators_src/nwn 4 | ant install -Ddebug.mode=true 5 | cd ../unity 6 | ant install -Ddebug.mode=true 7 | cd ../.. 8 | echo "Both translators installed" 9 | 10 | -------------------------------------------------------------------------------- /installer/SE_2012_installerscript.iss: -------------------------------------------------------------------------------- 1 | ; ScriptEase I installer script 2 | ; @author Richard Zhao 3 | 4 | [Setup] 5 | AppName=ScriptEase 6 | AppVerName=ScriptEase 7 | DefaultDirName={pf}\ScriptEase 8 | ; Since no icons will be created in "{group}", we don't need the wizard 9 | ; to ask for a Start Menu folder name: 10 | DisableProgramGroupPage=yes 11 | UninstallDisplayIcon={app}\nwnse1.ico 12 | OutputDir=. 13 | 14 | [Files] 15 | ; all files should be listed here 16 | Source: "ScriptEase.jar"; DestDir: "{app}"; 17 | Source: "ScriptEase.url"; DestDir: "{app}"; 18 | Source: "nwnse1.ico"; DestDir: "{app}"; 19 | 20 | [Icons] 21 | ; all shortcuts should be created here 22 | Name: "{commonprograms}\ScriptEase\ScriptEase"; Filename: "{pf}\Java\jre1.6.0_07\bin\javaw.exe"; Parameters: "-Xmx800M -jar ""{app}\ScriptEase.jar"""; WorkingDir: "{app}"; IconFilename: "{app}\nwnse1.ico" 23 | Name: "{commondesktop}\ScriptEase"; Filename: "{pf}\Java\jre1.6.0_07\bin\javaw.exe"; Parameters: "-Xmx800M -jar ""{app}\ScriptEase.jar"""; WorkingDir: "{app}"; IconFilename: "{app}\nwnse1.ico" 24 | Name: "{commonprograms}\ScriptEase\ScriptEase on the Web"; Filename: "{app}\ScriptEase.url"; 25 | 26 | [code] 27 | 28 | var 29 | NWNlocation: String; 30 | 31 | function InitializeSetup(): Boolean; 32 | begin 33 | if (RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Bioware\NWN\Neverwinter', 34 | 'Location', NWNlocation)) = False then 35 | begin 36 | // NWN not installed 37 | MsgBox('Neverwinter Nights is not detected on your machine', mbInformation, MB_OK); 38 | end; 39 | Result := True; 40 | end; 41 | 42 | [INI] 43 | ; the ini file is generated based on the location of NWN in the registry 44 | Filename: "{app}\scriptease.ini"; Section: "Locations"; Flags: uninsdeletesection; Key: "NWN"; String: "{reg:HKLM\SOFTWARE\Bioware\NWN\Neverwinter,Location|C:\NeverwinterNights\NWN}" 45 | 46 | [UninstallDelete] 47 | Type: files; Name: "{app}\scriptease.ini" 48 | 49 | -------------------------------------------------------------------------------- /installer/java.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/installer/java.ico -------------------------------------------------------------------------------- /installer/nwnse1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/installer/nwnse1.ico -------------------------------------------------------------------------------- /installtranslators.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd translators_src/nwn 3 | ant install -Ddebug.mode=true 4 | cd ../unity 5 | ant install -Ddebug.mode=true 6 | cd ../.. 7 | echo "Both translators installed" 8 | 9 | -------------------------------------------------------------------------------- /mailingLists.properties: -------------------------------------------------------------------------------- 1 | # Below are the variables for the ANT script that declares who will be notified of new internal & public builds. 2 | # Each email address must be separated with a space. 3 | # - remiller 4 | 5 | # internal releases 6 | internalMail= dszafron@ualberta.ca remiller@ualberta.ca neesha@ualberta.ca rxzhao@cs.ualberta.ca kschenk@ualberta.ca svidal@ualberta.ca czeto@ualberta.ca 7 | 8 | # public releases 9 | publicMail= ${internalMail} mike.carbonaro@ualberta.ca jamie.schmitt@gmail.com mfchurch@ualberta.ca lari@ualberta.ca graves@ualberta.ca 10 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/ModelVisitor.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller; 2 | 3 | import scriptease.model.semodel.SEModel; 4 | import scriptease.model.semodel.StoryModel; 5 | import scriptease.model.semodel.librarymodel.LibraryModel; 6 | import scriptease.translator.Translator; 7 | 8 | /** 9 | * Generic controller object that is a collection of double dispatch methods to 10 | * correspond with a call to PatternModel.process(). Pass an implementation of 11 | * ModelVisitor to a {@link SEModel}'s 12 | * {@link SEModel#process()} method to get type-specific behaviour.
13 | *
14 | * Classes should not implement this interface directly since it is strongly 15 | * recommended (and stylistically required) that they subclass 16 | * {@link ModelAdapter}.
17 | *
18 | * ModelVisitor is an implementation of the Visitor design pattern. 19 | * 20 | * @author kschenk 21 | * 22 | * @see StoryVisitor 23 | * @see ModelAdapter 24 | */ 25 | public interface ModelVisitor { 26 | public void processStoryModel(StoryModel storyModel); 27 | 28 | public void processLibraryModel(LibraryModel libraryModel); 29 | 30 | public void processTranslator(Translator translator); 31 | } 32 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/groupvisitor/SameBindingGroupVisitor.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.groupvisitor; 2 | 3 | import scriptease.model.atomic.KnowIt; 4 | import scriptease.model.atomic.knowitbindings.KnowItBinding; 5 | import scriptease.model.atomic.knowitbindings.KnowItBindingResource; 6 | 7 | public class SameBindingGroupVisitor extends GroupVisitor { 8 | 9 | public SameBindingGroupVisitor(KnowIt component) { 10 | super(component); 11 | } 12 | 13 | /** 14 | * Checks if the given knowIt's binding matches the group's Binding 15 | * 16 | * @param knowIt 17 | * @return 18 | */ 19 | @Override 20 | protected boolean isPartOfGroup(KnowIt knowIt) { 21 | final KnowItBinding comparingBinding = knowIt.getBinding(); 22 | if (this.original != null) { 23 | // Don't group constants 24 | if (comparingBinding instanceof KnowItBindingResource 25 | && !((KnowItBindingResource) comparingBinding) 26 | .isIdentifiableGameConstant()) 27 | return false; 28 | else 29 | return comparingBinding.equals((this.original).getBinding()); 30 | } 31 | return false; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/groupvisitor/SameNameGroupVisitor.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.groupvisitor; 2 | 3 | import scriptease.model.atomic.KnowIt; 4 | 5 | public class SameNameGroupVisitor extends GroupVisitor { 6 | 7 | public SameNameGroupVisitor(KnowIt component) { 8 | super(component); 9 | } 10 | 11 | /** 12 | * Checks if the given knowIt's name matches the original knowIts name 13 | * 14 | * @param knowIt 15 | * @return 16 | */ 17 | @Override 18 | protected boolean isPartOfGroup(KnowIt knowIt) { 19 | if (this.original != null) { 20 | return this.original.getDisplayText().equals( 21 | knowIt.getDisplayText()) 22 | && this.original != knowIt; 23 | } 24 | return false; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/XMLAttribute.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io; 2 | 3 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 4 | import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 5 | 6 | /** 7 | * Enumeration of all of the XML attributes we can write out. Also includes 8 | * methods to read and write the attributes. 9 | * 10 | * @author kschenk 11 | * @author jyuen 12 | * 13 | */ 14 | public enum XMLAttribute { 15 | AUTHOR("author"), 16 | 17 | CONTROL("control"), 18 | 19 | DEFAULT("default"), 20 | 21 | DEFAULT_FORMAT("defaultFormat"), 22 | 23 | FLAVOUR("flavour"), 24 | 25 | FORMAT("format"), 26 | 27 | NAME("name"), 28 | 29 | DESCRIPTION("description"), 30 | 31 | VALUE("value"), 32 | 33 | ID("id"), 34 | 35 | INITIATE("Initiate"), 36 | 37 | READONLY("readonly"), 38 | 39 | RESPOND("Respond"), 40 | 41 | REF("ref"), 42 | 43 | LIBRARY("library"), 44 | 45 | PROBABILITY("Probability"), 46 | 47 | DATA("data"), 48 | 49 | UNIQUE("unique"), 50 | 51 | FILTER("filter"), 52 | 53 | FILTERBY("filterBy"), 54 | 55 | SEPARATOR("separator"), 56 | 57 | TYPE("type"), 58 | 59 | PRIORITY("priority"), 60 | 61 | LEGALVALUES("legalValues"); 62 | 63 | private final String name; 64 | 65 | private XMLAttribute(String name) { 66 | this.name = name; 67 | } 68 | 69 | public void write(HierarchicalStreamWriter writer, String data) { 70 | writer.addAttribute(this.name, data); 71 | } 72 | 73 | public String read(HierarchicalStreamReader reader) { 74 | return reader.getAttribute(this.name); 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/IdentityArrayListConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter; 2 | 3 | import sun.awt.util.IdentityArrayList; 4 | 5 | import com.thoughtworks.xstream.converters.collections.CollectionConverter; 6 | import com.thoughtworks.xstream.mapper.Mapper; 7 | 8 | /** 9 | * The reason we need this class is because the regular ol' CollectionConverter 10 | * can't deal with IdentityArrayLists. 11 | * 12 | * @author kschenk 13 | * 14 | */ 15 | public class IdentityArrayListConverter extends CollectionConverter { 16 | 17 | public IdentityArrayListConverter(Mapper mapper) { 18 | super(mapper); 19 | } 20 | 21 | @SuppressWarnings("rawtypes") 22 | @Override 23 | public boolean canConvert(Class type) { 24 | return type.equals(IdentityArrayList.class); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/fragment/FormatDefinitionFragmentConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.fragment; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import scriptease.controller.io.XMLAttribute; 7 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 8 | import scriptease.translator.codegenerator.code.fragments.container.FormatDefinitionFragment; 9 | 10 | import com.thoughtworks.xstream.converters.Converter; 11 | import com.thoughtworks.xstream.converters.MarshallingContext; 12 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 13 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 14 | import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 15 | 16 | public class FormatDefinitionFragmentConverter implements Converter { 17 | @Override 18 | public void marshal(Object source, HierarchicalStreamWriter writer, 19 | MarshallingContext context) { 20 | final FormatDefinitionFragment format = (FormatDefinitionFragment) source; 21 | 22 | XMLAttribute.ID.write(writer, format.getDirectiveText()); 23 | 24 | // Write Sub Fragments 25 | context.convertAnother(format.getSubFragments()); 26 | } 27 | 28 | @SuppressWarnings("unchecked") 29 | @Override 30 | public Object unmarshal(HierarchicalStreamReader reader, 31 | UnmarshallingContext context) { 32 | final String id = XMLAttribute.ID.read(reader); 33 | final List subFragments = new ArrayList(); 34 | 35 | // Read sub fragments 36 | if (reader.hasMoreChildren()) { 37 | subFragments.addAll((List) context 38 | .convertAnother(null, ArrayList.class)); 39 | } 40 | 41 | return new FormatDefinitionFragment(id, subFragments); 42 | } 43 | 44 | @SuppressWarnings("rawtypes") 45 | @Override 46 | public boolean canConvert(Class type) { 47 | return type.equals(FormatDefinitionFragment.class); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/fragment/FormatReferenceFragmentConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.fragment; 2 | 3 | import scriptease.controller.io.XMLAttribute; 4 | import scriptease.translator.codegenerator.code.fragments.FormatReferenceFragment; 5 | import scriptease.util.StringOp; 6 | 7 | import com.thoughtworks.xstream.converters.Converter; 8 | import com.thoughtworks.xstream.converters.MarshallingContext; 9 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 10 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 11 | import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 12 | 13 | public class FormatReferenceFragmentConverter implements Converter { 14 | @Override 15 | public void marshal(Object source, HierarchicalStreamWriter writer, 16 | MarshallingContext context) { 17 | final FormatReferenceFragment reference = (FormatReferenceFragment) source; 18 | 19 | XMLAttribute.DATA.write(writer, reference.getType().name()); 20 | XMLAttribute.REF.write(writer, reference.getDirectiveText()); 21 | } 22 | 23 | @Override 24 | public Object unmarshal(HierarchicalStreamReader reader, 25 | UnmarshallingContext context) { 26 | final String ref = XMLAttribute.REF.read(reader); 27 | final String data = XMLAttribute.DATA.read(reader); 28 | 29 | final FormatReferenceFragment reference; 30 | 31 | if (StringOp.exists(data)) { 32 | reference = new FormatReferenceFragment(ref, 33 | FormatReferenceFragment.Type.valueOf(data.toUpperCase())); 34 | } else 35 | reference = new FormatReferenceFragment(ref); 36 | 37 | return reference; 38 | } 39 | 40 | @SuppressWarnings("rawtypes") 41 | @Override 42 | public boolean canConvert(Class type) { 43 | return type.equals(FormatReferenceFragment.class); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/fragment/IndentedFragmentConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.fragment; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 7 | import scriptease.translator.codegenerator.code.fragments.container.IndentFragment; 8 | 9 | import com.thoughtworks.xstream.converters.Converter; 10 | import com.thoughtworks.xstream.converters.MarshallingContext; 11 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 12 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 13 | import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 14 | 15 | public class IndentedFragmentConverter implements Converter { 16 | 17 | @Override 18 | public void marshal(Object source, HierarchicalStreamWriter writer, 19 | MarshallingContext context) { 20 | final IndentFragment indented = (IndentFragment) source; 21 | 22 | // Write sub fragments 23 | context.convertAnother(indented.getSubFragments()); 24 | } 25 | 26 | @SuppressWarnings("unchecked") 27 | @Override 28 | public Object unmarshal(HierarchicalStreamReader reader, 29 | UnmarshallingContext context) { 30 | final List subFragments = new ArrayList(); 31 | 32 | // Read sub fragments 33 | if (reader.hasMoreChildren()) { 34 | subFragments.addAll((List) context 35 | .convertAnother(null, ArrayList.class)); 36 | } 37 | 38 | return new IndentFragment(subFragments); 39 | } 40 | 41 | @SuppressWarnings("rawtypes") 42 | @Override 43 | public boolean canConvert(Class type) { 44 | return type.equals(IndentFragment.class); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/fragment/LineFragmentConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.fragment; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 7 | import scriptease.translator.codegenerator.code.fragments.container.LineFragment; 8 | 9 | import com.thoughtworks.xstream.converters.Converter; 10 | import com.thoughtworks.xstream.converters.MarshallingContext; 11 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 12 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 13 | import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 14 | 15 | public class LineFragmentConverter implements Converter { 16 | 17 | @Override 18 | public void marshal(Object source, HierarchicalStreamWriter writer, 19 | MarshallingContext context) { 20 | final LineFragment line = (LineFragment) source; 21 | 22 | // Write Sub Fragments 23 | context.convertAnother(line.getSubFragments()); 24 | } 25 | 26 | @SuppressWarnings("unchecked") 27 | @Override 28 | public Object unmarshal(HierarchicalStreamReader reader, 29 | UnmarshallingContext context) { 30 | final List subFragments = new ArrayList(); 31 | 32 | // Read Sub Fragments 33 | if (reader.hasMoreChildren()) { 34 | subFragments.addAll((List) context 35 | .convertAnother(null, ArrayList.class)); 36 | } 37 | 38 | return new LineFragment(subFragments); 39 | } 40 | 41 | @SuppressWarnings("rawtypes") 42 | @Override 43 | public boolean canConvert(Class type) { 44 | return type.equals(LineFragment.class); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/fragment/LiteralFragmentConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.fragment; 2 | 3 | import scriptease.translator.codegenerator.code.fragments.LiteralFragment; 4 | 5 | import com.thoughtworks.xstream.converters.Converter; 6 | import com.thoughtworks.xstream.converters.MarshallingContext; 7 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 8 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 9 | import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 10 | 11 | public class LiteralFragmentConverter implements Converter { 12 | 13 | @Override 14 | public void marshal(Object source, HierarchicalStreamWriter writer, 15 | MarshallingContext context) { 16 | writer.setValue(((LiteralFragment) source).getDirectiveText()); 17 | } 18 | 19 | @Override 20 | public Object unmarshal(HierarchicalStreamReader reader, 21 | UnmarshallingContext context) { 22 | final String text = reader.getValue(); 23 | 24 | return new LiteralFragment(text); 25 | } 26 | 27 | @SuppressWarnings("rawtypes") 28 | @Override 29 | public boolean canConvert(Class type) { 30 | return type.equals(LiteralFragment.class); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/storycomponent/ActivityItConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.storycomponent; 2 | 3 | import scriptease.model.complex.ActivityIt; 4 | import scriptease.model.semodel.librarymodel.LibraryModel; 5 | 6 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 7 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 8 | 9 | /** 10 | * Converts {@link ActivityIt}s to/from XML. 11 | * 12 | * @author jyuen 13 | */ 14 | public class ActivityItConverter extends ScriptItConverter { 15 | 16 | @SuppressWarnings("rawtypes") 17 | @Override 18 | public boolean canConvert(Class type) { 19 | return type.equals(ActivityIt.class); 20 | } 21 | 22 | @Override 23 | protected ActivityIt buildComponent(HierarchicalStreamReader reader, 24 | UnmarshallingContext context, LibraryModel library) { 25 | return new ActivityIt(library, ""); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/storycomponent/NoteConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.storycomponent; 2 | 3 | import scriptease.model.StoryComponent; 4 | import scriptease.model.atomic.Note; 5 | import scriptease.model.semodel.librarymodel.LibraryModel; 6 | 7 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 8 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 9 | 10 | /** 11 | * Converts Notes to/from XML. This is very simple. 12 | * 13 | * @author kschenk 14 | * 15 | * @see ComplexStoryComponentConverter 16 | */ 17 | public class NoteConverter extends StoryComponentConverter { 18 | @SuppressWarnings("rawtypes") 19 | @Override 20 | public boolean canConvert(Class type) { 21 | return type.equals(Note.class); 22 | } 23 | 24 | @Override 25 | protected StoryComponent buildComponent(HierarchicalStreamReader reader, 26 | UnmarshallingContext context, LibraryModel library) { 27 | return new Note(library); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/storycomponent/StoryComponentContainerConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.storycomponent; 2 | 3 | import scriptease.model.StoryComponent; 4 | import scriptease.model.complex.StoryComponentContainer; 5 | import scriptease.model.semodel.librarymodel.LibraryModel; 6 | 7 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 8 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 9 | 10 | /** 11 | * Converts only {@link StoryComponentContainer}s to/from XML. 12 | * StoryComponentContainers are special in that they need to be configured with 13 | * what they accept as children. This converter produces a container that will 14 | * allow anything as a child, and relies on the model to provide a properly 15 | * configured container. This means that whenever this converter produces a 16 | * container, that container's properties should be copied (if possible) into 17 | * the one that should already exist within the model. 18 | * 19 | * @author remiller 20 | * 21 | * @see StoryComponentConverter 22 | * @see ComplexStoryComponentConverter 23 | */ 24 | public class StoryComponentContainerConverter extends 25 | ComplexStoryComponentConverter { 26 | @SuppressWarnings("rawtypes") 27 | @Override 28 | public boolean canConvert(Class type) { 29 | return type.equals(StoryComponentContainer.class); 30 | } 31 | 32 | @Override 33 | protected StoryComponent buildComponent(HierarchicalStreamReader reader, 34 | UnmarshallingContext context, LibraryModel library) { 35 | return new StoryComponentContainer(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/storycomponent/StoryPointConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.storycomponent; 2 | 3 | import scriptease.controller.io.XMLNode; 4 | import scriptease.model.StoryComponent; 5 | import scriptease.model.complex.StoryPoint; 6 | import scriptease.model.semodel.librarymodel.LibraryModel; 7 | 8 | import com.thoughtworks.xstream.converters.MarshallingContext; 9 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 10 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 11 | import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 12 | 13 | /** 14 | * Converts the StoryPoint class to and from XML. 15 | * 16 | * @author mfchurch 17 | * @author kschenk 18 | */ 19 | public class StoryPointConverter extends StoryNodeConverter { 20 | @Override 21 | public void marshal(Object source, final HierarchicalStreamWriter writer, 22 | final MarshallingContext context) { 23 | final StoryPoint storyPoint = (StoryPoint) source; 24 | 25 | super.marshal(source, writer, context); 26 | 27 | XMLNode.FAN_IN.writeInteger(writer, storyPoint.getFanIn()); 28 | } 29 | 30 | @Override 31 | public Object unmarshal(HierarchicalStreamReader reader, 32 | UnmarshallingContext context) { 33 | 34 | final StoryPoint storyPoint = (StoryPoint) super.unmarshal(reader, 35 | context); 36 | final String fanIn = XMLNode.FAN_IN.readString(reader); 37 | 38 | storyPoint.setFanIn(new Integer(fanIn)); 39 | 40 | return storyPoint; 41 | } 42 | 43 | @SuppressWarnings("rawtypes") 44 | @Override 45 | public boolean canConvert(Class type) { 46 | return type.equals(StoryPoint.class); 47 | } 48 | 49 | @Override 50 | protected StoryComponent buildComponent(HierarchicalStreamReader reader, 51 | UnmarshallingContext context, LibraryModel library) { 52 | return new StoryPoint(""); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/io/converter/storycomponent/behaviour/IndependentTaskConverter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.io.converter.storycomponent.behaviour; 2 | 3 | import scriptease.model.StoryComponent; 4 | import scriptease.model.complex.behaviours.IndependentTask; 5 | import scriptease.model.semodel.librarymodel.LibraryModel; 6 | 7 | import com.thoughtworks.xstream.converters.UnmarshallingContext; 8 | import com.thoughtworks.xstream.io.HierarchicalStreamReader; 9 | 10 | /** 11 | * Converts the IndependentTask {@link IndependentTask} to and from xml. 12 | * 13 | * @author jyuen 14 | */ 15 | public class IndependentTaskConverter extends TaskConverter { 16 | @SuppressWarnings("rawtypes") 17 | @Override 18 | public boolean canConvert(Class type) { 19 | return type.equals(IndependentTask.class); 20 | } 21 | 22 | @Override 23 | protected StoryComponent buildComponent(HierarchicalStreamReader reader, 24 | UnmarshallingContext context, LibraryModel library) { 25 | final IndependentTask task = new IndependentTask(library); 26 | // remove the default generated initiator container. 27 | task.removeStoryChild(task.getInitiatorContainer()); 28 | return task; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/logger/MultiHandler.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.logger; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import java.util.logging.Handler; 6 | import java.util.logging.LogRecord; 7 | 8 | /** 9 | * Extends a Normal Handler allowing the Handler to publish to multiple sub 10 | * handlers at once. Used by MemoryHandler's push method to allow multiple sub 11 | * handlers. 12 | * 13 | * @author mfchurch 14 | * 15 | */ 16 | public class MultiHandler extends Handler { 17 | private List targets; 18 | 19 | public MultiHandler(List targets) { 20 | this.targets = new ArrayList(targets); 21 | } 22 | 23 | @Override 24 | public void close() throws SecurityException { 25 | for (Handler target : this.targets) { 26 | target.close(); 27 | } 28 | } 29 | 30 | @Override 31 | public void flush() { 32 | for (Handler target : this.targets) { 33 | target.flush(); 34 | } 35 | } 36 | 37 | @Override 38 | public void publish(LogRecord record) { 39 | for (Handler target : this.targets) { 40 | target.publish(record); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/logger/ScriptEaseFormatter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.logger; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Calendar; 5 | import java.util.logging.Formatter; 6 | import java.util.logging.LogRecord; 7 | 8 | /** 9 | * Provides custom formatting for logging output used in ScriptEase 10 | * 11 | * @author mfchurch 12 | * 13 | */ 14 | public class ScriptEaseFormatter extends Formatter { 15 | 16 | @Override 17 | public String format(LogRecord record) { 18 | String DATE_FORMAT = "yyyy-MM-dd hh:mm:ss"; 19 | SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT); 20 | 21 | return sdf.format(Calendar.getInstance().getTime()) + " | " 22 | + record.getLevel() + ": " + record.getMessage() + "\n"; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/modelverifier/problem/ModelProblem.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.modelverifier.problem; 2 | 3 | import scriptease.model.StoryComponent; 4 | 5 | /** 6 | * A ModelProblem represents a problem identified in the model. It extends the 7 | * StoryProblem class by adding a runnable solution to the problem. 8 | * ModelProblem's also have a priority which specifies in which order the 9 | * problems should be dealt with (higher means dealt with first). 10 | * 11 | * @author mfchurch 12 | * 13 | */ 14 | public class ModelProblem extends StoryProblem { 15 | private Runnable solution; 16 | private int priority; 17 | 18 | public ModelProblem(StoryComponent component, String description, 19 | Runnable solution, int priority) { 20 | super(component, description); 21 | this.solution = solution; 22 | this.priority = priority; 23 | } 24 | 25 | public int getPriority() { 26 | return this.priority; 27 | } 28 | 29 | public void solve() { 30 | this.solution.run(); 31 | } 32 | 33 | @Override 34 | public String toString() { 35 | return "ModelProblem[" + this.component + " : " + this.description 36 | + "]"; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/modelverifier/problem/StoryProblem.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.modelverifier.problem; 2 | 3 | import scriptease.model.StoryComponent; 4 | 5 | /** 6 | * A StoryProblem represents a problem identified in the story by a StoryRule. 7 | * It contains the problemed component, and a description of the solution. 8 | * Notify specifies if the user should be notified about the problem (Defaults 9 | * to true). 10 | * 11 | * @author mfchurch 12 | * 13 | */ 14 | public class StoryProblem { 15 | protected StoryComponent component; 16 | protected String description; 17 | protected boolean notify; 18 | 19 | public StoryProblem(StoryComponent component, String description) { 20 | this.component = component; 21 | this.description = description; 22 | this.notify = true; 23 | } 24 | 25 | public StoryComponent getComponent() { 26 | return this.component; 27 | } 28 | 29 | public String getDescription() { 30 | return this.description; 31 | } 32 | 33 | public void setNotify(boolean shouldNotify) { 34 | this.notify = shouldNotify; 35 | } 36 | 37 | public boolean shouldNotify() { 38 | return this.notify; 39 | } 40 | 41 | @Override 42 | public String toString() { 43 | return "StoryProblem[" + this.component + " : " + this.description 44 | + "]"; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/modelverifier/rule/StoryRule.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.modelverifier.rule; 2 | 3 | import java.util.Collection; 4 | 5 | import scriptease.controller.modelverifier.problem.StoryProblem; 6 | import scriptease.model.StoryComponent; 7 | import scriptease.model.complex.ComplexStoryComponent; 8 | 9 | /** 10 | * A StoryRule is used with ModelVerifier to identify problems in 11 | * the model. When a StoryRule's validModel method is called, it returns 12 | * ModelProblems for each component which does not follow the StoryRule's 13 | * criteria. 14 | * 15 | * @author mfchurch 16 | * 17 | */ 18 | public interface StoryRule { 19 | 20 | /** 21 | * Notifies the StoryRule of a change in the model (given by root). 22 | * StoryRule then validates the model, and returns any StoryComponent's 23 | * which are not correct according to it's heuristic. 24 | * 25 | * @return - Map of StoryComponents which have failed the rule's check, to 26 | * Strings which describe the problem. 27 | */ 28 | public Collection validate(ComplexStoryComponent root, 29 | StoryComponent source); 30 | } 31 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/CodeBlockPanelObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.gui.libraryeditor.codeblocks.CodeBlockPanel; 4 | 5 | /** 6 | * Listens to changes for CodeBLockPanel {@link CodeBlockPanel} 7 | * 8 | * @author jyuen 9 | */ 10 | public interface CodeBlockPanelObserver { 11 | /** 12 | * Notifies the receiver that the codeBlockPanel has changed 13 | */ 14 | public void codeBlockPanelChanged(); 15 | } 16 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/FileManagerObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import java.io.File; 4 | 5 | import scriptease.model.semodel.SEModel; 6 | 7 | /** 8 | * A class can implement the FileManagerObserver interface if it needs to be 9 | * informed when FileManager saves/loads models. 10 | * 11 | * @author graves 12 | */ 13 | public interface FileManagerObserver { 14 | /** 15 | * This method is called whenever the FileManager notifies observers of 16 | * changes they should be aware of. 17 | * 18 | * @param model 19 | * The model that was referenced. 20 | * @param location 21 | * The disk location where the model is stored. 22 | */ 23 | public void fileReferenced(SEModel model, File location); 24 | } 25 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/ParameterPanelObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.gui.libraryeditor.ParameterPanel; 4 | 5 | /** 6 | * Listens to changes for ParameterPanel {@link ParameterPanel} 7 | * 8 | * @author jyuen 9 | */ 10 | public interface ParameterPanelObserver { 11 | /** 12 | * Notifies the receiver that the parameterPanel has changed 13 | */ 14 | public void parameterPanelChanged(); 15 | } 16 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/RecentFileObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | /** 4 | * Observes for changes to recent files including recent files that no longer 5 | * exist. 6 | * 7 | * @author jyuen 8 | */ 9 | public interface RecentFileObserver { 10 | 11 | /** 12 | * This method is called whenever the FileManager notifies recent file 13 | * observers of changes they should be aware of. 14 | */ 15 | public void updateRecentFiles(); 16 | } 17 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/ResourceObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.translator.io.model.EditableResource; 4 | import scriptease.translator.io.model.Resource; 5 | 6 | /** 7 | * Notifies changes to resources. Since only {@link EditableResource}s can be 8 | * changed, this only applies to them. 9 | * 10 | * @author kschenk 11 | * 12 | */ 13 | public interface ResourceObserver { 14 | 15 | public void nameChanged(EditableResource resource, String name); 16 | 17 | public void childRemoved(EditableResource resource, Resource child); 18 | 19 | public void childAdded(EditableResource resource, Resource child); 20 | } 21 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/ResourceTreeAdapter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.translator.io.model.GameType; 4 | import scriptease.translator.io.model.Resource; 5 | 6 | /** 7 | * Adapter for {@link ResourceTreeObserver}. 8 | * 9 | * @author kschenk 10 | * 11 | */ 12 | public abstract class ResourceTreeAdapter implements ResourceTreeObserver { 13 | 14 | @Override 15 | public void resourceTreeFilled() { 16 | 17 | } 18 | 19 | @Override 20 | public void resourceAddButtonClicked(GameType type) { 21 | } 22 | 23 | @Override 24 | public void resourceEditButtonClicked(Resource resource) { 25 | } 26 | 27 | @Override 28 | public void resourceRemoveButtonClicked(Resource resource) { 29 | }; 30 | 31 | @Override 32 | public void resourceSelected(Resource resource) { 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/ResourceTreeObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.translator.io.model.GameType; 4 | import scriptease.translator.io.model.Resource; 5 | 6 | /** 7 | * {@link ResourceTreeObserver}s are notified of changes to a resource tree. 8 | * 9 | * @author kschenk 10 | * 11 | */ 12 | public interface ResourceTreeObserver { 13 | 14 | /** 15 | * Called when the resource tree is filled with resources. 16 | */ 17 | public void resourceTreeFilled(); 18 | 19 | /** 20 | * Called when a resource is selected in a resource tree. 21 | * 22 | * @param resource 23 | */ 24 | public void resourceSelected(Resource resource); 25 | 26 | /** 27 | * Called when a resource's edit button is pressed 28 | * 29 | * @param resource 30 | */ 31 | public void resourceEditButtonClicked(Resource resource); 32 | 33 | /** 34 | * Called when the add resource button is pressed. 35 | */ 36 | public void resourceAddButtonClicked(GameType type); 37 | 38 | /** 39 | * Called when a resource's edit button is pressed 40 | * 41 | * @param resource 42 | */ 43 | public void resourceRemoveButtonClicked(Resource resource); 44 | 45 | } 46 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/SEFocusObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import java.awt.Component; 4 | 5 | import scriptease.gui.SEFocusManager; 6 | 7 | /** 8 | * This observer has its events fired when we set focus in 9 | * {@link SEFocusManager}. We use this primarily for deletion and cut, copy, 10 | * paste of StoryComponentPanels, the Library Panel, and the SEGraph since 11 | * regular focus tends to act bizarrely. 12 | * 13 | * @author kschenk 14 | * 15 | */ 16 | public interface SEFocusObserver { 17 | 18 | /** 19 | * Fired when the current component gains focus. We pass in the old focus in case we need to 20 | * use it, because the new focus can always be calculated via SEFocusManager. 21 | * 22 | * @param oldFocus 23 | * The previously focused on component 24 | */ 25 | public void gainFocus(Component oldFocus); 26 | 27 | /** 28 | * Fired when the current component loses focus. Focus gets set before this 29 | * is called, so you can get the newly focused component with a call to 30 | * {@link SEFocusManager#getFocus()} within the method body. 31 | * 32 | * @param oldFocus 33 | */ 34 | public void loseFocus(Component oldFocus); 35 | } 36 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/SEGraphToolBarObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.gui.SEGraph.SEGraphToolBar.Mode; 4 | 5 | /** 6 | * Alerts changes to the mode. 7 | * 8 | * @author kschenk 9 | * 10 | */ 11 | public interface SEGraphToolBarObserver { 12 | /** 13 | * Called when the mode changes. 14 | * 15 | * @param mode 16 | * the new mode 17 | */ 18 | public void modeChanged(Mode mode); 19 | } 20 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/SEModelEvent.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.model.semodel.SEModel; 4 | import scriptease.model.semodel.SEModelManager; 5 | 6 | /** 7 | * Encapsulates the possible changes in a {@link SEModelManager}. An instance of 8 | * PatternModelPoolEvent will be passed to objects who are 9 | * interested in such changes, who can then query the event for more specific 10 | * information as to what has changed. 11 | * 12 | * @author remiller 13 | * @author kschenk 14 | * @author jyuen 15 | * 16 | */ 17 | public final class SEModelEvent { 18 | private final SEModel source; 19 | private final Type eventType; 20 | 21 | public static enum Type { 22 | ACTIVATED, ADDED, REMOVED, TITLECHANGED, BEHAVIOUR_EDITED; 23 | } 24 | 25 | /** 26 | * Builds a PatternModelPoolEvent which records the way in 27 | * which the PatternModelPool has changed. 28 | * 29 | * @param changed 30 | * The PatternModel that affected (added, removed, activated, 31 | * etc) the state of the pool. 32 | * @param type 33 | * The type constant that represents how the PatternModelPool 34 | * changed. This should be one of PATTERN_MODEL_* 35 | */ 36 | public SEModelEvent(SEModel changed, Type type) { 37 | this.source = changed; 38 | this.eventType = type; 39 | } 40 | 41 | public SEModel getPatternModel() { 42 | return this.source; 43 | } 44 | 45 | public Type getEventType() { 46 | return this.eventType; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/SEModelObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.model.semodel.SEModel; 4 | import scriptease.model.semodel.SEModelManager; 5 | 6 | /** 7 | * Observer interface for the {@link SEModelManager}. 8 | * PatternModelPoolObservers are notified whenever that pool changes. 9 | * 10 | * @author remiller 11 | */ 12 | public interface SEModelObserver { 13 | /** 14 | * Notifies the receiver that the model pool has changed. 15 | * 16 | * @param event 17 | * The {@link SEModel} that was added. 18 | */ 19 | public void modelChanged(SEModelEvent event); 20 | } 21 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/SetEffectObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.model.complex.ScriptIt; 4 | 5 | /** 6 | * Observer for EffectHolderPanels that fires when an effect is set. 7 | * 8 | * @author kschenk 9 | * 10 | */ 11 | public interface SetEffectObserver { 12 | public void effectChanged(ScriptIt newEffect); 13 | } 14 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/StatusObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | /** 4 | * Allows implementers to be notified of changes to the ScriptEase status 5 | * 6 | * @author kschenk 7 | */ 8 | public interface StatusObserver { 9 | /** 10 | * Tells the StatusObserver that there has been a change to the 11 | * status text. 12 | * 13 | * @param newText 14 | * The text that the status has been changed to 15 | */ 16 | public void statusChanged(String newText); 17 | } 18 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/StoryComponentPanelJListObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.model.StoryComponent; 4 | 5 | public interface StoryComponentPanelJListObserver { 6 | public void componentSelected(StoryComponent component); 7 | 8 | } 9 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/StoryModelAdapter.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.model.complex.behaviours.Behaviour; 4 | import scriptease.model.semodel.dialogue.DialogueLine; 5 | import scriptease.model.semodel.librarymodel.LibraryModel; 6 | 7 | /** 8 | * Adapter for StoryModelObserver 9 | * 10 | * @author kschenk 11 | * @author jyuen 12 | */ 13 | public abstract class StoryModelAdapter implements StoryModelObserver { 14 | 15 | @Override 16 | public void dialogueRootAdded(DialogueLine root) { 17 | } 18 | 19 | @Override 20 | public void dialogueRootRemoved(DialogueLine removed) { 21 | } 22 | 23 | @Override 24 | public void libraryAdded(LibraryModel library) { 25 | } 26 | 27 | @Override 28 | public void libraryRemoved(LibraryModel library) { 29 | } 30 | 31 | @Override 32 | public void dialogueChildAdded(DialogueLine added, DialogueLine parent) { 33 | } 34 | 35 | @Override 36 | public void dialogueChildRemoved(DialogueLine removed, DialogueLine parent) { 37 | } 38 | 39 | @Override 40 | public void behaviourEditPressed(Behaviour behaviour) { 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/StoryModelObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.model.complex.behaviours.Behaviour; 4 | import scriptease.model.semodel.dialogue.DialogueLine; 5 | import scriptease.model.semodel.librarymodel.LibraryModel; 6 | 7 | /** 8 | * Observers are notified of changes to the story model. 9 | * 10 | * @author kschenk 11 | * @author jyuen 12 | * 13 | */ 14 | public interface StoryModelObserver { 15 | 16 | /** 17 | * Fired when a library is added to the story model. 18 | * 19 | * @param library 20 | */ 21 | public void libraryAdded(LibraryModel library); 22 | 23 | /** 24 | * Fired when a library is removed from the story model. 25 | * 26 | * @param library 27 | */ 28 | public void libraryRemoved(LibraryModel library); 29 | 30 | /** 31 | * Fired when a dialogue root is added to the story model. 32 | * 33 | * @param library 34 | */ 35 | public void dialogueRootAdded(DialogueLine root); 36 | 37 | /** 38 | * Fired when a dialogue root is removed from the story model. 39 | * 40 | * @param library 41 | */ 42 | public void dialogueRootRemoved(DialogueLine removed); 43 | 44 | /** 45 | * Fired when a dialogue child is added to the story model. 46 | * 47 | * @param library 48 | */ 49 | public void dialogueChildAdded(DialogueLine added, DialogueLine parent); 50 | 51 | /** 52 | * Fired when a dialogue child is removed from the story model. 53 | * 54 | * @param library 55 | */ 56 | public void dialogueChildRemoved(DialogueLine removed, DialogueLine parent); 57 | 58 | /** 59 | * Fired when the edit button is clicked on a behaviour. 60 | * 61 | * @param behaviour 62 | */ 63 | public void behaviourEditPressed(Behaviour behaviour); 64 | } 65 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/TranslatorObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | import scriptease.translator.Translator; 4 | 5 | /** 6 | * Allows implementers to be notified of new translators being loaded. 7 | * 8 | * @author remiller 9 | */ 10 | public interface TranslatorObserver { 11 | /** 12 | * Tells the TranslatorObserver that there has been a new 13 | * Translator loaded. 14 | */ 15 | public void translatorLoaded(Translator newTranslator); 16 | } 17 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/UndoManagerObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer; 2 | 3 | public interface UndoManagerObserver { 4 | 5 | public void stackChanged(); 6 | } 7 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/library/LibraryEvent.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer.library; 2 | 3 | import scriptease.model.StoryComponent; 4 | import scriptease.model.semodel.librarymodel.LibraryModel; 5 | 6 | /** 7 | * Encapsulates the possible changes in a {@link LibraryModel}. An instance of 8 | * LibraryEvent will be passed to observers who can then query the 9 | * event for more specific information. 10 | * 11 | * @author mfchurch 12 | * @author kschenk 13 | * 14 | */ 15 | public final class LibraryEvent { 16 | private final StoryComponent source; 17 | 18 | public static enum Type { 19 | ADDITION, REMOVAL, CHANGE 20 | } 21 | 22 | private final Type eventType; 23 | 24 | /** 25 | * Builds a LibraryEvent which records the way in which the 26 | * LibraryModel has changed. 27 | * 28 | * @param source 29 | * The StoryComponent added, or removed from the observed 30 | * LibaryModel. This may be null if the event is LIBRARY_REMOVED 31 | * @param type 32 | * The type constant that represents how the LibraryModel 33 | * changed. 34 | */ 35 | public LibraryEvent(StoryComponent source, Type type) { 36 | this.source = source; 37 | this.eventType = type; 38 | } 39 | 40 | public Type getEventType() { 41 | return this.eventType; 42 | } 43 | 44 | public StoryComponent getSource() { 45 | return this.source; 46 | } 47 | 48 | @Override 49 | public String toString() { 50 | return "LibraryEvent[" + source + ", " + eventType + "]"; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/library/LibraryObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer.library; 2 | 3 | import scriptease.model.semodel.librarymodel.LibraryModel; 4 | 5 | /** 6 | * Observer interface for the {@link LibraryManager}. 7 | * LibraryManagerObservers are notified whenever that pool changes. 8 | * 9 | * @author mfchurch 10 | */ 11 | public interface LibraryObserver { 12 | /** 13 | * Notifies the receiver that the model pool has changed. 14 | * 15 | * @param event 16 | * The {@link LibraryModel} that was added. 17 | */ 18 | public void modelChanged(LibraryModel changed, LibraryEvent event); 19 | } 20 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/observer/storycomponent/StoryComponentObserver.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.observer.storycomponent; 2 | 3 | 4 | 5 | /** 6 | * Represents the observer side of the Observer pattern for StoryComponents.
7 | *
8 | * Classes that implement this interface update themselves when 9 | * {@link #componentChanged(StoryComponentEvent)} is called. 10 | * 11 | * @author remiller 12 | */ 13 | public interface StoryComponentObserver { 14 | /** 15 | * Tells the StoryComponentObserver that there has been a 16 | * change made to a StoryComponent that it is observing. This can include 17 | * changing a property or adding a parameter. 18 | * 19 | * @param event 20 | * The event that encapsulates the information about the change. 21 | */ 22 | public void componentChanged(StoryComponentEvent event); 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/undo/FieldModification.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.undo; 2 | 3 | import scriptease.model.StoryComponent; 4 | 5 | /** 6 | * Represents and facilitates implementing the specific subgroup of 7 | * modifications that are simply field setting. The specific method used to set 8 | * or unset the field must be supplied in a subclass's implementation of 9 | * {@link #setOp(Object)}.
10 | *
11 | * For example, a modification that sets a StoryComponent's name 12 | * could be implemented by subclassing FieldModification and 13 | * implementing {@link #setOp(Object)} to use 14 | * {@link StoryComponent#setDisplayText(String)} . 15 | * 16 | * @author remiller 17 | * 18 | * @param 19 | * The type of the field being set. 20 | */ 21 | public abstract class FieldModification implements Modification { 22 | private final T newValue, oldValue; 23 | 24 | /** 25 | * Builds a new Set-specific Modification object. 26 | * 27 | * @param newValue 28 | * The new value used to set the property. 29 | * @param oldValue 30 | * The original value used to un-set the property. 31 | */ 32 | public FieldModification(T newValue, T oldValue) { 33 | this.newValue = newValue; 34 | this.oldValue = oldValue; 35 | } 36 | 37 | @Override 38 | public void redo() { 39 | this.setOp(this.newValue); 40 | } 41 | 42 | @Override 43 | public void undo() { 44 | this.setOp(this.oldValue); 45 | } 46 | 47 | /** 48 | * Performs the specific setX operation. This is what is called by 49 | * {@link #undo()} and {@link #redo()}. 50 | * 51 | * @param value 52 | * The value to set the property to. 53 | */ 54 | public abstract void setOp(T value); 55 | } -------------------------------------------------------------------------------- /scriptease2/scriptease/controller/undo/Modification.java: -------------------------------------------------------------------------------- 1 | package scriptease.controller.undo; 2 | 3 | /** 4 | * Represents one reversible atomic state change. This is derived from the 5 | * Command Pattern. The operation for moving forward, or 'doing', is defined by 6 | * {@link #redo()}, and the operation for moving backwards, or 'undoing' is 7 | * defined by {@link #undo()}. 8 | * 9 | * @author friesen 10 | * @author remiller 11 | */ 12 | public interface Modification { 13 | /** 14 | * Performs the modification. 15 | */ 16 | public void redo(); 17 | 18 | /** 19 | * Performs the opposite operation to undo the modification. 20 | */ 21 | public void undo(); 22 | } 23 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/SEGraph/StoryGraphManager.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.SEGraph; 2 | 3 | import java.util.ArrayList; 4 | 5 | import scriptease.model.complex.StoryNode; 6 | 7 | public class StoryGraphManager { 8 | 9 | private static final StoryGraphManager instance = new StoryGraphManager(); 10 | private ArrayList> storyGraphs = new ArrayList>(); 11 | 12 | public static StoryGraphManager getInstance(){ 13 | return StoryGraphManager.instance; 14 | } 15 | 16 | public void addGraph(SEGraph graph){ 17 | storyGraphs.add(graph); 18 | } 19 | 20 | public ArrayList> getStoryGraphs(){ 21 | return storyGraphs; 22 | } 23 | 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/SEGraph/models/DescribeItNodeGraphModel.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.SEGraph.models; 2 | 3 | import java.util.Collection; 4 | import java.util.HashSet; 5 | import java.util.Set; 6 | 7 | import scriptease.model.atomic.describeits.DescribeItNode; 8 | 9 | public class DescribeItNodeGraphModel extends SEGraphModel { 10 | 11 | public DescribeItNodeGraphModel(DescribeItNode start) { 12 | super(start); 13 | } 14 | 15 | @Override 16 | public DescribeItNode createNewNode() { 17 | return new DescribeItNode("", null); 18 | } 19 | 20 | @Override 21 | public boolean addChild(DescribeItNode child, DescribeItNode existingNode) { 22 | return existingNode.addSuccessor(child); 23 | } 24 | 25 | @Override 26 | public boolean removeChild(DescribeItNode child, DescribeItNode existingNode) { 27 | return existingNode.removeSuccessor(child); 28 | } 29 | 30 | @Override 31 | public Collection getChildren(DescribeItNode node) { 32 | return node.getSuccessors(); 33 | } 34 | 35 | @Override 36 | public Collection getParents(DescribeItNode node) { 37 | final Set parents; 38 | 39 | parents = new HashSet(); 40 | 41 | for (DescribeItNode storyPoint : this.getNodes()) { 42 | for (DescribeItNode successor : storyPoint.getSuccessors()) 43 | if (successor == node) { 44 | parents.add(storyPoint); 45 | } 46 | } 47 | return parents; 48 | } 49 | 50 | @Override 51 | public boolean overwriteNodeData(DescribeItNode existingNode, 52 | DescribeItNode node) { 53 | if (existingNode == node) 54 | return false; 55 | 56 | existingNode.setName(node.getName()); 57 | existingNode.setKnowIt(node.getKnowIt()); 58 | 59 | return true; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/SEGraph/models/TaskGraphModel.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.SEGraph.models; 2 | 3 | import java.util.Collection; 4 | 5 | import scriptease.model.complex.behaviours.CollaborativeTask; 6 | import scriptease.model.complex.behaviours.IndependentTask; 7 | import scriptease.model.complex.behaviours.Task; 8 | import scriptease.model.semodel.librarymodel.LibraryModel; 9 | 10 | /** 11 | * A graph model for tasks {@link Task} 12 | * 13 | * @author jyuen 14 | */ 15 | public class TaskGraphModel extends SEGraphModel { 16 | 17 | private final Task start; 18 | 19 | public TaskGraphModel(Task start) { 20 | super(start); 21 | this.start = start; 22 | } 23 | 24 | @Override 25 | public Task createNewNode() { 26 | final LibraryModel library = start.getLibrary(); 27 | 28 | if (start instanceof IndependentTask) 29 | return new IndependentTask(library); 30 | else 31 | return new CollaborativeTask(library); 32 | } 33 | 34 | @Override 35 | public boolean addChild(Task child, Task existingNode) { 36 | return existingNode.addSuccessor(child); 37 | } 38 | 39 | @Override 40 | public boolean removeChild(Task child, Task existingNode) { 41 | return existingNode.removeSuccessor(child); 42 | } 43 | 44 | @Override 45 | public Collection getChildren(Task node) { 46 | return node.getSuccessors(); 47 | } 48 | 49 | @Override 50 | public Collection getParents(Task node) { 51 | return node.getParents(); 52 | } 53 | 54 | @Override 55 | public boolean overwriteNodeData(Task existingNode, Task node) { 56 | if (existingNode == node) 57 | return false; 58 | 59 | for (Task parent : existingNode.getParents()) 60 | parent.addSuccessor(node); 61 | 62 | for (Task child : existingNode.getSuccessors()) 63 | node.addSuccessor(child); 64 | 65 | this.removeNode(existingNode); 66 | 67 | return true; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/SEGraph/observers/SEGraphAdapter.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.SEGraph.observers; 2 | 3 | import java.util.Collection; 4 | 5 | /** 6 | * Adapter of {@link SEGraphObserver} so that we do not need to implement all of 7 | * the methods every time. 8 | * 9 | * @author kschenk 10 | * @author jyuen 11 | */ 12 | public abstract class SEGraphAdapter implements SEGraphObserver { 13 | 14 | public void defaultHandler() { 15 | } 16 | 17 | @Override 18 | public void nodesConnected(E child, E parent) { 19 | this.defaultHandler(); 20 | } 21 | 22 | @Override 23 | public void nodesDisconnected(E child, E parent) { 24 | this.defaultHandler(); 25 | } 26 | 27 | @Override 28 | public void nodeOverwritten(E overwittenNode) { 29 | this.defaultHandler(); 30 | } 31 | 32 | @Override 33 | public void nodeAdded(E newNode, Collection children, 34 | Collection parents) { 35 | this.defaultHandler(); 36 | } 37 | 38 | @Override 39 | public void nodeRemoved(E removedNode) { 40 | this.defaultHandler(); 41 | } 42 | 43 | @Override 44 | public void nodesSelected(Collection nodes) { 45 | this.defaultHandler(); 46 | } 47 | 48 | @Override 49 | public void nodesGrouped(Collection nodes) { 50 | this.defaultHandler(); 51 | } 52 | 53 | @Override 54 | public void nodesUngrouped(Collection nodes) { 55 | this.defaultHandler(); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/SEGraph/renderers/DescribeItNodeRenderer.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.SEGraph.renderers; 2 | 3 | import java.awt.FlowLayout; 4 | 5 | import javax.swing.JComponent; 6 | import javax.swing.JLabel; 7 | import javax.swing.JPanel; 8 | 9 | import scriptease.gui.SEGraph.SEGraph; 10 | import scriptease.gui.component.ScriptWidgetFactory; 11 | import scriptease.gui.component.TypeWidget; 12 | import scriptease.gui.ui.ScriptEaseUI; 13 | import scriptease.model.atomic.KnowIt; 14 | import scriptease.model.atomic.describeits.DescribeItNode; 15 | 16 | /** 17 | * Renders DescribeItNodes as GraphNodes for display in an SEGraph. 18 | * 19 | * @author kschenk 20 | * 21 | */ 22 | public class DescribeItNodeRenderer extends SEGraphNodeRenderer { 23 | 24 | public DescribeItNodeRenderer(SEGraph graph) { 25 | super(graph); 26 | } 27 | 28 | @Override 29 | protected void configureInternalComponents(JComponent component, 30 | DescribeItNode node) { 31 | 32 | component.setLayout(new FlowLayout(FlowLayout.CENTER, 2, 0)); 33 | 34 | final KnowIt knowIt = node.getKnowIt(); 35 | final JLabel nameLabel; 36 | 37 | if (knowIt != null) { 38 | final JPanel typePanel; 39 | 40 | typePanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0)); 41 | 42 | typePanel.setOpaque(false); 43 | 44 | for (String type : knowIt.getAcceptableTypes()) { 45 | final TypeWidget typeWidget; 46 | 47 | typeWidget = ScriptWidgetFactory.buildTypeWidget(type); 48 | 49 | typeWidget.setSelected(true); 50 | typeWidget.setBackground(ScriptEaseUI.COLOUR_BOUND); 51 | typePanel.add(typeWidget); 52 | } 53 | component.add(typePanel); 54 | nameLabel = new JLabel(knowIt.getDisplayText()); 55 | } else { 56 | nameLabel = new JLabel(node.getName()); 57 | } 58 | 59 | component.add(nameLabel); 60 | 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/file/CloseModelAction.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package scriptease.gui.action.file; 5 | 6 | import java.awt.event.ActionEvent; 7 | 8 | import scriptease.controller.FileManager; 9 | import scriptease.gui.action.ActiveModelSensitiveAction; 10 | import scriptease.gui.internationalization.Il8nResources; 11 | import scriptease.model.semodel.SEModel; 12 | 13 | /** 14 | * Represents and performs the Close Tab command, as well as encapsulates its 15 | * enabled and name display state.
16 | *
17 | * Close Tab entails closing the currently active tab. This may also remove the 18 | * model from the model pool if it is the last tab open for that model. 19 | * 20 | * @author remiller 21 | */ 22 | @SuppressWarnings("serial") 23 | public class CloseModelAction extends ActiveModelSensitiveAction { 24 | private static final String CLOSE_MODEL = Il8nResources 25 | .getString("Close_Model"); 26 | private final SEModel model; 27 | 28 | /** 29 | * Defines an CloseModelAction object with a mnemonic. 30 | */ 31 | public CloseModelAction(SEModel model) { 32 | super(CloseModelAction.CLOSE_MODEL); 33 | this.model = model; 34 | } 35 | 36 | @Override 37 | public void actionPerformed(ActionEvent e) { 38 | if (FileManager.getInstance().hasUnsavedChanges(model)) { 39 | FileManager.getInstance().close(this.model); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/file/NewStoryModelAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.file; 2 | 3 | import java.awt.event.ActionEvent; 4 | import java.awt.event.KeyEvent; 5 | 6 | import javax.swing.AbstractAction; 7 | import javax.swing.Action; 8 | import javax.swing.KeyStroke; 9 | 10 | import scriptease.gui.WindowFactory; 11 | import scriptease.gui.internationalization.Il8nResources; 12 | 13 | /** 14 | * Represents and performs the New Model command, as well as encapsulates its 15 | * enabled and name display state.
16 | *
17 | * New Model entails creating a new model after allowing the user to select a module. 18 | * 19 | * @author graves 20 | */ 21 | @SuppressWarnings("serial") 22 | public final class NewStoryModelAction extends AbstractAction { 23 | private static final String NEW_MODEL = Il8nResources 24 | .getString("New_Model"); 25 | 26 | private static final Action instance = new NewStoryModelAction(); 27 | 28 | /** 29 | * Gets the sole instance of this particular type of Action 30 | * 31 | * @return The sole instance of this particular type of Action 32 | */ 33 | public static Action getInstance() { 34 | return NewStoryModelAction.instance; 35 | } 36 | 37 | /** 38 | * Defines a NewModelAction object with accelerator and 39 | * mnemonic. 40 | */ 41 | private NewStoryModelAction() { 42 | super(NewStoryModelAction.NEW_MODEL + "..."); 43 | 44 | this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( 45 | KeyEvent.VK_N, ActionEvent.CTRL_MASK)); 46 | } 47 | 48 | @Override 49 | public void actionPerformed(ActionEvent e) { 50 | // run a new model wizard! 51 | WindowFactory.getInstance().showNewStoryWizardDialog(); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/library/AddLibraryToStoryModelAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.library; 2 | 3 | import java.awt.event.ActionEvent; 4 | 5 | import scriptease.gui.action.ActiveModelSensitiveAction; 6 | import scriptease.gui.dialog.DialogBuilder; 7 | import scriptease.model.semodel.SEModel; 8 | import scriptease.model.semodel.SEModelManager; 9 | import scriptease.model.semodel.StoryModel; 10 | import scriptease.model.semodel.librarymodel.LibraryModel; 11 | 12 | /** 13 | * Adds a library to an open {@link StoryModel}. 14 | * 15 | * @author kschenk 16 | * @author jyuen 17 | */ 18 | @SuppressWarnings("serial") 19 | public class AddLibraryToStoryModelAction extends ActiveModelSensitiveAction { 20 | private final LibraryModel library; 21 | 22 | public AddLibraryToStoryModelAction(LibraryModel library) { 23 | super(library.getTitle()); 24 | 25 | this.setEnabled(true); 26 | 27 | this.library = library; 28 | } 29 | 30 | @Override 31 | protected boolean isLegal() { 32 | final SEModel model = SEModelManager.getInstance().getActiveModel(); 33 | 34 | return super.isLegal() && model instanceof StoryModel; 35 | } 36 | 37 | @Override 38 | public void actionPerformed(ActionEvent e) { 39 | DialogBuilder.getInstance().showAddLibraryInfoDialog(this.library); 40 | } 41 | 42 | public LibraryModel getLibrary() { 43 | return library; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/library/RemoveLibraryFromStoryModelAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.library; 2 | 3 | import java.awt.event.ActionEvent; 4 | 5 | import scriptease.gui.action.ActiveModelSensitiveAction; 6 | import scriptease.gui.dialog.DialogBuilder; 7 | import scriptease.model.semodel.SEModel; 8 | import scriptease.model.semodel.SEModelManager; 9 | import scriptease.model.semodel.StoryModel; 10 | import scriptease.model.semodel.librarymodel.LibraryModel; 11 | 12 | /** 13 | * Removes a library from an open {@link StoryModel} 14 | * 15 | * @author jyuen 16 | * 17 | */ 18 | @SuppressWarnings("serial") 19 | public class RemoveLibraryFromStoryModelAction extends 20 | ActiveModelSensitiveAction { 21 | 22 | private final LibraryModel library; 23 | 24 | public RemoveLibraryFromStoryModelAction(LibraryModel library) { 25 | super(library.getTitle()); 26 | 27 | this.setEnabled(true); 28 | 29 | this.library = library; 30 | } 31 | 32 | @Override 33 | protected boolean isLegal() { 34 | final SEModel model = SEModelManager.getInstance().getActiveModel(); 35 | 36 | return super.isLegal() && model instanceof StoryModel; 37 | } 38 | 39 | @Override 40 | public void actionPerformed(ActionEvent e) { 41 | DialogBuilder.getInstance().showRemoveLibraryInfoDialog(this.library, 42 | SEModelManager.getInstance().getActiveStoryModel()); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/libraryeditor/codeeditor/InsertIndentAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.libraryeditor.codeeditor; 2 | 3 | import java.awt.event.ActionEvent; 4 | import java.awt.event.KeyEvent; 5 | 6 | import javax.swing.Action; 7 | import javax.swing.KeyStroke; 8 | 9 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 10 | import scriptease.translator.codegenerator.code.fragments.container.IndentFragment; 11 | 12 | /** 13 | * Represents and performs the Insert Indent command, as well as encapsulating 14 | * its enabled and name display state. This command will insert a new 15 | * "IndentedFragment" into the story component builder code editor pane. 16 | * 17 | * Indents can only be inserted at the very top level, inside of scope 18 | * fragments, or inside of other indented fragments. They cannot be inserted 19 | * into line fragments. 20 | * 21 | * @author kschenk 22 | * 23 | */ 24 | @SuppressWarnings("serial") 25 | public final class InsertIndentAction extends AbstractInsertFragmentAction { 26 | private static final String INSERT_INDENT_TEXT = "Indent"; 27 | 28 | private static final InsertIndentAction instance = new InsertIndentAction(); 29 | 30 | /** 31 | * Defines a InsertIndentAction object. 32 | */ 33 | private InsertIndentAction() { 34 | super(InsertIndentAction.INSERT_INDENT_TEXT); 35 | this.putValue(Action.ACCELERATOR_KEY, 36 | KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.CTRL_MASK)); 37 | } 38 | 39 | /** 40 | * Gets the sole instance of this particular type of Action. 41 | * 42 | * @return The sole instance of this particular type of Action 43 | */ 44 | public static InsertIndentAction getInstance() { 45 | return InsertIndentAction.instance; 46 | } 47 | 48 | @Override 49 | protected AbstractFragment newFragment() { 50 | return new IndentFragment(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/libraryeditor/codeeditor/InsertLineAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.libraryeditor.codeeditor; 2 | 3 | import java.awt.event.ActionEvent; 4 | import java.awt.event.KeyEvent; 5 | 6 | import javax.swing.Action; 7 | import javax.swing.KeyStroke; 8 | 9 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 10 | import scriptease.translator.codegenerator.code.fragments.container.LineFragment; 11 | 12 | /** 13 | * Represents and performs the Insert Line command, as well as encapsulating its 14 | * enabled and name display state. This command will insert a new "LineFragment" 15 | * into the story component builder code editor pane. 16 | * 17 | * @author kschenk 18 | * 19 | */ 20 | @SuppressWarnings("serial") 21 | public final class InsertLineAction extends AbstractInsertFragmentAction { 22 | private static final String INSERT_LINE_TEXT = "Line"; 23 | 24 | private static final InsertLineAction instance = new InsertLineAction(); 25 | 26 | /** 27 | * Defines a InsertLineAction object. 28 | */ 29 | private InsertLineAction() { 30 | super(InsertLineAction.INSERT_LINE_TEXT); 31 | this.putValue(Action.ACCELERATOR_KEY, 32 | KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.CTRL_MASK)); 33 | } 34 | 35 | /** 36 | * Gets the sole instance of this particular type of Action. 37 | * 38 | * @return The sole instance of this particular type of Action 39 | */ 40 | public static InsertLineAction getInstance() { 41 | return InsertLineAction.instance; 42 | } 43 | 44 | @Override 45 | protected AbstractFragment newFragment() { 46 | return new LineFragment(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/libraryeditor/codeeditor/InsertLiteralAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.libraryeditor.codeeditor; 2 | 3 | import java.awt.event.ActionEvent; 4 | import java.awt.event.KeyEvent; 5 | 6 | import javax.swing.Action; 7 | import javax.swing.KeyStroke; 8 | 9 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 10 | import scriptease.translator.codegenerator.code.fragments.LiteralFragment; 11 | 12 | /** 13 | * Represents and performs the Insert Literal command, as well as encapsulating 14 | * its enabled and name display state. This command will insert a new 15 | * "LiteralFragment" into the story component builder code editor pane. 16 | * 17 | * @author kschenk 18 | * 19 | */ 20 | @SuppressWarnings("serial") 21 | public final class InsertLiteralAction extends AbstractInsertFragmentAction { 22 | private static final String INSERT_LITERAL_TEXT = "Literal"; 23 | 24 | private static final InsertLiteralAction instance = new InsertLiteralAction(); 25 | 26 | /** 27 | * Defines a InsertLiteralAction object. 28 | */ 29 | private InsertLiteralAction() { 30 | super(InsertLiteralAction.INSERT_LITERAL_TEXT); 31 | this.putValue(Action.ACCELERATOR_KEY, 32 | KeyStroke.getKeyStroke(KeyEvent.VK_6, ActionEvent.CTRL_MASK)); 33 | } 34 | 35 | /** 36 | * Gets the sole instance of this particular type of Action. 37 | * 38 | * @return The sole instance of this particular type of Action 39 | */ 40 | public static InsertLiteralAction getInstance() { 41 | return InsertLiteralAction.instance; 42 | } 43 | 44 | @Override 45 | protected AbstractFragment newFragment() { 46 | return new LiteralFragment(""); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/libraryeditor/codeeditor/InsertReferenceAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.libraryeditor.codeeditor; 2 | 3 | import java.awt.event.ActionEvent; 4 | import java.awt.event.KeyEvent; 5 | 6 | import javax.swing.Action; 7 | import javax.swing.KeyStroke; 8 | 9 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 10 | import scriptease.translator.codegenerator.code.fragments.FormatReferenceFragment; 11 | 12 | /** 13 | * Represents and performs the Insert Reference command, as well as 14 | * encapsulating its enabled and name display state. This command will insert a 15 | * new "ReferenceFragment" into the story component builder code editor pane. 16 | * 17 | * @author kschenk 18 | * 19 | */ 20 | @SuppressWarnings("serial") 21 | public final class InsertReferenceAction extends AbstractInsertFragmentAction { 22 | private static final String INSERT_REFERENCE_TEXT = "Reference"; 23 | 24 | private static final InsertReferenceAction instance = new InsertReferenceAction(); 25 | 26 | /** 27 | * Defines a InsertLiteralAction object. 28 | */ 29 | private InsertReferenceAction() { 30 | super(InsertReferenceAction.INSERT_REFERENCE_TEXT); 31 | this.putValue(Action.ACCELERATOR_KEY, 32 | KeyStroke.getKeyStroke(KeyEvent.VK_7, ActionEvent.CTRL_MASK)); 33 | } 34 | 35 | /** 36 | * Gets the sole instance of this particular type of Action. 37 | * 38 | * @return The sole instance of this particular type of Action 39 | */ 40 | public static InsertReferenceAction getInstance() { 41 | return InsertReferenceAction.instance; 42 | } 43 | 44 | @Override 45 | protected AbstractFragment newFragment() { 46 | return new FormatReferenceFragment(""); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/libraryeditor/codeeditor/InsertScopeAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.libraryeditor.codeeditor; 2 | 3 | import java.awt.event.ActionEvent; 4 | import java.awt.event.KeyEvent; 5 | 6 | import javax.swing.Action; 7 | import javax.swing.KeyStroke; 8 | 9 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 10 | import scriptease.translator.codegenerator.code.fragments.container.ScopeFragment; 11 | 12 | /** 13 | * Represents and performs the Insert Scope command, as well as encapsulating 14 | * its enabled and name display state. This command will insert a new 15 | * "ScopeFragment" into the story component builder code editor pane. 16 | * 17 | * @author kschenk 18 | * 19 | */ 20 | @SuppressWarnings("serial") 21 | public final class InsertScopeAction extends AbstractInsertFragmentAction { 22 | private static final String INSERT_SCOPE_TEXT = "Scope"; 23 | 24 | private static final InsertScopeAction instance = new InsertScopeAction(); 25 | 26 | /** 27 | * Defines a InsertScopeAction object. 28 | */ 29 | private InsertScopeAction() { 30 | super(InsertScopeAction.INSERT_SCOPE_TEXT); 31 | this.putValue(Action.ACCELERATOR_KEY, 32 | KeyStroke.getKeyStroke(KeyEvent.VK_3, ActionEvent.CTRL_MASK)); 33 | } 34 | 35 | /** 36 | * Gets the sole instance of this particular type of Action. 37 | * 38 | * @return The sole instance of this particular type of Action 39 | */ 40 | public static InsertScopeAction getInstance() { 41 | return InsertScopeAction.instance; 42 | } 43 | 44 | @Override 45 | protected AbstractFragment newFragment() { 46 | return new ScopeFragment(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/libraryeditor/codeeditor/InsertSeriesAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.libraryeditor.codeeditor; 2 | 3 | import java.awt.event.ActionEvent; 4 | import java.awt.event.KeyEvent; 5 | 6 | import javax.swing.Action; 7 | import javax.swing.KeyStroke; 8 | 9 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 10 | import scriptease.translator.codegenerator.code.fragments.container.SeriesFragment; 11 | 12 | /** 13 | * Represents and performs the Insert Series command, as well as encapsulating 14 | * its enabled and name display state. This command will insert a new 15 | * "SeriesFragment" into the story component builder code editor pane. 16 | * 17 | * @author kschenk 18 | * 19 | */ 20 | @SuppressWarnings("serial") 21 | public final class InsertSeriesAction extends AbstractInsertFragmentAction { 22 | private static final String INSERT_SERIES_TEXT = "Series"; 23 | 24 | private static final InsertSeriesAction instance = new InsertSeriesAction(); 25 | 26 | /** 27 | * Defines a InsertSeriesAction object. 28 | */ 29 | private InsertSeriesAction() { 30 | super(InsertSeriesAction.INSERT_SERIES_TEXT); 31 | this.putValue(Action.ACCELERATOR_KEY, 32 | KeyStroke.getKeyStroke(KeyEvent.VK_4, ActionEvent.CTRL_MASK)); 33 | } 34 | 35 | /** 36 | * Gets the sole instance of this particular type of Action. 37 | * 38 | * @return The sole instance of this particular type of Action 39 | */ 40 | public static InsertSeriesAction getInstance() { 41 | return InsertSeriesAction.instance; 42 | } 43 | 44 | @Override 45 | protected AbstractFragment newFragment() { 46 | return new SeriesFragment(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/libraryeditor/codeeditor/InsertSimpleAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.libraryeditor.codeeditor; 2 | 3 | import java.awt.event.ActionEvent; 4 | import java.awt.event.KeyEvent; 5 | 6 | import javax.swing.Action; 7 | import javax.swing.KeyStroke; 8 | 9 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 10 | import scriptease.translator.codegenerator.code.fragments.SimpleDataFragment; 11 | 12 | /** 13 | * Represents and performs the Insert Simple command, as well as encapsulating 14 | * its enabled and name display state. This command will insert a new 15 | * "SimpleFragment" into the story component builder code editor pane. 16 | * 17 | * @author kschenk 18 | * 19 | */ 20 | @SuppressWarnings("serial") 21 | public final class InsertSimpleAction extends AbstractInsertFragmentAction { 22 | private static final String INSERT_SIMPLE_TEXT = "Simple"; 23 | 24 | private static final InsertSimpleAction instance = new InsertSimpleAction(); 25 | 26 | /** 27 | * Defines a InsertLiteralAction object. 28 | */ 29 | private InsertSimpleAction() { 30 | super(InsertSimpleAction.INSERT_SIMPLE_TEXT); 31 | this.putValue(Action.ACCELERATOR_KEY, 32 | KeyStroke.getKeyStroke(KeyEvent.VK_5, ActionEvent.CTRL_MASK)); 33 | } 34 | 35 | /** 36 | * Gets the sole instance of this particular type of Action. 37 | * 38 | * @return The sole instance of this particular type of Action 39 | */ 40 | public static InsertSimpleAction getInstance() { 41 | return InsertSimpleAction.instance; 42 | } 43 | 44 | @Override 45 | protected AbstractFragment newFragment() { 46 | final SimpleDataFragment fragment = new SimpleDataFragment(); 47 | 48 | // We use "Name" the most, so set it to that by default. 49 | fragment.setDirectiveText(SimpleDataFragment.Type.NAME.name()); 50 | 51 | return fragment; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/libraryeditor/codeeditor/MoveFragmentDownAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.libraryeditor.codeeditor; 2 | 3 | /** 4 | * Represents and performs the Move Fragment Down action as well as 5 | * encapsulating its enabled and name display state. This command will move a 6 | * fragment one down in the list of fragments in a CodeBlock. 7 | * 8 | * @author kschenk 9 | * 10 | */ 11 | @SuppressWarnings("serial") 12 | public class MoveFragmentDownAction extends AbstractMoveFragmentAction { 13 | private static final String MOVE_DOWN_TEXT = "Down"; 14 | 15 | private static final MoveFragmentDownAction instance = new MoveFragmentDownAction(); 16 | 17 | private MoveFragmentDownAction() { 18 | super(MoveFragmentDownAction.MOVE_DOWN_TEXT); 19 | } 20 | 21 | public static MoveFragmentDownAction getInstance() { 22 | return MoveFragmentDownAction.instance; 23 | } 24 | 25 | @Override 26 | protected int delta() { 27 | return 1; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/libraryeditor/codeeditor/MoveFragmentUpAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.libraryeditor.codeeditor; 2 | 3 | /** 4 | * Represents and performs the Move Fragment Up action as well as encapsulating 5 | * its enabled and name display state. This command will move a fragment one up 6 | * in the list of fragments in a CodeBlock. 7 | * 8 | * @author kschenk 9 | * 10 | */ 11 | @SuppressWarnings("serial") 12 | public class MoveFragmentUpAction extends AbstractMoveFragmentAction { 13 | private static final String MOVE_UP_TEXT = "Up"; 14 | 15 | private static final MoveFragmentUpAction instance = new MoveFragmentUpAction(); 16 | 17 | private MoveFragmentUpAction() { 18 | super(MoveFragmentUpAction.MOVE_UP_TEXT); 19 | } 20 | 21 | public static MoveFragmentUpAction getInstance() { 22 | return MoveFragmentUpAction.instance; 23 | } 24 | 25 | @Override 26 | protected int delta() { 27 | return -1; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/preferences/StoryPropertiesAction.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.action.preferences; 2 | 3 | import java.awt.event.ActionEvent; 4 | 5 | import scriptease.gui.action.ActiveModelSensitiveAction; 6 | import scriptease.gui.dialog.DialogBuilder; 7 | import scriptease.model.semodel.SEModel; 8 | import scriptease.model.semodel.SEModelManager; 9 | import scriptease.model.semodel.StoryModel; 10 | 11 | /** 12 | * Represents and performs the Story Properties command, as well as encapsulates its 13 | * enabled and name display state.
14 | *
15 | * Story Properties allows the user to view and edit the current story title, author and description. 16 | * 17 | * @author zturchan 18 | */ 19 | @SuppressWarnings("serial") 20 | public class StoryPropertiesAction extends ActiveModelSensitiveAction { 21 | 22 | private static final String STORY_PROPERTIES = "Story Properties..."; 23 | 24 | // Singleton 25 | private static StoryPropertiesAction instance = null; 26 | 27 | @Override 28 | protected boolean isLegal() { 29 | final SEModel model = SEModelManager.getInstance().getActiveModel(); 30 | 31 | return super.isLegal() && model instanceof StoryModel; 32 | } 33 | 34 | /** 35 | * Gets the sole instance of this particular type of Action 36 | * 37 | * @return The sole instance of this particular type of Action 38 | */ 39 | public static StoryPropertiesAction getInstance() { 40 | if (instance == null) { 41 | instance = new StoryPropertiesAction(); 42 | } 43 | 44 | return StoryPropertiesAction.instance; 45 | } 46 | 47 | /** 48 | * Defines a StoryPropertiesAction object with a mnemonic 49 | * and accelerator. 50 | */ 51 | private StoryPropertiesAction() { 52 | super(StoryPropertiesAction.STORY_PROPERTIES); 53 | } 54 | 55 | @Override 56 | public void actionPerformed(ActionEvent e) { 57 | DialogBuilder.getInstance().showStoryPropertiesDialog(); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/system/ExitScriptEaseAction.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package scriptease.gui.action.system; 5 | 6 | import java.awt.event.ActionEvent; 7 | import java.awt.event.KeyEvent; 8 | 9 | import javax.swing.AbstractAction; 10 | import javax.swing.Action; 11 | 12 | import scriptease.ScriptEase; 13 | import scriptease.gui.internationalization.Il8nResources; 14 | 15 | /** 16 | * Represents and performs the Exit command, as well as encapsulates its enabled 17 | * and name display state.
18 | *
19 | * Exit entails calling ScriptEase's exit method with no error state. 20 | * 21 | * @author remiller 22 | */ 23 | @SuppressWarnings("serial") 24 | public final class ExitScriptEaseAction extends AbstractAction { 25 | private static final String EXIT = Il8nResources.getString("Exit"); 26 | 27 | private static final Action instance = new ExitScriptEaseAction(); 28 | 29 | /** 30 | * Gets the sole instance of this particular type of Action 31 | * 32 | * @return The sole instance of this particular type of Action 33 | */ 34 | public static Action getInstance() { 35 | return ExitScriptEaseAction.instance; 36 | } 37 | 38 | /** 39 | * Defines an ExitScriptEaseAction object with a mnemonic. 40 | */ 41 | private ExitScriptEaseAction() { 42 | super(ExitScriptEaseAction.EXIT); 43 | 44 | this.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_X); 45 | } 46 | 47 | @Override 48 | public void actionPerformed(ActionEvent e) { 49 | ScriptEase.getInstance().exit(); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/action/system/ShowErrorLogAction.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package scriptease.gui.action.system; 5 | 6 | import java.awt.event.ActionEvent; 7 | import java.awt.event.KeyEvent; 8 | 9 | import javax.swing.AbstractAction; 10 | import javax.swing.Action; 11 | 12 | import scriptease.gui.internationalization.Il8nResources; 13 | 14 | /** 15 | * Represents and performs the Show Error Log command, as well as encapsulates its enabled 16 | * and name display state.
17 | *
18 | * Show Error Log entails showing a window with ScriptEase's current error log output. 19 | * 20 | * @author remiller 21 | */ 22 | @SuppressWarnings("serial") 23 | public final class ShowErrorLogAction extends AbstractAction { 24 | private static final String SHOW_ERROR_LOG = Il8nResources 25 | .getString("Show_Error_Log"); 26 | 27 | private static final Action instance = new ShowErrorLogAction(); 28 | 29 | /** 30 | * Gets the sole instance of this particular type of Action 31 | * 32 | * @return The sole instance of this particular type of Action 33 | */ 34 | public static Action getInstance() { 35 | return ShowErrorLogAction.instance; 36 | } 37 | 38 | /** 39 | * Defines an CloseModelAction object with a mnemonic. 40 | */ 41 | private ShowErrorLogAction() { 42 | super(ShowErrorLogAction.SHOW_ERROR_LOG); 43 | 44 | this.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_L); 45 | } 46 | 47 | @Override 48 | public void actionPerformed(ActionEvent e) { 49 | System.err.println("SHOW_ERROR_LOG is not functioning yet."); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/component/ExpansionButton.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.component; 2 | 3 | import java.awt.Dimension; 4 | 5 | import javax.swing.Icon; 6 | import javax.swing.JButton; 7 | 8 | import scriptease.gui.ui.ScriptEaseUI; 9 | 10 | /** 11 | * JButton used for toggling between expanded and collapsed states. 12 | * 13 | * @author mfchurch 14 | */ 15 | @SuppressWarnings("serial") 16 | public class ExpansionButton extends JButton { 17 | private final Icon collapse; 18 | private final Icon expand; 19 | 20 | protected ExpansionButton(boolean isCollapsed) { 21 | this.expand = ScriptEaseUI.COLLAPSE_ICON; 22 | this.collapse = ScriptEaseUI.EXPAND_ICON; 23 | 24 | final Dimension MAX_SIZE; 25 | 26 | MAX_SIZE = new Dimension(Math.max(this.collapse.getIconWidth(), 27 | this.expand.getIconWidth()) + 1, Math.max( 28 | this.collapse.getIconHeight(), this.expand.getIconHeight()) + 1); 29 | 30 | this.setMaximumSize(MAX_SIZE); 31 | this.setPreferredSize(MAX_SIZE); 32 | this.setMinimumSize(MAX_SIZE); 33 | this.setFocusable(false); 34 | this.setOpaque(true); 35 | this.setCollapsed(isCollapsed); 36 | } 37 | 38 | public void setCollapsed(boolean isCollapsed) { 39 | if (isCollapsed) 40 | this.setIcon(this.collapse); 41 | else 42 | this.setIcon(this.expand); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/filters/Filterable.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.filters; 2 | 3 | public interface Filterable { 4 | public void updateFilter(Filter newFilter); 5 | } 6 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/filters/StoryComponentFilter.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.filters; 2 | 3 | import scriptease.translator.io.model.Resource; 4 | 5 | /** 6 | * Superclass for all filters that are capable of filtering StoryComponents. 7 | * 8 | * @author mfchurch 9 | * @author remiller 10 | */ 11 | public abstract class StoryComponentFilter extends Filter { 12 | @Override 13 | public void addRule(Filter newRule) { 14 | if (newRule instanceof StoryComponentFilter) { 15 | super.addRule(newRule); 16 | } else if (newRule != null) 17 | System.err 18 | .println("Can only update a StoryComponentFilter with another StoryComponentFilter"); 19 | } 20 | 21 | @Override 22 | public String toString() { 23 | return "StoryComponentFilter" + super.toString(); 24 | } 25 | 26 | @Override 27 | protected int getMatchCount(Resource resource) { 28 | return 0; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/filters/VisibilityFilter.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.filters; 2 | 3 | import scriptease.model.StoryComponent; 4 | 5 | /** 6 | * VisibilityFilter simple checks with the VisibilityManager to verify if the 7 | * component is acceptable. 8 | * 9 | * @author mfchurch 10 | * @author kschenk 11 | */ 12 | public class VisibilityFilter extends StoryComponentFilter { 13 | private boolean hideInvisible; 14 | 15 | public VisibilityFilter(boolean hideInvisible) { 16 | this.hideInvisible = hideInvisible; 17 | } 18 | 19 | @Override 20 | public int getMatchCount(StoryComponent component) { 21 | if (this.hideInvisible) 22 | return component.isVisible() ? 1 : 0; 23 | else 24 | return 1; 25 | } 26 | 27 | @Override 28 | public void addRule(Filter newFilter) { 29 | if (newFilter instanceof VisibilityFilter) { 30 | this.hideInvisible = ((VisibilityFilter) newFilter).hideInvisible; 31 | } else 32 | super.addRule(newFilter); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /scriptease2/scriptease/gui/transfer/BindingTransferable.java: -------------------------------------------------------------------------------- 1 | package scriptease.gui.transfer; 2 | 3 | import java.awt.datatransfer.DataFlavor; 4 | import java.awt.datatransfer.Transferable; 5 | import java.awt.datatransfer.UnsupportedFlavorException; 6 | import java.io.IOException; 7 | 8 | import scriptease.gui.component.BindingWidget; 9 | 10 | /** 11 | * Implementation of Transferable used in BindingTransferHandler for 12 | * BindingWidget drag and drop functionality. 13 | * 14 | * @author graves 15 | */ 16 | public class BindingTransferable implements Transferable { 17 | private Object data; 18 | 19 | public BindingTransferable(Object data) { 20 | this.data = data; 21 | } 22 | 23 | @Override 24 | public Object getTransferData(DataFlavor flavor) 25 | throws UnsupportedFlavorException, IOException { 26 | if (flavor.getRepresentationClass() == BindingWidget.class) { 27 | return this.data; 28 | } else { 29 | throw new UnsupportedFlavorException(flavor); 30 | } 31 | } 32 | 33 | @Override 34 | public DataFlavor[] getTransferDataFlavors() { 35 | return new DataFlavor[] { BindingWidgetTransferHandler.KnowItBindingFlavor }; 36 | } 37 | 38 | @Override 39 | public boolean isDataFlavorSupported(DataFlavor flavor) { 40 | return flavor.equals(BindingWidgetTransferHandler.KnowItBindingFlavor); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /scriptease2/scriptease/model/TypedComponent.java: -------------------------------------------------------------------------------- 1 | package scriptease.model; 2 | 3 | import java.util.Collection; 4 | 5 | /** 6 | * Has typing information associated with it. 7 | * 8 | * @author remiller 9 | */ 10 | public interface TypedComponent { 11 | /** 12 | * Gets the type for this typed component. 13 | * 14 | * @return The type. 15 | */ 16 | public Collection getTypes(); 17 | } 18 | -------------------------------------------------------------------------------- /scriptease2/scriptease/model/atomic/Note.java: -------------------------------------------------------------------------------- 1 | package scriptease.model.atomic; 2 | 3 | import scriptease.controller.StoryVisitor; 4 | import scriptease.model.StoryComponent; 5 | import scriptease.model.semodel.librarymodel.LibraryModel; 6 | 7 | /** 8 | * A story component that contains text and nothing else. Can be inserted 9 | * anywhere. 10 | * 11 | * @author kschenk 12 | * 13 | */ 14 | public final class Note extends StoryComponent { 15 | 16 | /** 17 | * Used to create the common note. If you're adding a note in code, it's 18 | * recommended to use {@link LibraryModel#createNote()} instead. 19 | * 20 | * @param library 21 | * @param id 22 | */ 23 | public Note(LibraryModel library) { 24 | this(library, ""); 25 | } 26 | 27 | /** 28 | * Used to build notes from save files. If you're adding a note in code, 29 | * it's recommended to use {@link LibraryModel#createNote()} instead. 30 | * 31 | * @param library 32 | * @param id 33 | */ 34 | public Note(LibraryModel library, String string) { 35 | super(library, string); 36 | } 37 | 38 | @Override 39 | public Note clone() { 40 | return (Note) super.clone(); 41 | } 42 | 43 | @Override 44 | public void process(StoryVisitor visitor) { 45 | visitor.processNote(this); 46 | 47 | } 48 | 49 | @Override 50 | public String getDescription() { 51 | return this.getDisplayText(); 52 | } 53 | 54 | @Override 55 | public void setDescription(String description) { 56 | // Do nothing. 57 | } 58 | 59 | @Override 60 | public void revalidateKnowItBindings() { 61 | // Do nothing. Notes don't have any bindings. 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /scriptease2/scriptease/model/atomic/knowitbindings/KnowItBindingFunction.java: -------------------------------------------------------------------------------- 1 | package scriptease.model.atomic.knowitbindings; 2 | 3 | import java.util.Collection; 4 | 5 | import scriptease.controller.BindingVisitor; 6 | import scriptease.model.complex.ScriptIt; 7 | 8 | /** 9 | * This class represents a Function binding for a KnowIt. 10 | * 11 | * @author graves 12 | * @see {@link scriptease.model.atomic.KnowIt} 13 | */ 14 | public class KnowItBindingFunction extends KnowItBinding { 15 | private ScriptIt functionValue; 16 | 17 | public KnowItBindingFunction(ScriptIt value) { 18 | this.functionValue = value; 19 | } 20 | 21 | @Override 22 | public String getScriptValue() { 23 | return ""; 24 | } 25 | 26 | @Override 27 | public ScriptIt getValue() { 28 | return this.functionValue; 29 | } 30 | 31 | public void setValue(ScriptIt value) { 32 | this.functionValue = value; 33 | } 34 | 35 | @Override 36 | public Collection getTypes() { 37 | return this.functionValue.getTypes(); 38 | } 39 | 40 | @Override 41 | public boolean equals(Object other) { 42 | return (other instanceof KnowItBindingFunction) 43 | && ((KnowItBindingFunction) other).functionValue 44 | .codeBlocksEqual(this.functionValue); 45 | } 46 | 47 | @Override 48 | public String toString() { 49 | return "KnowItBindingFunction : " + this.functionValue.toString(); 50 | } 51 | 52 | @Override 53 | public KnowItBinding resolveBinding() { 54 | return this; 55 | } 56 | 57 | /** 58 | * Return a new KnowItBindingFunction bound to a clone of its DoIt 59 | */ 60 | @Override 61 | public KnowItBinding clone() { 62 | return new KnowItBindingFunction(this.functionValue.clone()); 63 | } 64 | 65 | @Override 66 | public void process(BindingVisitor processController) { 67 | processController.processFunction(this); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /scriptease2/scriptease/model/complex/ActivityIt.java: -------------------------------------------------------------------------------- 1 | package scriptease.model.complex; 2 | 3 | import scriptease.controller.StoryVisitor; 4 | import scriptease.model.atomic.KnowIt; 5 | import scriptease.model.semodel.librarymodel.LibraryModel; 6 | 7 | /** 8 | * Represents a container of effects, descriptions, questions, and controls. 9 | * 10 | * @author jyuen 11 | */ 12 | public class ActivityIt extends ScriptIt { 13 | 14 | /** 15 | * Constructor. Creates a new ActivityIt with the given name 16 | * 17 | * @param name 18 | */ 19 | public ActivityIt(LibraryModel library, String name) { 20 | super(library, name); 21 | 22 | this.registerChildType(ScriptIt.class, 23 | ComplexStoryComponent.MAX_NUM_OF_ONE_TYPE); 24 | this.registerChildType(KnowIt.class, 25 | ComplexStoryComponent.MAX_NUM_OF_ONE_TYPE); 26 | this.registerChildType(ControlIt.class, 27 | ComplexStoryComponent.MAX_NUM_OF_ONE_TYPE); 28 | this.registerChildType(AskIt.class, 29 | ComplexStoryComponent.MAX_NUM_OF_ONE_TYPE); 30 | this.registerChildType(PickIt.class, 31 | ComplexStoryComponent.MAX_NUM_OF_ONE_TYPE); 32 | } 33 | 34 | @Override 35 | public void process(StoryVisitor processController) { 36 | processController.processActivityIt(this); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /scriptease2/scriptease/model/complex/CauseIt.java: -------------------------------------------------------------------------------- 1 | package scriptease.model.complex; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import scriptease.controller.StoryVisitor; 7 | import scriptease.model.StoryComponent; 8 | import scriptease.model.atomic.KnowIt; 9 | import scriptease.model.atomic.Note; 10 | import scriptease.model.complex.behaviours.Behaviour; 11 | import scriptease.model.semodel.librarymodel.LibraryModel; 12 | 13 | /** 14 | * A CauseIt represents a StoryComponent. It acts as a trigger and a cause / 15 | * pre-req. to effects. 16 | * 17 | * It contains codeBlocks, which are able to have parameters, implicits, 18 | * subjects and slots and return types. It also has 3 blocks - Active, Inactive, 19 | * and Always corresponding to the appropriate state of execution. 20 | * 21 | * @author mfchurch 22 | * @author kschenk 23 | * @author jyuen 24 | */ 25 | public class CauseIt extends ScriptIt { 26 | public CauseIt(LibraryModel library, String name) { 27 | super(library, name); 28 | final List> validTypes = new ArrayList>(); 29 | 30 | validTypes.add(ScriptIt.class); 31 | validTypes.add(KnowIt.class); 32 | validTypes.add(AskIt.class); 33 | validTypes.add(StoryComponentContainer.class); 34 | validTypes.add(Note.class); 35 | validTypes.add(ControlIt.class); 36 | validTypes.add(Behaviour.class); 37 | validTypes.add(PickIt.class); 38 | validTypes.add(ActivityIt.class); 39 | 40 | this.registerChildTypes(validTypes, MAX_NUM_OF_ONE_TYPE); 41 | } 42 | 43 | @Override 44 | public CauseIt clone() { 45 | return (CauseIt) super.clone(); 46 | } 47 | 48 | @Override 49 | public void process(StoryVisitor processController) { 50 | processController.processCauseIt(this); 51 | } 52 | 53 | @Override 54 | public String toString() { 55 | return "CauseIt [" + this.getDisplayText() + "]"; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/Il8nResources_en_US.properties: -------------------------------------------------------------------------------- 1 | = 2 | Help = Help 3 | About_ScriptEase = About ScriptEase 4 | File = File 5 | Select_Module = Select Module 6 | New = New 7 | New_Model = New Story 8 | New_Library = New Library 9 | Open_Model = Open 10 | Close_Model = Close 11 | Save = Save 12 | Save_Model = Save 13 | Save_Model_As = Save As 14 | Save_Model_and_Compile = Save and Compile 15 | Show_Error_Log = Show Error Log 16 | Exit = Exit 17 | Add = Add 18 | New_Encounter = New Encounter 19 | New_Do_It = New DoIt 20 | New_Start_It = New StartIt 21 | New_Ask_It = New AskIt 22 | Build = Build 23 | Play_Module_in_NWN = Play Module in NWN 24 | Load_Module_in_NWN = Load Module in NWN 25 | Encounter_Designer = Encounter Designer 26 | Encounter_Builder = Encounter Builder 27 | Read_Only_Module_Viewer = Read Only Module Viewer 28 | Plot_Token_Builder = Plot Token Builder 29 | Conversation_Builder = Conversation Builder 30 | Conversation_Editor = Conversation Editor 31 | Dialogue_Builder = Dialogue Builder 32 | Quest_Designer = Quest Designer 33 | Quest_Builder = Quest Builder 34 | Preferences = Preferences 35 | Edit = Edit 36 | Tools = Tools 37 | Debugger = Debugger 38 | Window = Window 39 | Cascading = Cascading 40 | Arrange_Windows = Arrange Windows 41 | View = View 42 | Tiled = Tiled 43 | Type_Filter_ = Type Filter: 44 | Search_Filter_ = Search: 45 | All = All 46 | Create=Create 47 | DoIt=Effect 48 | KnowIt=Description 49 | Test_Story = Test Story -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/Il8nResources_fr_FR.properties: -------------------------------------------------------------------------------- 1 | File = Fiche 2 | Test_Story = Essayez -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/Il8nResources_pl_PL.properties: -------------------------------------------------------------------------------- 1 | = 2 | Help = Elphay 3 | About_ScriptEase = Boutay Cripteasesay 4 | File = Ilefay 5 | Open_Module___ = Penoay Odulemay... 6 | Open_Module_as_Read_Only___ = Penoay Odulemay saay Eadray Nlyoay... 7 | Close_Module = Losecay Odulemay 8 | Save_Module = Avesay Odulemay 9 | Save_Module_As___ = Avesay Odulemay Saay... 10 | Save_Module_and_Compile = Avesay Odulemay ndaay Ompilecay 11 | Show_Error_Log = Howsay Rroreay Oglay 12 | Exit = Xiteay 13 | Build = Uildbay 14 | Play_Module_in_NWN = Laypay Odulemay niay NWN 15 | Load_Module_in_NWN = Oadlay Odulemay niay NWN 16 | Encounter_Designer = Ncountereay Esignerday 17 | Encounter_Builder = Ncountereay Uilderbay 18 | Read_Only_Module_Viewer = Eadray Nluoay Odulemay Iewervay 19 | Plot_Token_Builder = Lotpay Okentay Uilderbay 20 | Conversation_Builder = Onversationcay Uilderbay 21 | Conversation_Editor = Onversationcay Ditoreay 22 | Dialogue_Builder = Ialogueday Uilderbay 23 | Quest_Designer = Uestqay Esignerday 24 | Quest_Builder = Uestqay Uilderbay 25 | Preferences___ = Referencespay... 26 | Edit = Diteay 27 | Tools = Oolstay 28 | Debugger = Ebugerday -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/default_preferences.ini: -------------------------------------------------------------------------------- 1 | #ScriptEase Default Preferences File. 2 | 3 | #Application knowledge 4 | MaxUndoSteps=50 5 | 6 | # GUI Preferences 7 | UseJavaUI=false 8 | FontSize=12 9 | 10 | # Output directory 11 | outputDirectory=output 12 | 13 | # Debug Mode 14 | debug=false 15 | 16 | # Preferred Layout 17 | PreferredLayout=Compressed -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/buttonicons/connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/buttonicons/connect.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/buttonicons/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/buttonicons/delete.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/buttonicons/disconnect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/buttonicons/disconnect.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/buttonicons/group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/buttonicons/group.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/buttonicons/insert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/buttonicons/insert.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/buttonicons/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/buttonicons/select.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/cursors/connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/cursors/connect.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/cursors/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/cursors/delete.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/cursors/disconnect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/cursors/disconnect.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/cursors/group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/cursors/group.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/cursors/insert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/cursors/insert.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/cursors/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/cursors/select.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/cursors/unavailable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/cursors/unavailable.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/cursors/ungroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/cursors/ungroup.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/noteicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/noteicon.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Cursors/con_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Cursors/con_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Cursors/dc_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Cursors/dc_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Cursors/del_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Cursors/del_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Cursors/insertBet_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Cursors/insertBet_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Cursors/selection_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Cursors/selection_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images.zip -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/con_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/con_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/con_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/con_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/con_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/con_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/dc_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/dc_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/dc_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/dc_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/dc_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/dc_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/del_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/del_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/del_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/del_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/del_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/del_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertAlt_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertAlt_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertAlt_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertAlt_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertAlt_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertAlt_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertBet_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertBet_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertBet_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertBet_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertBet_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/insertBet_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/selection_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/selection_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/selection_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/selection_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/Large Size Images/selection_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/Large Size Images/selection_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/addition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/addition.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/addition_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/addition_line.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/questIcons/trashcan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/questIcons/trashcan.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Cursors/addition_cursor.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Cursors/addition_cursor.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Cursors/connection_new.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Cursors/connection_new.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Cursors/deletion_cursor.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Cursors/deletion_cursor.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Cursors/disconnection_new.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Cursors/disconnection_new.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Cursors/node_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Cursors/node_add.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Cursors/node_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Cursors/node_delete.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Cursors/path_draw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Cursors/path_draw.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Cursors/path_erase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Cursors/path_erase.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/con_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/con_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/con_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/con_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/con_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/con_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/dc_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/dc_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/dc_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/dc_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/dc_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/dc_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/del_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/del_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/del_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/del_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/del_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/del_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/insertAlt_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/insertAlt_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/insertAlt_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/insertAlt_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/insertAlt_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/insertAlt_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/insertBet_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/insertBet_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/insertBet_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/insertBet_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/insertBet_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/insertBet_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/selection_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/selection_dep.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/selection_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/selection_hover.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/Large Size Images/selection_static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/Large Size Images/selection_static.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/addition_new.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/addition_new.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/addition_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/addition_new.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/connection_new.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/connection_new.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/connection_new_icon.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/connection_new_icon.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/connection_new_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/connection_new_icon.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/deletion_new.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/deletion_new.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/deletion_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/deletion_new.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/disconnection_new.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/disconnection_new.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/disconnection_new_icon.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/disconnection_new_icon.pdn -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/disconnection_new_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/disconnection_new_icon.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/icons/src/trashcan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/icons/src/trashcan.png -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/lib/commons-logging-1.1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/lib/commons-logging-1.1.1.jar -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/lib/httpclient-4.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/lib/httpclient-4.0.1.jar -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/lib/httpcore-4.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/lib/httpcore-4.0.1.jar -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/lib/jcommon-1.0.17.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/lib/jcommon-1.0.17.jar -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/lib/jfreechart-1.0.14.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/lib/jfreechart-1.0.14.jar -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/lib/xstream-1.3.1/LICENSE.txt: -------------------------------------------------------------------------------- 1 | (BSD Style License) 2 | 3 | Copyright (c) 2003-2006, Joe Walnes 4 | Copyright (c) 2006-2007, XStream Committers 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | Redistributions of source code must retain the above copyright notice, this list of 11 | conditions and the following disclaimer. Redistributions in binary form must reproduce 12 | the above copyright notice, this list of conditions and the following disclaimer in 13 | the documentation and/or other materials provided with the distribution. 14 | 15 | Neither the name of XStream nor the names of its contributors may be used to endorse 16 | or promote products derived from this software without specific prior written 17 | permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 20 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 21 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 22 | SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 23 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 25 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY 27 | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 28 | DAMAGE. 29 | -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/lib/xstream-1.3.1/README.txt: -------------------------------------------------------------------------------- 1 | 2 | *********** 3 | ********************** XStream ********************** 4 | *********** 5 | 6 | "Java to XML Serialization, and back again" 7 | 8 | 9 | --[ Binaries ]----------------------------------------------- 10 | 11 | All binary artifacts are in the 'lib' directory. These include the 12 | xstream jars and any other library used at build time, 13 | or optional runtime extras. XPP3 is recommend for use as it will 14 | greatly improve the performance of XStream. 15 | 16 | --[ Documentation ]------------------------------------------ 17 | 18 | Documentation can be found in docs/index.html. This includes: 19 | * Introduction and tutorial 20 | * JavaDoc 21 | * Change log 22 | * Frequently asked questions 23 | 24 | --[ Source ]------------------------------------------------- 25 | 26 | The complete source for XStream is bundled. This includes: 27 | * Main API [src/java] 28 | * Unit tests [src/test] 29 | * Ant build files [build.xml] 30 | * Maven build files [pom.xml] 31 | * Dependencies [lib] 32 | 33 | ------------------------------------------------------------- 34 | 35 | -XStream Ccommitters 36 | 37 | http://xstream.codehaus.org/ 38 | 39 | -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/lib/xstream-1.3.1/lib/xpp3_min-1.1.4c.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/lib/xstream-1.3.1/lib/xpp3_min-1.1.4c.jar -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/lib/xstream-1.3.1/lib/xstream-1.3.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/lib/xstream-1.3.1/lib/xstream-1.3.1.jar -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/monocleDinosaur.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/scriptease2/scriptease/resources/monocleDinosaur.txt -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/schema/LanguageDictionarySchema.xsd: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /scriptease2/scriptease/resources/scriptease.ini: -------------------------------------------------------------------------------- 1 | # ==================================================== 2 | # ScriptEase Configuration File 3 | # 4 | # This file is for mission-critical data: information 5 | # that absolutely must be present, or else ScriptEase 6 | # cannot possibly hope to run. 7 | # ==================================================== 8 | 9 | # The directory where pattern libraries are to be located. 10 | PatternsDirectory=patterns 11 | 12 | # The directory where translators are expected to exist 13 | TranslatorsDirectory=translators 14 | 15 | # The Bug Report Server's web address 16 | BugServer=http://webdocs.cs.ualberta.ca/~script/bugs/buglogger.cgi 17 | 18 | # Expected location for all translators 19 | translatorPath=translators 20 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/GameCompilerException.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator; 2 | 3 | /** 4 | * Represents a problem with game compilation. This is a standard exception 5 | * class, and {@link RuntimeException} may be consulted for details. 6 | * 7 | * @author remiller 8 | */ 9 | @SuppressWarnings("serial") 10 | public class GameCompilerException extends RuntimeException { 11 | /** 12 | * Builds a new exception that was caused by the given Throwable problem. 13 | * 14 | * @param cause 15 | * The Throwable problem. May be null. 16 | */ 17 | public GameCompilerException(Throwable cause) { 18 | this("", cause); 19 | } 20 | 21 | /** 22 | * Builds a new exception that contains the given message. 23 | * 24 | * @param message 25 | * The detailed message that described the situation the 26 | * exception was created in. 27 | */ 28 | public GameCompilerException(String message) { 29 | this(message, null); 30 | } 31 | 32 | /** 33 | * Builds a new exception that contains the given message and was caused by 34 | * the given Throwable problem. 35 | * 36 | * @param message 37 | * The detailed message that described the situation the 38 | * exception was created in. 39 | * @param cause 40 | * The Throwable problem that caused this exception to exist. May be null. 41 | */ 42 | public GameCompilerException(String message, Throwable cause) { 43 | super(message, cause); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/CodeGenerationException.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator; 2 | /** 3 | * Exception class for code generation exceptions. 4 | * 5 | * @author kschenk 6 | * 7 | */ 8 | @SuppressWarnings("serial") 9 | public class CodeGenerationException extends RuntimeException { 10 | 11 | /** 12 | * Constructor that calls super with a message. 13 | * 14 | * @param message 15 | */ 16 | public CodeGenerationException(String message) { 17 | super(message); 18 | } 19 | 20 | /** 21 | * Constructor that calls super with a message and the cause. 22 | * 23 | * @param message 24 | * @param cause 25 | */ 26 | public CodeGenerationException(String message, Throwable cause) { 27 | super(message, cause); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/ScriptInfo.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator; 2 | 3 | import scriptease.translator.io.model.Resource; 4 | 5 | /** 6 | * Simple metadata class for scripts and their slots. 7 | * 8 | * @author remiller 9 | * @author mfchurch 10 | * 11 | */ 12 | public final class ScriptInfo { 13 | private final String code; 14 | private final LocationInformation locationInfo; 15 | 16 | /** 17 | * Builds a ScriptInfo that contains the given script metadata. 18 | * 19 | * @param code 20 | * The code fragment that represents the content of the script. 21 | * @param slot 22 | * The slot 23 | * @param object 24 | * The object 25 | */ 26 | public ScriptInfo(String code, LocationInformation locationInfo) { 27 | this.code = code; 28 | this.locationInfo = locationInfo; 29 | } 30 | 31 | public String getCode() { 32 | return this.code; 33 | } 34 | 35 | public String getSlot() { 36 | return this.locationInfo.getSlot(); 37 | } 38 | 39 | public Resource getSubject() { 40 | return this.locationInfo.getSubject(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/ResourceContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts; 2 | 3 | import scriptease.translator.io.model.Resource; 4 | 5 | /** 6 | * ResourceContext is a context for a Resource object. 7 | * 8 | * @author jyuen 9 | */ 10 | public class ResourceContext extends Context{ 11 | 12 | private final Resource resource; 13 | 14 | /** 15 | * Creates a new AskItContext with the source AskIt based on the context 16 | * passed in. 17 | * 18 | * @param other 19 | * @param source 20 | */ 21 | public ResourceContext(Context other, Resource source) { 22 | super(other); 23 | 24 | this.setLocationInfo(other.getLocationInfo()); 25 | this.resource = source; 26 | } 27 | 28 | @Override 29 | public String getTemplateID() { 30 | return resource.getTemplateID(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/knowitbinding/KnowItBindingContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.knowitbinding; 2 | 3 | import scriptease.model.atomic.knowitbindings.KnowItBinding; 4 | import scriptease.translator.codegenerator.code.contexts.Context; 5 | 6 | /** 7 | * KnowItBindingContext is Context for a KnowItBinding object. 8 | * 9 | * @see Context 10 | * @author mfchurch 11 | * 12 | */ 13 | public class KnowItBindingContext extends Context { 14 | protected KnowItBinding binding; 15 | 16 | public KnowItBindingContext(Context other, KnowItBinding source) { 17 | super(other); 18 | this.binding = source; 19 | } 20 | 21 | /** 22 | * Get the KnowItBinding's Type 23 | */ 24 | @Override 25 | public String getType() { 26 | return this.getModel().getType(this.binding.getFirstType()) 27 | .getCodeSymbol(); 28 | } 29 | 30 | @Override 31 | public String getValue() { 32 | return this.binding.getScriptValue(); 33 | } 34 | 35 | @Override 36 | public String getFormattedValue() { 37 | return this.getValue(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/knowitbinding/KnowItBindingFunctionContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.knowitbinding; 2 | 3 | import java.util.List; 4 | 5 | import scriptease.model.atomic.knowitbindings.KnowItBinding; 6 | import scriptease.translator.codegenerator.code.contexts.Context; 7 | import scriptease.translator.codegenerator.code.contexts.ContextFactory; 8 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 9 | 10 | /** 11 | * KnowItBindingFunctionContext is Context for a KnowItBindingFunction object. 12 | * 13 | * @see Context 14 | * @author mfchurch 15 | * @author kschenk 16 | * 17 | */ 18 | public class KnowItBindingFunctionContext extends KnowItBindingContext { 19 | public KnowItBindingFunctionContext(Context other, KnowItBinding source) { 20 | super(other, source); 21 | } 22 | 23 | /** 24 | * Get the KnowItBinding's ScriptIt Value 25 | */ 26 | @Override 27 | public String getValue() { 28 | final Context scriptItContext = ContextFactory.getInstance() 29 | .createContext(this, this.binding.getValue()); 30 | 31 | final List format; 32 | final String value; 33 | 34 | format = this.getTranslator().getLanguageDictionary() 35 | .getFunctionCallFormat(); 36 | value = AbstractFragment.resolveFormat(format, scriptItContext); 37 | 38 | return value; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/knowitbinding/KnowItBindingNullContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.knowitbinding; 2 | 3 | import scriptease.model.atomic.knowitbindings.KnowItBinding; 4 | import scriptease.model.atomic.knowitbindings.KnowItBindingNull; 5 | import scriptease.translator.codegenerator.code.contexts.Context; 6 | 7 | /** 8 | * KnowItBindingNullContext is Context for a KnowItBindingNull object. 9 | * 10 | * @see Context 11 | * @author mfchurch 12 | * 13 | */ 14 | public class KnowItBindingNullContext extends KnowItBindingContext { 15 | public KnowItBindingNullContext(Context other, KnowItBinding source) { 16 | super(other, source); 17 | } 18 | 19 | /** 20 | * Get the KnowItBinding's GameConstant Value 21 | */ 22 | @Override 23 | public String getValue() { 24 | return ((KnowItBindingNull) this.binding).getScriptValue(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/knowitbinding/KnowItBindingReferenceContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.knowitbinding; 2 | 3 | import scriptease.model.atomic.knowitbindings.KnowItBinding; 4 | import scriptease.model.atomic.knowitbindings.KnowItBindingReference; 5 | import scriptease.translator.codegenerator.code.contexts.Context; 6 | import scriptease.translator.codegenerator.code.contexts.ContextFactory; 7 | 8 | /** 9 | * KnowItBindingReferenceContext is Context for a KnowItBindingReference object. 10 | * 11 | * @see Context 12 | * @author mfchurch 13 | * 14 | */ 15 | public class KnowItBindingReferenceContext extends KnowItBindingContext { 16 | public KnowItBindingReferenceContext(Context other, KnowItBinding source) { 17 | super(other, source); 18 | } 19 | 20 | /** 21 | * Get the KnowItBinding's Reference Name 22 | */ 23 | @Override 24 | public String getValue() { 25 | Context knowItContext = ContextFactory.getInstance().createContext( 26 | this, ((KnowItBindingReference) this.binding).getValue()); 27 | return knowItContext.getName(); 28 | } 29 | } -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/knowitbinding/KnowItBindingStoryGroupContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.knowitbinding; 2 | 3 | import java.util.Collection; 4 | 5 | import scriptease.model.atomic.knowitbindings.KnowItBinding; 6 | import scriptease.model.atomic.knowitbindings.KnowItBindingStoryGroup; 7 | import scriptease.model.complex.StoryGroup; 8 | import scriptease.translator.codegenerator.code.contexts.Context; 9 | import scriptease.translator.codegenerator.code.contexts.ContextFactory; 10 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 11 | 12 | /** 13 | * Code generation Context for a KnowItBindingStoryGroup object. 14 | * 15 | * @see Context 16 | * @see KnowItBindingContext 17 | * @author jyuen 18 | */ 19 | public class KnowItBindingStoryGroupContext extends KnowItBindingContext { 20 | 21 | public KnowItBindingStoryGroupContext(Context other, KnowItBinding source) { 22 | super(other, source); 23 | } 24 | 25 | @Override 26 | public String getFormattedValue() { 27 | final Collection typeFormat; 28 | 29 | typeFormat = this.getTranslator().getLibrary() 30 | .getType(StoryGroup.STORY_GROUP_TYPE).getFormat(); 31 | 32 | if (typeFormat == null || typeFormat.isEmpty()) 33 | return this.getValue(); 34 | 35 | return AbstractFragment.resolveFormat(typeFormat, this); 36 | } 37 | 38 | /** 39 | * Get the KnowItBinding's StoryPoint Name 40 | */ 41 | @Override 42 | public String getValue() { 43 | final StoryGroup group = ((KnowItBindingStoryGroup) this.binding) 44 | .getValue(); 45 | 46 | final Context knowItContext; 47 | 48 | knowItContext = ContextFactory.getInstance().createContext(this, group); 49 | 50 | return knowItContext.getName(); 51 | } 52 | } -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/knowitbinding/KnowItBindingUninitializedContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.knowitbinding; 2 | 3 | import scriptease.model.atomic.knowitbindings.KnowItBinding; 4 | import scriptease.model.atomic.knowitbindings.KnowItBindingUninitialized; 5 | import scriptease.translator.codegenerator.code.contexts.Context; 6 | import scriptease.translator.codegenerator.code.contexts.ContextFactory; 7 | 8 | /** 9 | * KnowItBindingUninitializedContext is a Context for a 10 | * KnowItBindingUninitialized object. 11 | * 12 | * @see Context 13 | * @author jyuen 14 | */ 15 | public class KnowItBindingUninitializedContext extends KnowItBindingContext { 16 | 17 | public KnowItBindingUninitializedContext(Context other, KnowItBinding source) { 18 | super(other, source); 19 | } 20 | 21 | /** 22 | * Get the KnowItBinding's Reference Name 23 | */ 24 | @Override 25 | public String getValue() { 26 | Context knowItContext = ContextFactory.getInstance().createContext( 27 | this, ((KnowItBindingUninitialized) this.binding).getValue()); 28 | 29 | return knowItContext.getName(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/AskItContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent; 2 | 3 | import java.util.Collection; 4 | 5 | import scriptease.controller.StoryComponentUtils; 6 | import scriptease.model.atomic.KnowIt; 7 | import scriptease.model.complex.AskIt; 8 | import scriptease.model.complex.StoryComponentContainer; 9 | import scriptease.translator.codegenerator.code.contexts.Context; 10 | 11 | /** 12 | * AskItContext is Context for a AskIt object. 13 | * 14 | * @see Context 15 | * @author mfchurch 16 | * 17 | */ 18 | public class AskItContext extends StoryComponentContext { 19 | 20 | /** 21 | * Creates a new AskItContext with the source AskIt based on the context 22 | * passed in. 23 | * 24 | * @param other 25 | * @param source 26 | */ 27 | public AskItContext(Context other, AskIt source) { 28 | super(other, source); 29 | } 30 | 31 | /** 32 | * Get the AskIt's Condition 33 | */ 34 | @Override 35 | public String getCondition() { 36 | final KnowIt condition = this.getComponent().getCondition(); 37 | if (condition != null) 38 | return this.getNameOf(condition); 39 | return ""; 40 | } 41 | 42 | /** 43 | * Get the AskIt's IfChild 44 | */ 45 | @Override 46 | public StoryComponentContainer getIfChild() { 47 | return this.getComponent().getIfBlock(); 48 | } 49 | 50 | /** 51 | * Get the AskIt's ElseChild 52 | */ 53 | @Override 54 | public StoryComponentContainer getElseChild() { 55 | return this.getComponent().getElseBlock(); 56 | } 57 | 58 | /** 59 | * Get the AskIt's condition and it's dependencies 60 | */ 61 | @Override 62 | public Collection getVariables() { 63 | return StoryComponentUtils.getVariables(this.getComponent()); 64 | } 65 | 66 | @Override 67 | public AskIt getComponent() { 68 | return (AskIt) super.getComponent(); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/PickItContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent; 2 | 3 | import java.util.Collection; 4 | 5 | import scriptease.model.StoryComponent; 6 | import scriptease.model.complex.PickIt; 7 | import scriptease.translator.codegenerator.code.contexts.Context; 8 | 9 | /** 10 | * PickItContext is Context for a PickIt {@link PickIt} object. 11 | * 12 | * @see Context 13 | * @author jyuen 14 | * 15 | */ 16 | public class PickItContext extends StoryComponentContext { 17 | 18 | final PickIt pickIt; 19 | 20 | /** 21 | * Creates a new PickItContext with the source PickIt based on the context 22 | * passed in. 23 | * 24 | * @param other 25 | * @param source 26 | */ 27 | public PickItContext(Context other, PickIt source) { 28 | super(other, source); 29 | 30 | this.pickIt = source; 31 | } 32 | 33 | @Override 34 | public PickIt getComponent() { 35 | return (PickIt) super.getComponent(); 36 | } 37 | 38 | @Override 39 | public String getTotalChoiceProbability() { 40 | int totalProbability = 0; 41 | 42 | for (Integer choiceProbability : pickIt.getChoices().values()) { 43 | totalProbability += choiceProbability; 44 | } 45 | 46 | return Integer.toString(totalProbability); 47 | } 48 | 49 | @Override 50 | public Collection getChoices() { 51 | return pickIt.getChildren(); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/complexstorycomponent/ComplexStoryComponentContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent.complexstorycomponent; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Collection; 5 | 6 | import scriptease.controller.StoryComponentUtils; 7 | import scriptease.model.StoryComponent; 8 | import scriptease.model.atomic.KnowIt; 9 | import scriptease.model.complex.ComplexStoryComponent; 10 | import scriptease.translator.codegenerator.code.contexts.Context; 11 | import scriptease.translator.codegenerator.code.contexts.storycomponent.StoryComponentContext; 12 | 13 | /** 14 | * Context representing a ComplexStoryComponent 15 | * 16 | * @author mfchurch 17 | * 18 | */ 19 | public class ComplexStoryComponentContext extends StoryComponentContext { 20 | 21 | /** 22 | * Creates a new ComplexStoryComponentContext. 23 | * 24 | * @param other 25 | * @param source 26 | */ 27 | public ComplexStoryComponentContext(Context other, 28 | ComplexStoryComponent source) { 29 | super(other, source); 30 | } 31 | 32 | /** 33 | * Get all of the ComplexStoryComponent's children 34 | */ 35 | @Override 36 | public final Collection getChildren() { 37 | return this.getComponent().getChildren(); 38 | } 39 | 40 | /** 41 | * Get all of the ComplexStoryComponent's knowIt children 42 | */ 43 | @Override 44 | public Collection getVariables() { 45 | final Collection variables = new ArrayList(); 46 | 47 | for (StoryComponent child : this.getChildren()) { 48 | variables.addAll(StoryComponentUtils.getVariables(child)); 49 | } 50 | 51 | return variables; 52 | } 53 | 54 | @Override 55 | public ComplexStoryComponent getComponent() { 56 | return (ComplexStoryComponent) super.getComponent(); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/complexstorycomponent/scriptit/ActivityItContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent.complexstorycomponent.scriptit; 2 | 3 | import scriptease.model.complex.ActivityIt; 4 | import scriptease.translator.codegenerator.code.contexts.Context; 5 | 6 | /** 7 | * Context for {@link ActivityIt} 8 | * 9 | * @author jyuen 10 | */ 11 | public class ActivityItContext extends ScriptItContext { 12 | 13 | /** 14 | * Creates a new FunctionItContext with the source FunctionIt based on the context 15 | * passed in. 16 | * 17 | * @param other 18 | * @param source 19 | */ 20 | public ActivityItContext(Context other, ActivityIt source) { 21 | super(other, source); 22 | } 23 | 24 | @Override 25 | public ActivityIt getComponent() { 26 | return (ActivityIt) super.getComponent(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/complexstorycomponent/scriptit/BehaviourContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent.complexstorycomponent.scriptit; 2 | 3 | import java.util.Collection; 4 | 5 | import scriptease.model.complex.ScriptIt; 6 | import scriptease.model.complex.behaviours.Behaviour; 7 | import scriptease.model.complex.behaviours.Task; 8 | import scriptease.translator.codegenerator.code.contexts.Context; 9 | 10 | public class BehaviourContext extends ScriptItContext { 11 | private static int uniqueIDCounter = 0; 12 | private final int uniqueID; 13 | 14 | public BehaviourContext(Context other, ScriptIt source) { 15 | super(other, source); 16 | this.uniqueID = uniqueIDCounter++; 17 | } 18 | 19 | @Override 20 | public Behaviour getComponent() { 21 | return (Behaviour) super.getComponent(); 22 | } 23 | 24 | @Override 25 | public Task getStartTask() { 26 | return this.getComponent().getStartTask(); 27 | } 28 | 29 | @Override 30 | public Collection getTasks() { 31 | return this.getStartTask().getDescendants(); 32 | } 33 | 34 | @Override 35 | public String getProbabilityCount() { 36 | // TODO implement behaviour prob count 37 | return super.getProbabilityCount(); 38 | } 39 | 40 | @Override 41 | public String getUniqueID() { 42 | return "" + uniqueID; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/complexstorycomponent/scriptit/CauseItContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent.complexstorycomponent.scriptit; 2 | 3 | import scriptease.model.atomic.KnowIt; 4 | import scriptease.model.complex.CauseIt; 5 | import scriptease.translator.codegenerator.code.contexts.Context; 6 | 7 | /** 8 | * CauseItContexts are contexts for CauseIts. 9 | * 10 | * @author jyuen 11 | */ 12 | public class CauseItContext extends ScriptItContext { 13 | 14 | public CauseItContext(Context other, CauseIt source) { 15 | super(other, source); 16 | } 17 | 18 | @Override 19 | public CauseIt getComponent() { 20 | return (CauseIt) super.getComponent(); 21 | } 22 | 23 | @Override 24 | public KnowIt getSubject() { 25 | return this.getComponent().getMainCodeBlock().getSubject(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/complexstorycomponent/storynode/StoryGroupContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent.complexstorycomponent.storynode; 2 | 3 | import java.util.Collection; 4 | 5 | import scriptease.model.complex.StoryGroup; 6 | import scriptease.model.complex.StoryPoint; 7 | import scriptease.translator.codegenerator.code.contexts.Context; 8 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 9 | 10 | /** 11 | * Context representing a StoryGroup 12 | * 13 | * @author jyuen 14 | */ 15 | public class StoryGroupContext extends StoryNodeContext { 16 | 17 | /** 18 | * Creates a new StoryGroupContext with a previous context and the 19 | * {@link StoryGroup} source. 20 | * 21 | * @param other 22 | * @param source 23 | */ 24 | public StoryGroupContext(Context other, StoryPoint source) { 25 | super(other, source); 26 | } 27 | 28 | @Override 29 | public String getFormattedValue() { 30 | final Collection typeFormat; 31 | 32 | typeFormat = this.getTranslator().getLibrary() 33 | .getType(StoryGroup.STORY_GROUP_TYPE).getFormat(); 34 | if (typeFormat == null || typeFormat.isEmpty()) 35 | return this.getValue(); 36 | 37 | return AbstractFragment.resolveFormat(typeFormat, this); 38 | } 39 | 40 | @Override 41 | public StoryGroup getComponent() { 42 | return (StoryGroup) super.getComponent(); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/complexstorycomponent/storynode/StoryNodeContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent.complexstorycomponent.storynode; 2 | 3 | import scriptease.model.complex.StoryNode; 4 | import scriptease.translator.codegenerator.code.contexts.Context; 5 | import scriptease.translator.codegenerator.code.contexts.storycomponent.complexstorycomponent.ComplexStoryComponentContext; 6 | 7 | /** 8 | * Context representing a StoryNode 9 | * 10 | * @author jyuen 11 | * 12 | */ 13 | public class StoryNodeContext extends ComplexStoryComponentContext { 14 | 15 | /** 16 | * Creates a new StoryNode context 17 | * 18 | * @param other 19 | * @param source 20 | */ 21 | public StoryNodeContext(Context other, StoryNode source) { 22 | super(other, source); 23 | } 24 | 25 | @Override 26 | public String getUniqueID() { 27 | return this.getComponent().getUniqueID().toString(); 28 | } 29 | 30 | @Override 31 | public StoryNode getComponent() { 32 | return (StoryNode) super.getComponent(); 33 | } 34 | 35 | @Override 36 | public String getName() { 37 | return this.getNameOf(this.getComponent()); 38 | } 39 | 40 | @Override 41 | public String getValue() { 42 | return this.getName(); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/complexstorycomponent/task/CollaborativeTaskContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent.complexstorycomponent.task; 2 | 3 | import scriptease.model.complex.behaviours.CollaborativeTask; 4 | import scriptease.model.complex.behaviours.IndependentTask; 5 | import scriptease.translator.codegenerator.code.contexts.Context; 6 | 7 | public class CollaborativeTaskContext extends TaskContext { 8 | 9 | public CollaborativeTaskContext(Context other, CollaborativeTask task) { 10 | super(other, task); 11 | } 12 | 13 | @Override 14 | public IndependentTask getComponent() { 15 | return (IndependentTask) super.getComponent(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/contexts/storycomponent/complexstorycomponent/task/IndependentTaskContext.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.contexts.storycomponent.complexstorycomponent.task; 2 | 3 | import scriptease.model.complex.behaviours.IndependentTask; 4 | import scriptease.translator.codegenerator.code.contexts.Context; 5 | 6 | public class IndependentTaskContext extends TaskContext { 7 | 8 | public IndependentTaskContext(Context other, IndependentTask source) { 9 | super(other, source); 10 | } 11 | 12 | @Override 13 | public IndependentTask getComponent() { 14 | return (IndependentTask) super.getComponent(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/fragments/LiteralFragment.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.fragments; 2 | 3 | import scriptease.controller.FragmentVisitor; 4 | import scriptease.translator.codegenerator.code.contexts.Context; 5 | 6 | /** 7 | * Represents a code location where a text string is to be inserted verbatim 8 | * from the format dictionary. 9 | * 10 | * @author remiller 11 | */ 12 | public class LiteralFragment extends AbstractFragment { 13 | /** 14 | * See: 15 | * {@link AbstractFragment#FormatFragment(String, CharacterRange, char[])} 16 | * 17 | * @param text 18 | * The specific literal. 19 | */ 20 | public LiteralFragment(String text) { 21 | super(text); 22 | } 23 | 24 | /** 25 | * Gets the literal text. The context is unimportant and can be 26 | * null. 27 | */ 28 | @Override 29 | public String resolve(Context context) { 30 | return this.getDirectiveText(); 31 | } 32 | 33 | @Override 34 | public String toString() { 35 | return "\"" + this.getDirectiveText() + "\""; 36 | } 37 | 38 | @Override 39 | public boolean equals(Object obj) { 40 | if (obj instanceof LiteralFragment) 41 | return this.hashCode() == obj.hashCode(); 42 | return false; 43 | } 44 | 45 | @Override 46 | public void process(FragmentVisitor visitor) { 47 | visitor.processLiteralFragment(this); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/codegenerator/code/fragments/container/FormatDefinitionFragment.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.codegenerator.code.fragments.container; 2 | 3 | import java.util.List; 4 | 5 | import scriptease.controller.FragmentVisitor; 6 | import scriptease.translator.codegenerator.code.fragments.AbstractFragment; 7 | 8 | /** 9 | * FormatFragment used to store a format in the Language Dictionary. Basic 10 | * implementation of {@link AbstractContainerFragment}. 11 | * 12 | * @author mfchurch 13 | */ 14 | public class FormatDefinitionFragment extends AbstractContainerFragment { 15 | 16 | public FormatDefinitionFragment(String text, List children) { 17 | super(text, children); 18 | } 19 | 20 | @Override 21 | public String toString() { 22 | return "FormatIDFragment [" + this.getDirectiveText() 23 | + this.subFragments.toString() + "]"; 24 | } 25 | 26 | @Override 27 | public boolean equals(Object obj) { 28 | if (obj instanceof FormatDefinitionFragment) { 29 | return this.hashCode() == obj.hashCode(); 30 | } 31 | return false; 32 | } 33 | 34 | @Override 35 | public void process(FragmentVisitor visitor) { 36 | visitor.processFormatDefinitionFragment(this); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /scriptease2/scriptease/translator/io/tools/FileReader.java: -------------------------------------------------------------------------------- 1 | package scriptease.translator.io.tools; 2 | 3 | import java.io.IOException; 4 | import java.io.RandomAccessFile; 5 | 6 | 7 | public class FileReader { 8 | private static boolean useBigEndian = true; 9 | 10 | public static String readString(RandomAccessFile moduleSource, int numOfChars) { 11 | return new String(FileReader.readBytes(moduleSource, numOfChars)); 12 | } 13 | 14 | public static int readIntLSB(RandomAccessFile moduleSource) { 15 | byte[] bytes = FileReader.readBytes(moduleSource, 4); 16 | return BitwiseConverter.byteArrToInt(BitwiseConverter.reverseEndian(bytes, 4)); 17 | } 18 | 19 | public static byte[] readBytes(RandomAccessFile moduleSource, int numBytes){ 20 | byte[] bytes = new byte[numBytes]; 21 | try { 22 | moduleSource.read(bytes); 23 | } catch (IOException e) { 24 | e.printStackTrace(); 25 | } 26 | if( FileReader.useBigEndian ){ 27 | bytes = BitwiseConverter.reverseEndian(bytes, 4); 28 | } 29 | return bytes; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /scriptease2/scriptease/util/ImageOp.java: -------------------------------------------------------------------------------- 1 | package scriptease.util; 2 | 3 | import java.awt.Graphics2D; 4 | import java.awt.image.BufferedImage; 5 | import java.util.Collection; 6 | 7 | import javax.swing.JComponent; 8 | 9 | //General imageop class, anything that deals with graphics and has no where else where to go 10 | //goes here, all methods should be static 11 | 12 | public class ImageOp { 13 | 14 | // Take a Jcomponent and converts it into an image 15 | public static BufferedImage componentToImage(JComponent component) { 16 | BufferedImage image = new BufferedImage(component.getWidth(), 17 | component.getHeight(), BufferedImage.TYPE_INT_ARGB); 18 | 19 | Graphics2D g = image.createGraphics(); 20 | component.paint(g); 21 | 22 | return image; 23 | } 24 | 25 | // Merges a collection of images into a single image 26 | public static BufferedImage mergeImages( 27 | Collection imagesToMerge) { 28 | BufferedImage image; 29 | int pixelBuffer = 3; 30 | int maxWidth = 0; 31 | int sigmaHeight = 0; 32 | int tempNW = 0; 33 | 34 | for (BufferedImage img : imagesToMerge) { 35 | tempNW = img.getWidth(); 36 | if (tempNW > maxWidth) 37 | maxWidth = tempNW; 38 | 39 | sigmaHeight += img.getHeight(); 40 | } 41 | 42 | image = new BufferedImage(maxWidth, sigmaHeight + imagesToMerge.size() 43 | * pixelBuffer, BufferedImage.TYPE_INT_ARGB); 44 | 45 | int deltaY = 0; 46 | for (BufferedImage img : imagesToMerge) { 47 | image.createGraphics().drawImage(img, 0, deltaY, null); 48 | deltaY += img.getHeight() + pixelBuffer; 49 | } 50 | 51 | return image; 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /translators_src/botstory/.settings/org.eclipse.cdt.managedbuilder.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/CPATH/delimiter=; 3 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/CPATH/operation=remove 4 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/CPLUS_INCLUDE_PATH/delimiter=; 5 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/CPLUS_INCLUDE_PATH/operation=remove 6 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/C_INCLUDE_PATH/delimiter=; 7 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/C_INCLUDE_PATH/operation=remove 8 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/append=true 9 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/appendContributed=true 10 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/LIBRARY_PATH/delimiter=; 11 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/LIBRARY_PATH/operation=remove 12 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/append=true 13 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1403449573/appendContributed=true 14 | -------------------------------------------------------------------------------- /translators_src/botstory/Debug/botstory.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/botstory/Debug/botstory.exe -------------------------------------------------------------------------------- /translators_src/botstory/Debug/src/HEBStory.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/botstory/Debug/src/HEBStory.o -------------------------------------------------------------------------------- /translators_src/botstory/Debug/src/main.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/botstory/Debug/src/main.o -------------------------------------------------------------------------------- /translators_src/botstory/src/HEBStory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * HEBStory.h 3 | * 4 | * Created on: May 5, 2015 5 | * Author: ehill 6 | */ 7 | 8 | #ifndef HEBSTORY_H_ 9 | #define HEBSTORY_H_ 10 | 11 | #include 12 | #include 13 | 14 | using namespace std; 15 | 16 | class StoryPoint { 17 | 18 | public: 19 | 20 | enum State {PRESUCCEEDED, SUCCEEDED, FAILED, ENABLED, DISABLED}; 21 | 22 | 23 | list children; 24 | list parent; 25 | int fanIn; 26 | string uniqueName; 27 | State state; 28 | 29 | StoryPoint(); // Default constructor 30 | StoryPoint(string uniqueName, int fanIn); // Constructor 31 | 32 | static bool CheckSucceeded(string storyPoint); 33 | static bool CheckEnabled(string storyPoint); 34 | static bool CheckFailed(string storyPoint); 35 | static void CheckState(string uniqueName); 36 | 37 | void AddChild(StoryPoint * child); 38 | void DisableDescendants(); 39 | void ContinueAt(); 40 | bool Exists(); 41 | 42 | list GetDescendants(); 43 | static list GetAllActive(); 44 | static StoryPoint * FindStoryPoint(string uniqueName); 45 | 46 | void EnableStoryPoint(); 47 | static void SucceedStoryPoint(string uniqueName); 48 | static void FailStoryPoint(string uniqueName); 49 | static void ContinueAtStoryPoint(string uniqueName); 50 | static void DisableStoryPoint(string uniqueName); 51 | static void RegisterRoot(string uniqueName, int fanIn); 52 | static void RegisterChild(string parentName, string uniqueName, int fanIn); 53 | 54 | }; 55 | 56 | extern StoryPoint root; 57 | extern list storyTree; 58 | extern bool storyInitialized; 59 | 60 | #endif /* HEBSTORY_H_ */ 61 | -------------------------------------------------------------------------------- /translators_src/hackebot/Examples/README.txt: -------------------------------------------------------------------------------- 1 | ******************************************* 2 | * Hack-E-Bot Examples * 3 | ******************************************* 4 | 5 | This is the mod file for our Hack-E-Bot 6 | examples. We don't save anything to this file 7 | currently. 8 | 9 | Square: Moves in a square pattern and turns 10 | randomly when it discovers an obstacle 11 | 12 | Triangle: Moves in a triangle pattern 13 | 14 | Dance: Moves forward, back and does a spin. 15 | Also shows an example of adjusting one of the 16 | wheels so it will move at the same speed as the 17 | other wheel. This may need to be removed or 18 | changed for your own robot 19 | 20 | If the various .ses files have difficulty finding 21 | the mod file, open up the .ses file in a text 22 | editor and change the following XML: 23 | 24 | C:\Users\scriptease\Desktop\HackEBot 25 | 26 | To the folder that you put this mod file in. -------------------------------------------------------------------------------- /translators_src/hackebot/io/HackEBotResource.java: -------------------------------------------------------------------------------- 1 | package io; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collection; 5 | 6 | import scriptease.translator.io.model.Resource; 7 | 8 | /** 9 | * Hack-E-Bot game object. Eedit 10 | * 11 | * @author ehill 12 | */ 13 | public class HackEBotResource extends Resource { 14 | private final String id; 15 | private final Collection types; 16 | private final String name; 17 | private final String tag; 18 | 19 | public HackEBotResource(String id, String type, String name, String tag) { 20 | this.id = id; 21 | this.types = Arrays.asList(type); 22 | this.name = name; 23 | this.tag = tag; 24 | } 25 | 26 | /** 27 | * Returns the ID of the Hack-E-Bot object. 28 | */ 29 | @Override 30 | public String getTemplateID() { 31 | return this.id; 32 | } 33 | 34 | @Override 35 | public Collection getTypes() { 36 | return this.types; 37 | } 38 | 39 | public String getName() { 40 | if (this.name == null || this.name.isEmpty()) 41 | return this.id + "*"; 42 | return this.name; 43 | } 44 | 45 | 46 | @Override 47 | public String getTag() { 48 | return this.tag; 49 | } 50 | 51 | @Override 52 | public int hashCode() { 53 | return this.name.hashCode() + this.id.hashCode() 54 | + this.tag.hashCode() + this.types.hashCode(); 55 | } 56 | 57 | @Override 58 | public boolean equals(Object obj) { 59 | return obj instanceof HackEBotResource 60 | && this.hashCode() == obj.hashCode(); 61 | } 62 | 63 | @Override 64 | public String toString(){ 65 | return this.id; 66 | } 67 | 68 | @Override 69 | public String getCodeText() { 70 | return this.getTag(); 71 | } 72 | 73 | } -------------------------------------------------------------------------------- /translators_src/hackebot/resources/HackEBot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/hackebot/resources/HackEBot.png -------------------------------------------------------------------------------- /translators_src/hackebot/resources/includes/.HEBStory.cpp.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/hackebot/resources/includes/.HEBStory.cpp.swp -------------------------------------------------------------------------------- /translators_src/hackebot/resources/includes/HEBStory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * HEBStory.h 3 | * 4 | * Created on: May 5, 2015 5 | * Author: ehill 6 | */ 7 | 8 | #ifndef HEBSTORY_H_ 9 | #define HEBSTORY_H_ 10 | 11 | #include 12 | #include 13 | 14 | using namespace std; 15 | 16 | class StoryPoint { 17 | 18 | public: 19 | 20 | enum State {PRESUCCEEDED, SUCCEEDED, FAILED, ENABLED, DISABLED}; 21 | 22 | 23 | list children; 24 | list parent; 25 | int fanIn; 26 | string uniqueName; 27 | State state; 28 | 29 | StoryPoint(); // Default constructor 30 | StoryPoint(string uniqueName, int fanIn); // Constructor 31 | 32 | static bool CheckSucceeded(string storyPoint); 33 | static bool CheckEnabled(string storyPoint); 34 | static bool CheckFailed(string storyPoint); 35 | static void CheckState(string uniqueName); 36 | 37 | void AddChild(StoryPoint * child); 38 | void DisableDescendants(); 39 | void ContinueAt(); 40 | bool Exists(); 41 | 42 | list GetDescendants(); 43 | static list GetAllActive(); 44 | static StoryPoint * FindStoryPoint(string uniqueName); 45 | 46 | void EnableStoryPoint(); 47 | static void SucceedStoryPoint(string uniqueName); 48 | static void FailStoryPoint(string uniqueName); 49 | static void ContinueAtStoryPoint(string uniqueName); 50 | static void DisableStoryPoint(string uniqueName); 51 | static void RegisterRoot(string uniqueName, int fanIn); 52 | static void RegisterChild(string parentName, string uniqueName, int fanIn); 53 | 54 | }; 55 | 56 | extern StoryPoint root; 57 | extern list storyTree; 58 | extern bool storyInitialized; 59 | 60 | #endif /* HEBSTORY_H_ */ 61 | -------------------------------------------------------------------------------- /translators_src/hackebot/resources/includes/HackEBot_Move.h: -------------------------------------------------------------------------------- 1 | // This will allow the easy control of the two servos for the Hack-E-Bot. 2 | // 3 | // Written by Richard Albritton for Hack-E-Bot Robotics, BSD license 4 | 5 | #if ARDUINO >= 100 6 | #include "Arduino.h" 7 | #else 8 | #include "WProgram.h" 9 | #endif 10 | 11 | extern Servo RightS; 12 | extern Servo LeftS; 13 | 14 | /** 15 | * Added AdjustRight and AdjustRight methods - ehill 16 | */ 17 | 18 | class HackEBot_Move { 19 | public: 20 | HackEBot_Move(int L, int R); 21 | //long ServoSetup(int D, int F, int G, int H, int J, int K); //-- used to manually set the servo limits 22 | //void Calibrate(); //-- to Calibrate the servos 23 | void AdjustRight(int r); 24 | void AdjustLeft(int l); 25 | void MoveStop(int S); //-- to stop, S = repeat number. 26 | void MoveF(int S, int Z); //-- to drive forward, S = Speed, Z = Time. 27 | void MoveB(int S, int Z); //-- to drive backward, S = Speed, Z = Time. 28 | void TurnR(int S, int Z); //-- to turn right, S = Speed, Z = Time. 29 | void TurnL(int S, int Z); //-- to turn left, S = Speed, Z = Time. 30 | 31 | private: 32 | int left; 33 | int right; 34 | int servoL; 35 | int servoR; 36 | int CenterL; 37 | int CenterR; 38 | 39 | 40 | }; 41 | -------------------------------------------------------------------------------- /translators_src/hackebot/resources/includes/HackEBot_Sonar.h: -------------------------------------------------------------------------------- 1 | // This will allow the easy get feedback from the Sonar sensor for the Hack-E-Bot. 2 | // 3 | // Written by Richard Albritton for Hack-E-Bot Robotics, BSD license 4 | 5 | #if ARDUINO >= 100 6 | #include "Arduino.h" 7 | #else 8 | #include "WProgram.h" 9 | #endif 10 | 11 | class HackEBot_Sonar { 12 | public: 13 | HackEBot_Sonar(int T, int E); 14 | boolean Ping(int D); //-- to send a sonar ping, D = how far away an object has to be before ping returns TRUE. 15 | long microsecondsToCentimeters(long M); //-- figures out how far a returned ping has travelled in CM, M = microseconds 16 | private: 17 | int sonarTrig; 18 | int sonarEcho; 19 | int Distance; 20 | int duration; 21 | int cm; 22 | }; 23 | -------------------------------------------------------------------------------- /translators_src/hackebot/translator.ini: -------------------------------------------------------------------------------- 1 | # ========================================================== 2 | # Hack-E-Bot Translator Definition 3 | # As with all translator definition files, all incomplete 4 | # paths are relative to the directory the definition file is in. 5 | # ========================================================== 6 | 7 | #Translator Preferences File 8 | #Thurs Nov 06 09:56:16 MDT 2014 9 | NAME=Hack-E-Bot 10 | GAME_DIRECTORY=C:/Arduino 11 | SUPPORTS_TESTING=true 12 | API_DICTIONARY_PATH=resources/apidictionary.xml 13 | COMPILER_PATH=false 14 | LANGUAGE_DICTIONARY_PATH=resources/languageDictionary.xml 15 | #TUTORIALS_PATH=resources/Tutorials 16 | VERSION=2.8 17 | # --- Optional Data: --- 18 | OPTIONAL_LIBRARIES_PATH=resources/libraries 19 | GAME_MODULE_PATH=io/HackEBotFile.class 20 | LANGUAGE_DICTIONARY_PATH=resources/languageDictionary.xml 21 | ICON_PATH=resources/HackEBot.png 22 | SUPPORTED_FILE_EXTENSIONS=txt 23 | ARDUINO_DOCS_PATH=C:/Users/scriptease/Documents/Arduino/Sketchbook 24 | 25 | 26 | -------------------------------------------------------------------------------- /translators_src/nwn/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=1.6 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=1.6 12 | -------------------------------------------------------------------------------- /translators_src/nwn/io/NWNGameConstant.java: -------------------------------------------------------------------------------- 1 | package io; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collection; 5 | 6 | import scriptease.translator.io.model.Resource; 7 | 8 | /** 9 | * Superclass for all for the NWN implementations of the GameConstant hierarchy. 10 | * 11 | * @author remiller 12 | */ 13 | public abstract class NWNGameConstant extends Resource { 14 | private final String resRef; 15 | private final Collection types; 16 | private final String name; 17 | private final String tag; 18 | 19 | public NWNGameConstant(String resRef, String type, String name, String tag) { 20 | this.resRef = resRef; 21 | this.types = Arrays.asList(type); 22 | this.name = name; 23 | this.tag = tag; 24 | } 25 | 26 | /** 27 | * Returns the ResRef of the NWNObject. 28 | */ 29 | @Override 30 | public String getTemplateID() { 31 | return this.resRef; 32 | } 33 | 34 | @Override 35 | public Collection getTypes() { 36 | return this.types; 37 | } 38 | 39 | public String getName() { 40 | if (this.name == null || this.name.isEmpty()) 41 | return this.resRef + "*"; 42 | return this.name; 43 | } 44 | 45 | @Override 46 | public String getTag() { 47 | return this.tag; 48 | } 49 | 50 | @Override 51 | public int hashCode() { 52 | return this.name.hashCode() + this.resRef.hashCode() 53 | + this.tag.hashCode() + this.types.hashCode(); 54 | } 55 | 56 | @Override 57 | public boolean equals(Object obj) { 58 | return obj instanceof NWNGameConstant 59 | && this.hashCode() == obj.hashCode(); 60 | } 61 | 62 | @Override 63 | public abstract String toString(); 64 | 65 | } -------------------------------------------------------------------------------- /translators_src/nwn/io/NWNObject.java: -------------------------------------------------------------------------------- 1 | package io; 2 | 3 | import scriptease.translator.io.model.Resource; 4 | 5 | /** 6 | * Neverwinter Nights implementation of {@link Resource}. 7 | * 8 | * @author remiller 9 | */ 10 | public final class NWNObject extends NWNGameConstant { 11 | public NWNObject(String resRef, String type, String name, String tag) { 12 | super(resRef, type, name, tag); 13 | } 14 | 15 | @Override 16 | public String getCodeText() { 17 | return "SE_AUX_GetNearestObjectByTagIncludeSelf(\"" + this.getTag() 18 | + "\")"; 19 | } 20 | 21 | @Override 22 | public String toString() { 23 | return this.getTemplateID(); 24 | } 25 | 26 | @Override 27 | public boolean equals(Object obj) { 28 | if (obj instanceof NWNObject) 29 | return this.hashCode() == obj.hashCode(); 30 | 31 | return false; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /translators_src/nwn/resources/NWNIcon_Small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/nwn/resources/NWNIcon_Small.gif -------------------------------------------------------------------------------- /translators_src/nwn/translator.ini: -------------------------------------------------------------------------------- 1 | # ========================================================== 2 | # Neverwinter Nights Translator Definition 3 | # As with all translator definition files, all incomplete 4 | # paths are relative to the directory the definition file is in. 5 | # ========================================================== 6 | 7 | #Translator Preferences File 8 | #Tue Aug 06 13:09:56 MDT 2013 9 | NAME=Neverwinter Nights 10 | GAME_DIRECTORY=C:/NeverwinterNights/NWN/Neverwinter Nights Diamond Edition 11 | SUPPORTS_TESTING=true 12 | API_DICTIONARY_PATH=resources/apidictionary.xml 13 | COMPILER_PATH=C:/NeverwinterNights/NWN/utils/clcompile.exe 14 | LANGUAGE_DICTIONARY_PATH=resources/languageDictionary.xml 15 | TUTORIALS_PATH=resources/Tutorials 16 | VERSION=2.8 17 | # --- Optional Data: --- 18 | OPTIONAL_LIBRARIES_PATH=resources/libraries 19 | GAME_MODULE_PATH=io/ErfFile.class 20 | LANGUAGE_DICTIONARY_PATH=resources/languageDictionary.xml 21 | ICON_PATH=resources/NWNIcon_Small.gif 22 | SUPPORTED_FILE_EXTENSIONS=mod 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /translators_src/pinball/Includes/ball.global: -------------------------------------------------------------------------------- 1 | int ballsInPlay = 0; 2 | int remainingBalls = 0; 3 | -------------------------------------------------------------------------------- /translators_src/pinball/Includes/display.global: -------------------------------------------------------------------------------- 1 | std::string display_TopLeft = ""; 2 | std::string display_TopRight = ""; 3 | std::string display_BottomLeft = ""; 4 | std::string display_BottomRight = ""; -------------------------------------------------------------------------------- /translators_src/pinball/Includes/game.global: -------------------------------------------------------------------------------- 1 | /** 2 | ** Game.Global defines GameMap used to dynamically allocate memory 3 | ** for game objects and whether or not the game has been started 4 | ** @author mfchurch 5 | **/ 6 | #ifndef GAMEGLOBAL 7 | #define GAMEGLOBAL 8 | #include 9 | #include 10 | typedef std::map ObjectMap; 11 | typedef std::map GameMap; 12 | 13 | GameMap gameData; 14 | bool inGame = false; 15 | #endif -------------------------------------------------------------------------------- /translators_src/pinball/Includes/hitcount.global: -------------------------------------------------------------------------------- 1 | /** 2 | ** Hitcount.Global defines a map to keep count of the number of times each switch has been hit 3 | ** @author mfchurch 4 | **/ 5 | #ifndef HITCOUNT.GLOBAL 6 | #define HITCOUNT.GLOBAL 7 | #include 8 | #include 9 | map hitcount; 10 | #endif -------------------------------------------------------------------------------- /translators_src/pinball/Includes/network.global: -------------------------------------------------------------------------------- 1 | #ifndef NETWORKGLOBAL 2 | #define NETWORKGLOBAL 3 | #include 4 | #include "NetworkPlay.h" 5 | 6 | // Local player id 7 | int playerid = -1; 8 | 9 | // defines the game state 10 | NetworkVar *_gameState; 11 | 12 | map networkVariables; 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /translators_src/pinball/Includes/queue.global: -------------------------------------------------------------------------------- 1 | #include 2 | queue global_string_queue; -------------------------------------------------------------------------------- /translators_src/pinball/Includes/score.global: -------------------------------------------------------------------------------- 1 | int score = 0; 2 | -------------------------------------------------------------------------------- /translators_src/pinball/Includes/time.global: -------------------------------------------------------------------------------- 1 | /** 2 | ** Time.Global defines timers and time variables used in ScriptEase2's pinball API. 3 | ** @author mfchurch 4 | **/ 5 | #ifndef TIMEGLOBAL 6 | #define TIMEGLOBAL 7 | 8 | //elapsed game time 9 | double elapsed = 0; 10 | 11 | //remaining game time 12 | double remaining = -1; 13 | 14 | #endif -------------------------------------------------------------------------------- /translators_src/pinball/LOTRPlayFieldSwitches.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/pinball/LOTRPlayFieldSwitches.png -------------------------------------------------------------------------------- /translators_src/pinball/LampMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/pinball/LampMap.png -------------------------------------------------------------------------------- /translators_src/pinball/Makefile: -------------------------------------------------------------------------------- 1 | include Makefile.prj.inc 2 | include ../../Makefile.com.inc 3 | include ../../Makefile.exe.inc 4 | -------------------------------------------------------------------------------- /translators_src/pinball/Makefile.prj.inc: -------------------------------------------------------------------------------- 1 | #----------------------------------------------------------------------------- 2 | # GNU Makefile for static libraries: project dependent part 3 | # 4 | # $Id: Makefile.prj.inc,v 1.2 2006/10/20 20:20:15 emarkus Exp $ 5 | # $Source: /usr/cvsroot/project_hog/build/gmake/apps/sample/Makefile.prj.inc,v $ 6 | #----------------------------------------------------------------------------- 7 | 8 | DBG_NAME = $(NAME) 9 | REL_NAME = $(NAME) 10 | 11 | ROOT = ../../.. 12 | VPATH = $(ROOT) 13 | 14 | DBG_OBJDIR = $(ROOT)/objs/$(NAME)/debug 15 | REL_OBJDIR = $(ROOT)/objs/$(NAME)/release 16 | DBG_BINDIR = $(ROOT)/bin/debug 17 | REL_BINDIR = $(ROOT)/bin/release 18 | 19 | PROJ_CXXFLAGS = -I$(ROOT)/xmlParser -I$(ROOT)/controller -I$(ROOT)/eventLibrary 20 | 21 | PROJ_DBG_CXXFLAGS = $(PROJ_CXXFLAGS) 22 | PROJ_REL_CXXFLAGS = $(PROJ_CXXFLAGS) 23 | 24 | PROJ_DBG_LNFLAGS = -L$(DBG_BINDIR) 25 | PROJ_REL_LNFLAGS = -L$(REL_BINDIR) 26 | 27 | PROJ_DBG_LIB = -leventLibrary -lcontroller -lxmlParser 28 | PROJ_REL_LIB = -leventLibrary -lcontroller -lxmlParser 29 | 30 | 31 | PROJ_DBG_DEP = \ 32 | $(DBG_BINDIR)/libxmlParser.a \ 33 | $(DBG_BINDIR)/libeventLibrary.a \ 34 | $(DBG_BINDIR)/libcontroller.a 35 | 36 | PROJ_REL_DEP = \ 37 | $(DBG_BINDIR)/libxmlParser.a \ 38 | $(DBG_BINDIR)/libeventLibrary.a \ 39 | $(DBG_BINDIR)/libcontroller.a 40 | 41 | default : all 42 | 43 | SRC_CPP = \ 44 | -------------------------------------------------------------------------------- /translators_src/pinball/Module.pin: -------------------------------------------------------------------------------- 1 | switch=translators/Pinball/switchMap 2 | dedicatedSwitch=translators/Pinball/dSwitchMap 3 | lamp=translators/Pinball/lampMap -------------------------------------------------------------------------------- /translators_src/pinball/dSwitchMap: -------------------------------------------------------------------------------- 1 | 2 | 3 | Left Flipper Button 4 | Left Flipper End-Of-Stroke 5 | Right Flipper End-Of-Stroke 6 | Right Flipper Button 7 | -------------------------------------------------------------------------------- /translators_src/pinball/pinball.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/pinball/pinball.gif -------------------------------------------------------------------------------- /translators_src/pinball/translator.ini: -------------------------------------------------------------------------------- 1 | # ========================================================== 2 | # Lord of the Rings Translator Definition 3 | # As with all translator definition files, all incomplete 4 | # paths are relative to the directory the definition file is in. 5 | # ========================================================== 6 | 7 | # Required data 8 | NAME=Lord of the Rings Pinball 9 | LANGUAGE_DICTIONARY_PATH=languageDictionary.xml 10 | API_DICTIONARY_PATH=apidictionary.xml 11 | GAME_MODULE_PATH=PinballGameModule.class 12 | SUPPORTED_FILE_EXTENSIONS=pin 13 | INCLUDES_DIR=Includes 14 | 15 | # Optional Data 16 | CUSTOM_PICKER_PATH=CustomPicker/CustomPicker.class 17 | COMPILER_PATH=/home/matt/Desktop/svn.uscpinball.com/ 18 | ICON_PATH=pinball.gif 19 | -------------------------------------------------------------------------------- /translators_src/unity/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=1.6 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=1.6 12 | -------------------------------------------------------------------------------- /translators_src/unity/io/UnityFile.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/UnityFile.class -------------------------------------------------------------------------------- /translators_src/unity/io/UnityProject$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/UnityProject$1.class -------------------------------------------------------------------------------- /translators_src/unity/io/UnityProject.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/UnityProject.class -------------------------------------------------------------------------------- /translators_src/unity/io/UnityScript.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/UnityScript.class -------------------------------------------------------------------------------- /translators_src/unity/io/constants/UnityField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/constants/UnityField.class -------------------------------------------------------------------------------- /translators_src/unity/io/constants/UnityField.java: -------------------------------------------------------------------------------- 1 | package io.constants; 2 | 3 | /** 4 | * Enumerations of possible fields in Unity. Use {@link #getName()} to get the 5 | * properly formatted name of a field. 6 | * 7 | * @author kschenk 8 | * 9 | */ 10 | public enum UnityField { 11 | FILEID("fileID"), 12 | 13 | GUID("guid"), 14 | 15 | M_ANIMATIONS("m_Animations"), 16 | 17 | M_CHILDREN("m_Children"), 18 | 19 | M_COMPONENT("m_Component"), 20 | 21 | M_EDITORHIDEFLAGS("m_EditorHideFlags"), 22 | 23 | M_ENABLED("m_Enabled"), 24 | 25 | M_FATHER("m_Father"), 26 | 27 | M_GAMEOBJECT("m_GameObject"), 28 | 29 | M_ICON("m_Icon"), 30 | 31 | M_ISACTIVE("m_IsActive"), 32 | 33 | M_LAYER("m_Layer"), 34 | 35 | M_LOCALPOSITION("m_LocalPosition"), 36 | 37 | M_LOCALROTATION("m_LocalRotation"), 38 | 39 | M_LOCALSCALE("m_LocalScale"), 40 | 41 | M_NAME("m_Name"), 42 | 43 | M_NAVMESHLAYER("m_NavMeshLayer"), 44 | 45 | M_OBJECTHIDEFLAGS("m_ObjectHideFlags"), 46 | 47 | M_PREFABINTERNAL("m_PrefabInternal"), 48 | 49 | M_PREFABPARENTOBJECT("m_PrefabParentObject"), 50 | 51 | M_SCRIPT("m_Script"), 52 | 53 | M_STATICEDITORFLAGS("m_StaticEditorFlags"), 54 | 55 | M_TAGSTRING("m_TagString"), 56 | 57 | SERIALIZEDVERSION("serializedVersion"), 58 | 59 | TYPE("type"), 60 | 61 | W("w"), 62 | 63 | X("x"), 64 | 65 | Y("y"), 66 | 67 | Z("z"); 68 | 69 | private final String name; 70 | 71 | private UnityField(String name) { 72 | this.name = name; 73 | } 74 | 75 | /** 76 | * Returns the properly formatted name of the field. 77 | * 78 | * @return 79 | */ 80 | public String getName() { 81 | return this.name; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /translators_src/unity/io/constants/UnityType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/constants/UnityType.class -------------------------------------------------------------------------------- /translators_src/unity/io/unityresource/PropertyValue$Type.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/unityresource/PropertyValue$Type.class -------------------------------------------------------------------------------- /translators_src/unity/io/unityresource/PropertyValue.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/unityresource/PropertyValue.class -------------------------------------------------------------------------------- /translators_src/unity/io/unityresource/UnityResource.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/unityresource/UnityResource.class -------------------------------------------------------------------------------- /translators_src/unity/io/unityresource/UnityResourceFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/io/unityresource/UnityResourceFactory.class -------------------------------------------------------------------------------- /translators_src/unity/lib/snakeyaml-1.11-javadoc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/lib/snakeyaml-1.11-javadoc.jar -------------------------------------------------------------------------------- /translators_src/unity/lib/snakeyaml-1.11-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/lib/snakeyaml-1.11-sources.jar -------------------------------------------------------------------------------- /translators_src/unity/lib/snakeyaml-1.11.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/lib/snakeyaml-1.11.jar -------------------------------------------------------------------------------- /translators_src/unity/libraries/APathFinding/SEPath.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | /** 4 | * This class defines an SEPath. It has some shortcuts that make the ScriptEase 5 | * II implementation much easier and cleaner. 6 | * 7 | * The SEPath is part of the optional A* Pathfinding Library, which requires 8 | * Aron Granberg's A* Pathfinding Project package to be installed to your Unity 9 | * project. Our library was built and functions with the free version. 10 | * 11 | *@author ScriptEase II Team 12 | */ 13 | 14 | /** 15 | * We extend the AIPath class so that we can add our custom function to it, 16 | * which is set in a Cause. 17 | * 18 | */ 19 | class SEPath extends AIPath { 20 | 21 | var onReached:Function; 22 | 23 | /** 24 | * Returns the SEPath attached to the object. Attaches an SEPath if none are 25 | * attached. This allows the experienced game developer to add an SEPath in the 26 | * editor but still make use of ScriptEase II. 27 | */ 28 | static function GetPath(object:GameObject):SEPath { 29 | var sePath:SEPath = object.GetComponent(SEPath); 30 | 31 | if(sePath == null) { 32 | object.AddComponent(SEPath); 33 | sePath = object.GetComponent(SEPath); 34 | } 35 | 36 | return sePath; 37 | } 38 | 39 | /** 40 | * Sets what happens when the target is reached 41 | */ 42 | function setOnTargetReached(onReached:Function) { 43 | this.onReached = onReached; 44 | } 45 | 46 | /** 47 | * Overidden function from AIPath, since it by default does not have any 48 | * functionality. All this does is call the onReached function variable. 49 | */ 50 | function OnTargetReached () { 51 | if(this.onReached != null) 52 | this.onReached(); 53 | } 54 | } -------------------------------------------------------------------------------- /translators_src/unity/resources/includes/SEFunctions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This file provides various functions we use in different places. It saves us 3 | * from rewriting code all the time. 4 | * 5 | * @author ScriptEase Team 6 | */ 7 | 8 | /** 9 | * We need this because the default PlayClipAtPoint doesn't let us 10 | * stop the clip from playing! 11 | */ 12 | static function PlayClip(clip: AudioClip, pos: Vector3) : GameObject { 13 | var tempGO : GameObject; 14 | var aSource : AudioSource; 15 | 16 | tempGO = GameObject("TemporaryDialogueAudio"); 17 | aSource = tempGO.AddComponent(AudioSource); 18 | 19 | tempGO.transform.position = pos; 20 | aSource.clip = clip; 21 | 22 | aSource.Play(); 23 | // destroy object after clip duration 24 | Destroy(tempGO, clip.length); 25 | 26 | return tempGO; 27 | } -------------------------------------------------------------------------------- /translators_src/unity/resources/includes/SEGameObject.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | /** 5 | * This class defines functions used by ScriptEase II to get components from 6 | * Game Objects. If they are not found, ScriptEase II automatically adds the 7 | * component to the game object. 8 | * 9 | * @author ScriptEase II Team 10 | */ 11 | public class SEGameObject : MonoBehaviour { 12 | 13 | /** 14 | * Gets the passed in component of the same type. If it does not exist, 15 | * this function adds the component and then returns the new one. 16 | */ 17 | public static T Get(GameObject go) where T : Component 18 | { 19 | T component = go.GetComponent(); 20 | 21 | if(component == null) { 22 | go.AddComponent(); 23 | component = go.GetComponent(); 24 | } 25 | 26 | return component; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /translators_src/unity/resources/includes/XMLNode.js: -------------------------------------------------------------------------------- 1 | class XMLNode extends Boo.Lang.Hash{ 2 | function GetNodeList(path:String){ 3 | return GetObject(path) as XMLNodeList; 4 | } 5 | 6 | function GetNode(path:String){ 7 | return GetObject(path) as XMLNode; 8 | } 9 | 10 | function GetValue(path:String){ 11 | return GetObject(path) as String; 12 | } 13 | 14 | private function GetObject(path:String){ 15 | var bits:String[]=path.Split(">"[0]); 16 | var currentNode:XMLNode=this; 17 | var currentNodeList:XMLNodeList; 18 | var listMode:boolean=false; 19 | var ob:Object; 20 | for(var i:int=0;i"+bits[j]; 36 | } 37 | Debug.Log("xml path search truncated. Wanted: "+path+" got: "+actualPath); 38 | } 39 | return ob; 40 | } 41 | } 42 | } 43 | if(listMode) return currentNodeList; 44 | else return currentNode; 45 | } 46 | } -------------------------------------------------------------------------------- /translators_src/unity/resources/includes/XMLNodeList.js: -------------------------------------------------------------------------------- 1 | class XMLNodeList extends Array{ 2 | 3 | } -------------------------------------------------------------------------------- /translators_src/unity/resources/unity_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UA-ScriptEase/scriptease/03b8d10f87b4cb070a0d61e1bcebc927332fa45b/translators_src/unity/resources/unity_icon.png -------------------------------------------------------------------------------- /translators_src/unity/translator.ini: -------------------------------------------------------------------------------- 1 | # ========================================================== 2 | # Unity Engine Translator Definition 3 | # As with all translator definition files, all incomplete 4 | # paths are relative to the directory the definition file is in. 5 | # ========================================================== 6 | 7 | # --- Required data:--- 8 | NAME=Unity 9 | API_DICTIONARY_PATH=resources/apiDictionary.xml 10 | LANGUAGE_DICTIONARY_PATH=resources/languageDictionary.xml 11 | GAME_MODULE_PATH=io/UnityProject.class 12 | VERSION=2.8 13 | 14 | # --- Optional Data: --- 15 | OPTIONAL_LIBRARIES_PATH=libraries 16 | SUPPORTED_FILE_EXTENSIONS=directory 17 | COMPILER_PATH=false 18 | ICON_PATH=resources/unity_icon.png 19 | SUPPORTS_TESTING=false 20 | TUTORIALS_PATH=resources/Tutorials 21 | --------------------------------------------------------------------------------