├── .github └── workflows │ └── build.yml ├── .gitignore ├── AUTHORS ├── CHANGELOG.md ├── LICENSE ├── README.md ├── adventure-editor ├── .gitignore ├── assets-raw │ ├── editor │ │ ├── BladeSkin │ │ │ ├── btn_check_off.png │ │ │ ├── btn_check_on.png │ │ │ ├── btn_check_on_focused.png │ │ │ ├── btn_default_disabled.9.png │ │ │ ├── btn_default_focused.9.png │ │ │ ├── btn_default_normal.9.png │ │ │ ├── btn_default_pressed.9.png │ │ │ ├── btn_radio_off.png │ │ │ ├── btn_radio_on.png │ │ │ ├── btn_radio_on_focused.png │ │ │ ├── btn_toggle_off_disabled.9.png │ │ │ ├── btn_toggle_off_focused.9.png │ │ │ ├── btn_toggle_off_normal.9.png │ │ │ ├── btn_toggle_on_focused.9.png │ │ │ ├── btn_toggle_on_normal.9.png │ │ │ ├── btn_toggle_on_pressed.9.png │ │ │ ├── gen.sh │ │ │ ├── icon-blitz.png │ │ │ ├── icon-blitz_pressed.png │ │ │ ├── pack.json │ │ │ ├── scroll.9.png │ │ │ ├── scroll_corner.9.png │ │ │ ├── scroll_horizontal.9.png │ │ │ ├── scroll_horizontal_knob.9.png │ │ │ ├── scroll_opaque.9.png │ │ │ ├── scroll_vertical.9.png │ │ │ ├── scroll_vertical_knob.9.png │ │ │ ├── scrubber_control_normal.png │ │ │ ├── scrubber_primary.9.png │ │ │ ├── scrubber_secondary.9.png │ │ │ ├── scrubber_track.9.png │ │ │ ├── scrubber_vertical_primary.9.png │ │ │ ├── scrubber_vertical_secondary.9.png │ │ │ ├── scrubber_vertical_track.9.png │ │ │ ├── spinner_default.9.png │ │ │ ├── spinner_focused.9.png │ │ │ ├── spinner_pressed.9.png │ │ │ ├── splitpane_horizontal.9.png │ │ │ ├── splitpane_vertical.9.png │ │ │ ├── text.9.png │ │ │ ├── text_focused.9.png │ │ │ ├── text_focused_opaque.9.png │ │ │ ├── text_opaque.9.png │ │ │ ├── text_selected.9.png │ │ │ ├── text_selected_opaque.9.png │ │ │ ├── textfield_cursor.9.png │ │ │ ├── textfield_default.9.png │ │ │ ├── textfield_disabled.9.png │ │ │ ├── textfield_focused.9.png │ │ │ ├── textfield_selection.png │ │ │ ├── tree_minus.png │ │ │ ├── tree_plus.png │ │ │ ├── white_pixel.png │ │ │ └── window.9.png │ │ ├── editor-icon.svg │ │ ├── icons-atlas.svg │ │ ├── icons │ │ │ ├── eye.png │ │ │ ├── eye_disabled.png │ │ │ ├── ic_3d.png │ │ │ ├── ic_add.png │ │ │ ├── ic_add_disabled.png │ │ │ ├── ic_anchor.png │ │ │ ├── ic_animation.png │ │ │ ├── ic_assets.png │ │ │ ├── ic_assets_disabled.png │ │ │ ├── ic_atlases.png │ │ │ ├── ic_atlases_disabled.png │ │ │ ├── ic_base_actor.png │ │ │ ├── ic_character_actor.png │ │ │ ├── ic_check.png │ │ │ ├── ic_check_disabled.png │ │ │ ├── ic_closed.png │ │ │ ├── ic_closed_disabled.png │ │ │ ├── ic_copy.png │ │ │ ├── ic_copy_disabled.png │ │ │ ├── ic_create_all.png │ │ │ ├── ic_create_all_disabled.png │ │ │ ├── ic_custom.png │ │ │ ├── ic_delete.png │ │ │ ├── ic_delete_disabled.png │ │ │ ├── ic_dialog.png │ │ │ ├── ic_down.png │ │ │ ├── ic_down_disabled.png │ │ │ ├── ic_edit.png │ │ │ ├── ic_edit_disabled.png │ │ │ ├── ic_enter.png │ │ │ ├── ic_exit.png │ │ │ ├── ic_eye.png │ │ │ ├── ic_eye_disabled.png │ │ │ ├── ic_fg_actor.png │ │ │ ├── ic_flip.png │ │ │ ├── ic_goto.png │ │ │ ├── ic_init.png │ │ │ ├── ic_leave.png │ │ │ ├── ic_left.png │ │ │ ├── ic_left_disabled.png │ │ │ ├── ic_load.png │ │ │ ├── ic_lookat.png │ │ │ ├── ic_new.png │ │ │ ├── ic_no_scene.png │ │ │ ├── ic_obstacle_actor.png │ │ │ ├── ic_open.png │ │ │ ├── ic_open_disabled.png │ │ │ ├── ic_package.png │ │ │ ├── ic_package_disabled.png │ │ │ ├── ic_particles.png │ │ │ ├── ic_paste.png │ │ │ ├── ic_paste_disabled.png │ │ │ ├── ic_pickup.png │ │ │ ├── ic_play.png │ │ │ ├── ic_play_disabled.png │ │ │ ├── ic_player.png │ │ │ ├── ic_player_small.png │ │ │ ├── ic_player_small_disabled.png │ │ │ ├── ic_quit.png │ │ │ ├── ic_reload_small.png │ │ │ ├── ic_reload_small_disabled.png │ │ │ ├── ic_repeat.png │ │ │ ├── ic_right.png │ │ │ ├── ic_right_disabled.png │ │ │ ├── ic_save.png │ │ │ ├── ic_save_disabled.png │ │ │ ├── ic_spine.png │ │ │ ├── ic_sprite_actor.png │ │ │ ├── ic_talkto.png │ │ │ ├── ic_test.png │ │ │ ├── ic_text.png │ │ │ ├── ic_up.png │ │ │ ├── ic_up_disabled.png │ │ │ ├── ic_use.png │ │ │ ├── ic_walkzone.png │ │ │ ├── ic_yoyo.png │ │ │ ├── scn_character.png │ │ │ ├── scn_move.png │ │ │ ├── scn_rotate.png │ │ │ ├── scn_scale.png │ │ │ ├── scn_scale_lock.png │ │ │ ├── scn_sprite.png │ │ │ ├── title.png │ │ │ ├── transparent-dark.png │ │ │ └── transparent-light.png │ │ ├── pack_icons.sh │ │ └── title.svg │ └── engine │ │ ├── engine-default-icon.svg │ │ ├── gen-default-icons.sh │ │ ├── gen-ui-atlas.sh │ │ ├── help │ │ ├── genhelp │ │ ├── helpDesktop_en.svg │ │ ├── helpDesktop_es.svg │ │ ├── helpPie_en.svg │ │ └── helpPie_es.svg │ │ ├── ios-default-images.svg │ │ ├── logo │ │ ├── blade_logo3.svg │ │ └── genlogo │ │ ├── ui-atlas │ │ ├── back.png │ │ ├── border_rect.9.png │ │ ├── bubblepointer.png │ │ ├── credits.png │ │ ├── debug.png │ │ ├── delete.png │ │ ├── dialog_down.png │ │ ├── dialog_up.png │ │ ├── help.png │ │ ├── hotspot.png │ │ ├── hotspotpointer.png │ │ ├── inv_down.png │ │ ├── inv_up.png │ │ ├── inventory.png │ │ ├── leave.png │ │ ├── lookat.png │ │ ├── menu.png │ │ ├── pack.json │ │ ├── pickup.png │ │ ├── plus.png │ │ ├── pointer.png │ │ ├── rect.9.png │ │ ├── talkto.png │ │ └── white_pixel.png │ │ └── ui.svg ├── build.gradle ├── desktop │ ├── com.bladecoder.adventure-editor.appdata.xml │ ├── com.bladecoder.adventure-editor.desktop │ ├── com.bladecoder.adventure-editor.png │ └── com.bladecoder.adventure-editor.svg ├── src │ ├── dist │ │ └── LICENSE │ └── main │ │ ├── java │ │ └── com │ │ │ └── bladecoder │ │ │ └── engineeditor │ │ │ ├── Ctx.java │ │ │ ├── Editor.java │ │ │ ├── EditorAssetManager.java │ │ │ ├── Main.java │ │ │ ├── common │ │ │ ├── ActionDetector.java │ │ │ ├── AlignUtils.java │ │ │ ├── CustomTextureUnpacker.java │ │ │ ├── DesktopUtils.java │ │ │ ├── DinamicClassPath.java │ │ │ ├── EditorCommandExecutor.java │ │ │ ├── EditorLogger.java │ │ │ ├── EditorUtils.java │ │ │ ├── ElementUtils.java │ │ │ ├── FolderClassLoader.java │ │ │ ├── HttpUtils.java │ │ │ ├── I18NUtils.java │ │ │ ├── ImageUtils.java │ │ │ ├── Message.java │ │ │ ├── ModelTools.java │ │ │ ├── OrderedProperties.java │ │ │ ├── RunProccess.java │ │ │ ├── TemplateUtils.java │ │ │ ├── Versions.java │ │ │ └── ZipUtils.java │ │ │ ├── model │ │ │ ├── Chapter.java │ │ │ ├── I18NHandler.java │ │ │ ├── Project.java │ │ │ └── PropertyChange.java │ │ │ ├── qa │ │ │ ├── ActionVisitor.java │ │ │ ├── ActorVisitor.java │ │ │ ├── DialogOptionVisitor.java │ │ │ ├── DialogVisitor.java │ │ │ ├── EndVisitor.java │ │ │ ├── ModelWalker.java │ │ │ ├── QA.java │ │ │ ├── SceneVisitor.java │ │ │ ├── StartVisitor.java │ │ │ ├── VerbVisitor.java │ │ │ ├── Visitor.java │ │ │ └── rules │ │ │ │ ├── CheckCutmodeEnd.java │ │ │ │ ├── CheckDesc.java │ │ │ │ ├── CheckInteractionVerbs.java │ │ │ │ └── Stats.java │ │ │ ├── scneditor │ │ │ ├── AnimationDrawer.java │ │ │ ├── AnimationWidget.java │ │ │ ├── CanvasDrawer.java │ │ │ ├── ScnEditor.java │ │ │ ├── ScnWidget.java │ │ │ ├── ScnWidgetInputListener.java │ │ │ ├── ToolsWindow.java │ │ │ └── ViewWindow.java │ │ │ ├── setup │ │ │ ├── BladeEngineSetup.java │ │ │ ├── ProjectFile.java │ │ │ ├── ProjectSetup.java │ │ │ └── TemporaryProjectFile.java │ │ │ ├── ui │ │ │ ├── ActionList.java │ │ │ ├── ActorList.java │ │ │ ├── ActorPanel.java │ │ │ ├── ActorProps.java │ │ │ ├── AssetPanel.java │ │ │ ├── AssetsList.java │ │ │ ├── ChapterList.java │ │ │ ├── CompileInkDialog.java │ │ │ ├── CreateAndroidKeystoreDialog.java │ │ │ ├── CreateAtlasDialog.java │ │ │ ├── CreateProjectDialog.java │ │ │ ├── CreateResolutionDialog.java │ │ │ ├── DialogList.java │ │ │ ├── EditActionDialog.java │ │ │ ├── EditActorDialog.java │ │ │ ├── EditAnimationDialog.java │ │ │ ├── EditChapterDialog.java │ │ │ ├── EditDialogDialog.java │ │ │ ├── EditInkDialog.java │ │ │ ├── EditLayerDialog.java │ │ │ ├── EditOptionDialog.java │ │ │ ├── EditSceneDialog.java │ │ │ ├── EditSoundDialog.java │ │ │ ├── EditVerbDialog.java │ │ │ ├── LayerList.java │ │ │ ├── OptionList.java │ │ │ ├── PackageDialog.java │ │ │ ├── ProjectPanel.java │ │ │ ├── ProjectToolbar.java │ │ │ ├── ResolutionList.java │ │ │ ├── SceneList.java │ │ │ ├── ScenePanel.java │ │ │ ├── SceneProps.java │ │ │ ├── SoundList.java │ │ │ ├── SpriteList.java │ │ │ ├── VerbList.java │ │ │ ├── WorldProps.java │ │ │ └── panels │ │ │ │ ├── ActorAnimationInputPanel.java │ │ │ │ ├── ActorInputPanel.java │ │ │ │ ├── BooleanInputPanel.java │ │ │ │ ├── CellRenderer.java │ │ │ │ ├── ChapterInputPanel.java │ │ │ │ ├── ColorInputPanel.java │ │ │ │ ├── CustomList.java │ │ │ │ ├── DimensionInputPanel.java │ │ │ │ ├── EditDialog.java │ │ │ │ ├── EditList.java │ │ │ │ ├── EditModelDialog.java │ │ │ │ ├── EditToolbar.java │ │ │ │ ├── EditTree.java │ │ │ │ ├── EditableOptionsInputPanel.java │ │ │ │ ├── EditableSelectBox.java │ │ │ │ ├── EnumOptionsInputPanel.java │ │ │ │ ├── FileInputPanel.java │ │ │ │ ├── FilteredSelectBox.java │ │ │ │ ├── FloatInputPanel.java │ │ │ │ ├── HeaderPanel.java │ │ │ │ ├── InputPanel.java │ │ │ │ ├── InputPanelFactory.java │ │ │ │ ├── IntegerInputPanel.java │ │ │ │ ├── LayerInputPanel.java │ │ │ │ ├── ModelList.java │ │ │ │ ├── OptionsInputPanel.java │ │ │ │ ├── PropertyTable.java │ │ │ │ ├── SceneActorInputPanel.java │ │ │ │ ├── SceneInputPanel.java │ │ │ │ ├── ScopePanel.java │ │ │ │ ├── SoundInputPanel.java │ │ │ │ ├── StringInputPanel.java │ │ │ │ ├── StringOptionsInputPanel.java │ │ │ │ ├── TabPanel.java │ │ │ │ ├── TextInputPanel.java │ │ │ │ └── Vector2InputPanel.java │ │ │ └── undo │ │ │ ├── UndoBboxPointPos.java │ │ │ ├── UndoCreateActor.java │ │ │ ├── UndoCreateScene.java │ │ │ ├── UndoCreateSound.java │ │ │ ├── UndoDeleteAction.java │ │ │ ├── UndoDeleteActor.java │ │ │ ├── UndoDeleteAnimation.java │ │ │ ├── UndoDeleteDialog.java │ │ │ ├── UndoDeleteOption.java │ │ │ ├── UndoDeleteScene.java │ │ │ ├── UndoDeleteSound.java │ │ │ ├── UndoDeleteVerb.java │ │ │ ├── UndoDepthVector.java │ │ │ ├── UndoEditActor.java │ │ │ ├── UndoEditScene.java │ │ │ ├── UndoOp.java │ │ │ ├── UndoPosition.java │ │ │ ├── UndoRefPosition.java │ │ │ ├── UndoRotation.java │ │ │ ├── UndoScale.java │ │ │ └── UndoStack.java │ │ └── resources │ │ ├── images │ │ ├── ic_app16.png │ │ ├── ic_app32.png │ │ ├── ic_app64.png │ │ ├── icons.atlas │ │ └── icons.png │ │ ├── projectTmpl │ │ ├── android │ │ │ ├── AndroidManifest.xml │ │ │ ├── build.gradle │ │ │ ├── ic_launcher-web.png │ │ │ ├── proguard-rules.pro │ │ │ ├── res │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ └── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ └── src │ │ │ │ ├── AndroidLauncher │ │ │ │ └── expansion │ │ │ │ └── AndroidManifest.xml │ │ ├── assets │ │ │ ├── BladeEngine.properties │ │ │ ├── model │ │ │ │ ├── 00.chapter.json │ │ │ │ ├── 00.properties │ │ │ │ ├── world │ │ │ │ ├── world.properties │ │ │ │ └── world_es.properties │ │ │ └── ui │ │ │ │ ├── 1 │ │ │ │ ├── blade_logo.png │ │ │ │ ├── helpDesktop.png │ │ │ │ ├── helpDesktop_es.png │ │ │ │ ├── helpPie.png │ │ │ │ ├── helpPie_es.png │ │ │ │ ├── libgdx_logo.png │ │ │ │ ├── ui.atlas │ │ │ │ └── ui.png │ │ │ │ ├── credits.txt │ │ │ │ ├── fonts │ │ │ │ ├── ArchitectsDaughter.ttf │ │ │ │ ├── PaytoneOne.ttf │ │ │ │ ├── Roboto-Black.ttf │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ ├── Roboto-Thin.ttf │ │ │ │ └── Ubuntu-M.ttf │ │ │ │ └── ui.json │ │ ├── build.gradle │ │ ├── core │ │ │ └── build.gradle │ │ ├── desktop │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ ├── DesktopLauncher │ │ │ │ └── icons │ │ │ │ ├── icon128.png │ │ │ │ ├── icon16.png │ │ │ │ └── icon32.png │ │ ├── gitignore │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── ios │ │ │ ├── Info.plist.xml │ │ │ ├── build.gradle │ │ │ ├── data │ │ │ │ ├── Default-1024w-1366h@2x~ipad.png │ │ │ │ ├── Default-375w-667h@2x.png │ │ │ │ ├── Default-375w-812h@3x.png │ │ │ │ ├── Default-414w-736h@3x.png │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Default@2x~ipad.png │ │ │ │ ├── Default~ipad.png │ │ │ │ └── Media.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── app-store-icon-1024@1x.png │ │ │ │ │ ├── ipad-app-icon-76@1x.png │ │ │ │ │ ├── ipad-app-icon-76@2x.png │ │ │ │ │ ├── ipad-notifications-icon-20@1x.png │ │ │ │ │ ├── ipad-notifications-icon-20@2x.png │ │ │ │ │ ├── ipad-pro-app-icon-83.5@2x.png │ │ │ │ │ ├── ipad-settings-icon-29@1x.png │ │ │ │ │ ├── ipad-settings-icon-29@2x.png │ │ │ │ │ ├── ipad-spotlight-icon-40@1x.png │ │ │ │ │ ├── ipad-spotlight-icon-40@2x.png │ │ │ │ │ ├── iphone-app-icon-60@2x.png │ │ │ │ │ ├── iphone-app-icon-60@3x.png │ │ │ │ │ ├── iphone-notification-icon-20@2x.png │ │ │ │ │ ├── iphone-notification-icon-20@3x.png │ │ │ │ │ ├── iphone-spotlight-icon-40@2x.png │ │ │ │ │ ├── iphone-spotlight-icon-40@3x.png │ │ │ │ │ ├── iphone-spotlight-settings-icon-29@2x.png │ │ │ │ │ └── iphone-spotlight-settings-icon-29@3x.png │ │ │ │ │ └── Contents.json │ │ │ ├── robovm.properties │ │ │ ├── robovm.xml │ │ │ └── src │ │ │ │ └── IOSLauncher │ │ ├── local.properties │ │ └── settings.gradle │ │ ├── skin │ │ ├── BladeSkin │ │ │ ├── PaytoneOne.ttf │ │ │ ├── Ubuntu-L.ttf │ │ │ ├── Ubuntu-M.ttf │ │ │ ├── blade-skin.atlas │ │ │ ├── blade-skin.json │ │ │ ├── blade-skin.png │ │ │ └── paytone-one-18.fnt │ │ └── libgdx │ │ │ ├── default.fnt │ │ │ ├── default.png │ │ │ ├── uiskin.atlas │ │ │ ├── uiskin.json │ │ │ └── uiskin.png │ │ └── versions.properties └── thirdparty │ └── gdx-particle-editor.jar ├── blade-engine-spine-plugin ├── .gitignore ├── README.md ├── build.gradle └── src │ └── main │ └── java │ └── com │ └── bladecoder │ └── engine │ ├── actions │ ├── SpineSecondaryAnimationAction.java │ └── SpineSkinAction.java │ └── spine │ ├── SkeletonDataLoader.java │ └── SpineRenderer.java ├── blade-engine ├── .gitignore ├── build.gradle └── src │ └── com │ └── bladecoder │ ├── engine.gwt.xml │ └── engine │ ├── BladeEngine.java │ ├── actions │ ├── AbstractControlAction.java │ ├── AbstractIfAction.java │ ├── Action.java │ ├── ActionCallback.java │ ├── ActionDescription.java │ ├── ActionFactory.java │ ├── ActionProperty.java │ ├── ActionPropertyDescription.java │ ├── ActorAnimationRef.java │ ├── AddValueToProperty.java │ ├── AlphaAnimAction.java │ ├── AnimationAction.java │ ├── BaseCallbackAction.java │ ├── CameraAction.java │ ├── CancelVerbAction.java │ ├── ChooseAction.java │ ├── CommentAction.java │ ├── DisableActionAction.java │ ├── DropItemAction.java │ ├── EndAction.java │ ├── EndGameAction.java │ ├── GotoAction.java │ ├── IAchievementAPI.java │ ├── IfAttrAction.java │ ├── IfInkVariableAction.java │ ├── IfPropertyAction.java │ ├── IfSceneAttrAction.java │ ├── InkCancelAction.java │ ├── InkNewStoryAction.java │ ├── InkRunAction.java │ ├── InkVariable.java │ ├── LeaveAction.java │ ├── LoadChapterAction.java │ ├── LookAtAction.java │ ├── MoveToSceneAction.java │ ├── MusicAction.java │ ├── MusicVolumeAction.java │ ├── OpenURLAction.java │ ├── Param.java │ ├── PickUpAction.java │ ├── PlaySoundAction.java │ ├── PositionAction.java │ ├── PositionAnimAction.java │ ├── PropertyAction.java │ ├── RandomPositionAction.java │ ├── RemoveInventoryItemAction.java │ ├── RepeatAction.java │ ├── RotateAction.java │ ├── RunOnceAction.java │ ├── RunVerbAction.java │ ├── SayAction.java │ ├── SayDialogAction.java │ ├── ScaleAction.java │ ├── ScaleAnimActionXY.java │ ├── SceneActorRef.java │ ├── ScreenPositionAction.java │ ├── SetAchievementAction.java │ ├── SetActorAttrAction.java │ ├── SetCutmodeAction.java │ ├── SetDescAction.java │ ├── SetDialogOptionAttrAction.java │ ├── SetPlayerAction.java │ ├── SetSceneStateAction.java │ ├── SetStateAction.java │ ├── SetWalkzoneAction.java │ ├── ShowInventoryAction.java │ ├── SoundAction.java │ ├── TalktoAction.java │ ├── TextAction.java │ ├── TintAnimAction.java │ ├── TransitionAction.java │ └── WaitAction.java │ ├── anim │ ├── AnimationDesc.java │ ├── AtlasAnimationDesc.java │ ├── CameraTween.java │ ├── FATween.java │ ├── MusicVolumeTween.java │ ├── SpineAnimationDesc.java │ ├── SpriteAlphaTween.java │ ├── SpritePosTween.java │ ├── SpriteRotateTween.java │ ├── SpriteScaleTween.java │ ├── SpriteTintTween.java │ ├── Timers.java │ ├── Tween.java │ └── WalkTween.java │ ├── assets │ ├── AssetConsumer.java │ ├── BasePathResolver.java │ ├── EngineAssetManager.java │ ├── EngineResolutionFileResolver.java │ └── InternalFolderResolver.java │ ├── i18n │ ├── I18N.java │ └── I18NControl.java │ ├── ink │ ├── ExternalFunctions.java │ ├── InkManager.java │ └── InkVerbRunner.java │ ├── model │ ├── ActorRenderer.java │ ├── AnchorActor.java │ ├── AnimationRenderer.java │ ├── AtlasRenderer.java │ ├── BaseActor.java │ ├── CharacterActor.java │ ├── Dialog.java │ ├── DialogOption.java │ ├── DirtyProps.java │ ├── ImageRenderer.java │ ├── InteractiveActor.java │ ├── Inventory.java │ ├── MusicDesc.java │ ├── MusicManager.java │ ├── ObstacleActor.java │ ├── ParticleRenderer.java │ ├── Scene.java │ ├── SceneCamera.java │ ├── SceneLayer.java │ ├── SceneSoundManager.java │ ├── SoundDesc.java │ ├── SpriteActor.java │ ├── Text.java │ ├── TextManager.java │ ├── TextRenderer.java │ ├── Transition.java │ ├── UIActors.java │ ├── Verb.java │ ├── VerbManager.java │ ├── VerbRunner.java │ ├── VoiceManager.java │ ├── WalkZoneActor.java │ ├── World.java │ └── WorldListener.java │ ├── pathfinder │ ├── AStarPathFinder.java │ ├── NavContext.java │ ├── NavGraph.java │ ├── NavNode.java │ ├── NavPath.java │ └── PathFinder.java │ ├── polygonalpathfinder │ ├── Distance.java │ ├── ManhattanDistance.java │ ├── NavNodePolygonal.java │ ├── NavPathPolygonal.java │ └── PolygonalNavGraph.java │ ├── serialization │ ├── ActionCallbackSerializer.java │ ├── BladeJson.java │ └── WorldSerialization.java │ ├── ui │ ├── AnimButton.java │ ├── AnimationDrawable.java │ ├── BladeScreen.java │ ├── BladeSkin.java │ ├── CreditsScreen.java │ ├── DebugDrawer.java │ ├── DebugScreen.java │ ├── DialogUI.java │ ├── HelpScreen.java │ ├── HotspotsDrawer.java │ ├── ITextManagerUI.java │ ├── InitScreen.java │ ├── InventoryButton.java │ ├── InventoryUI.java │ ├── LoadSaveScreen.java │ ├── LoadingScreen.java │ ├── MenuScreen.java │ ├── PagedScrollPane.java │ ├── PieMenu.java │ ├── PieMenu2.java │ ├── Pointer.java │ ├── Recorder.java │ ├── SceneExtendViewport.java │ ├── SceneFitViewport.java │ ├── SceneScreen.java │ ├── TesterBot.java │ ├── TextManagerUI.java │ ├── UI.java │ ├── defaults │ │ ├── DefaultSceneScreen.java │ │ ├── SceneControllerHandler.java │ │ ├── SceneGestureDetector.java │ │ ├── SceneGestureListener.java │ │ ├── ScenePointer.java │ │ ├── SceneWorldListener.java │ │ └── ScreenControllerHandler.java │ └── retro │ │ ├── RendererDrawable.java │ │ ├── RetroSceneScreen.java │ │ └── VerbUI.java │ └── util │ ├── ActionUtils.java │ ├── Config.java │ ├── DPIUtils.java │ ├── EngineLogger.java │ ├── FileUtils.java │ ├── InterpolationMode.java │ ├── MultiFontBitmapFontData.java │ ├── PolygonUtils.java │ ├── RectangleRenderer.java │ └── UIUtils.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Run Gradle build on push 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v2 11 | - name: Set up JDK 1.8 12 | uses: actions/setup-java@v1 13 | with: 14 | java-version: 1.8 15 | - name: Cache Gradle packages 16 | uses: actions/cache@v2 17 | with: 18 | path: | 19 | ~/.gradle/caches 20 | ~/.gradle/wrapper 21 | key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} 22 | restore-keys: | 23 | ${{ runner.os }}-gradle- 24 | - name: Build with Gradle 25 | run: ./gradlew build 26 | - name: Cleanup Gradle Cache 27 | # Remove some files from the Gradle cache, so they aren't cached by GitHub Actions. 28 | # Restoring these files from a GitHub Actions cache might cause problems for future builds. 29 | run: | 30 | rm -f ~/.gradle/caches/modules-2/modules-2.lock 31 | rm -f ~/.gradle/caches/modules-2/gc.properties -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Java 2 | *.class 3 | 4 | # IDEA 5 | *.iws 6 | *.ipr 7 | *.iml 8 | out/ 9 | .idea/ 10 | 11 | # Eclipse 12 | .project 13 | .classpath 14 | .settings/ 15 | bin/ 16 | 17 | # Gradle 18 | build/ 19 | .gradle/ 20 | 21 | *.log 22 | 23 | .DS_Store 24 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | # This is the official list of the AUTHORS of Story Maker 2 | # for copyright purposes. 3 | # This file is distinct from the CONTRIBUTORS files. 4 | # See the latter for an explanation. 5 | 6 | # Names should be added to this file as 7 | # Name or Organization 8 | # The email address is not required for organizations. 9 | Rafael Garcia 10 | -------------------------------------------------------------------------------- /adventure-editor/.gitignore: -------------------------------------------------------------------------------- 1 | # Java 2 | *.class 3 | 4 | # IDEA 5 | *.iws 6 | *.ipr 7 | *.iml 8 | out/ 9 | 10 | # Eclipse 11 | .project 12 | .classpath 13 | .settings/ 14 | bin/ 15 | 16 | # Gradle 17 | build/ 18 | .gradle/ 19 | -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_check_off.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_check_on.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_check_on_focused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_check_on_focused.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_default_disabled.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_default_disabled.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_default_focused.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_default_focused.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_default_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_default_normal.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_default_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_default_pressed.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_radio_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_radio_off.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_radio_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_radio_on.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_radio_on_focused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_radio_on_focused.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_off_disabled.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_off_disabled.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_off_focused.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_off_focused.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_off_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_off_normal.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_on_focused.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_on_focused.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_on_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_on_normal.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_on_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/btn_toggle_on_pressed.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/gen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | VERSION=1.11.0 3 | LIBGDX_BASE_PATH=~/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/ 4 | GDX_PATH=`find $LIBGDX_BASE_PATH -name gdx-$VERSION.jar` 5 | GDX_TOOLS_PATH=`find $LIBGDX_BASE_PATH -name gdx-tools-$VERSION.jar` 6 | 7 | java -cp $GDX_PATH:$GDX_TOOLS_PATH com.badlogic.gdx.tools.texturepacker.TexturePacker images ../../../src/main/resources/skin/BladeSkin blade-skin 8 | -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/icon-blitz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/icon-blitz.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/icon-blitz_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/icon-blitz_pressed.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/pack.json: -------------------------------------------------------------------------------- 1 | { 2 | pot: false, 3 | paddingX: 2, 4 | paddingY: 2, 5 | duplicatePadding: true, 6 | edgePadding: true, 7 | rotation: false, 8 | minWidth: 16, 9 | minHeight: 16, 10 | maxWidth: 2048, 11 | maxHeight: 2048, 12 | stripWhitespaceX: false, 13 | stripWhitespaceY: false, 14 | alphaThreshold: 0, 15 | filterMin: MipMapLinearNearest, 16 | filterMag: Nearest, 17 | wrapX: ClampToEdge, 18 | wrapY: ClampToEdge, 19 | format: RGBA8888, 20 | alias: true, 21 | outputFormat: png, 22 | jpegQuality: 0.9, 23 | ignoreBlankImages: true, 24 | fast: false, 25 | debug: false, 26 | } 27 | -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scroll.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scroll.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scroll_corner.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scroll_corner.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scroll_horizontal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scroll_horizontal.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scroll_horizontal_knob.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scroll_horizontal_knob.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scroll_opaque.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scroll_opaque.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scroll_vertical.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scroll_vertical.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scroll_vertical_knob.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scroll_vertical_knob.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scrubber_control_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scrubber_control_normal.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scrubber_primary.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scrubber_primary.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scrubber_secondary.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scrubber_secondary.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scrubber_track.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scrubber_track.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scrubber_vertical_primary.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scrubber_vertical_primary.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scrubber_vertical_secondary.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scrubber_vertical_secondary.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/scrubber_vertical_track.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/scrubber_vertical_track.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/spinner_default.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/spinner_default.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/spinner_focused.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/spinner_focused.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/spinner_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/spinner_pressed.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/splitpane_horizontal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/splitpane_horizontal.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/splitpane_vertical.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/splitpane_vertical.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/text.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/text.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/text_focused.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/text_focused.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/text_focused_opaque.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/text_focused_opaque.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/text_opaque.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/text_opaque.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/text_selected.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/text_selected.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/text_selected_opaque.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/text_selected_opaque.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/textfield_cursor.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/textfield_cursor.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/textfield_default.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/textfield_default.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/textfield_disabled.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/textfield_disabled.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/textfield_focused.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/textfield_focused.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/textfield_selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/textfield_selection.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/tree_minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/tree_minus.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/tree_plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/tree_plus.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/white_pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/white_pixel.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/BladeSkin/window.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/BladeSkin/window.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/eye.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/eye_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/eye_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_3d.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_add.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_add_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_add_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_anchor.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_animation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_animation.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_assets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_assets.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_assets_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_assets_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_atlases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_atlases.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_atlases_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_atlases_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_base_actor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_base_actor.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_character_actor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_character_actor.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_check.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_check_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_check_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_closed.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_closed_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_closed_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_copy.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_copy_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_copy_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_create_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_create_all.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_create_all_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_create_all_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_custom.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_delete.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_delete_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_delete_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_dialog.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_down.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_down_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_down_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_edit.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_edit_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_edit_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_enter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_enter.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_exit.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_eye.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_eye_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_eye_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_fg_actor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_fg_actor.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_flip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_flip.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_goto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_goto.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_init.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_leave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_leave.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_left.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_left_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_left_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_load.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_lookat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_lookat.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_new.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_no_scene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_no_scene.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_obstacle_actor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_obstacle_actor.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_open.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_open_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_open_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_package.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_package.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_package_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_package_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_particles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_particles.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_paste.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_paste_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_paste_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_pickup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_pickup.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_play.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_play_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_play_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_player.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_player_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_player_small.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_player_small_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_player_small_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_quit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_quit.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_reload_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_reload_small.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_reload_small_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_reload_small_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_repeat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_repeat.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_right.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_right_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_right_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_save.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_save_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_save_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_spine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_spine.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_sprite_actor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_sprite_actor.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_talkto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_talkto.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_test.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_text.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_up.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_up_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_up_disabled.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_use.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_use.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_walkzone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_walkzone.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/ic_yoyo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/ic_yoyo.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/scn_character.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/scn_character.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/scn_move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/scn_move.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/scn_rotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/scn_rotate.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/scn_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/scn_scale.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/scn_scale_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/scn_scale_lock.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/scn_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/scn_sprite.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/title.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/transparent-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/transparent-dark.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/icons/transparent-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/editor/icons/transparent-light.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/editor/pack_icons.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | VERSION=1.9.9 3 | LIBGDX_BASE_PATH=$HOME/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/ 4 | GDX_PATH=`find $LIBGDX_BASE_PATH -name gdx-$VERSION.jar` 5 | GDX_TOOLS_PATH=`find $LIBGDX_BASE_PATH -name gdx-tools-$VERSION.jar` 6 | OUT_DIR=../../src/main/resources/images 7 | 8 | cp pack.json $target 9 | java -cp $GDX_PATH:$GDX_TOOLS_PATH com.badlogic.gdx.tools.texturepacker.TexturePacker icons $OUT_DIR icons 10 | 11 | -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/gen-ui-atlas.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | VERSION=1.6.5 3 | LIBGDX_BASE_PATH=~/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/ 4 | GDX_PATH=`find $LIBGDX_BASE_PATH -name gdx-$VERSION.jar` 5 | GDX_TOOLS_PATH=`find $LIBGDX_BASE_PATH -name gdx-tools-$VERSION.jar` 6 | 7 | java -cp $GDX_PATH:$GDX_TOOLS_PATH com.badlogic.gdx.tools.texturepacker.TexturePacker images ../../../src/main/resources/projectTmpl/android/assets/ui/1/ ui 8 | -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/help/genhelp: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | TARGET_DIR=../../../src/main/resources/projectTmpl/android/assets/ui/1 4 | 5 | #GENERATE 1920_1080 6 | inkscape -w 1920 -h 1080 --export-area-page --export-png=$TARGET_DIR/helpDesktop_es.png helpDesktop_es.svg; 7 | inkscape -w 1920 -h 1080 --export-area-page --export-png=$TARGET_DIR/helpDesktop.png helpDesktop_en.svg; 8 | inkscape -w 1920 -h 1080 --export-area-page --export-png=$TARGET_DIR/helpPie_es.png helpPie_es.svg; 9 | inkscape -w 1920 -h 1080 --export-area-page --export-png=$TARGET_DIR/helpPie.png helpPie_en.svg; 10 | -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/logo/genlogo: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | TARGET_DIR=../../../src/main/resources/projectTmpl/android/assets/ui/1 4 | 5 | inkscape -d 60 --export-area-page --export-png=$TARGET_DIR/blade_logo.png blade_logo3.svg; 6 | 7 | -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/back.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/border_rect.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/border_rect.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/bubblepointer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/bubblepointer.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/credits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/credits.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/debug.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/delete.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/dialog_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/dialog_down.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/dialog_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/dialog_up.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/help.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/hotspot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/hotspot.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/hotspotpointer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/hotspotpointer.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/inv_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/inv_down.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/inv_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/inv_up.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/inventory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/inventory.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/leave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/leave.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/lookat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/lookat.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/menu.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/pack.json: -------------------------------------------------------------------------------- 1 | { 2 | pot: false, 3 | paddingX: 2, 4 | paddingY: 2, 5 | duplicatePadding: true, 6 | edgePadding: true, 7 | rotation: false, 8 | minWidth: 16, 9 | minHeight: 16, 10 | maxWidth: 4096, 11 | maxHeight: 4096, 12 | stripWhitespaceX: true, 13 | stripWhitespaceY: true, 14 | alphaThreshold: 0, 15 | filterMin: Linear, 16 | filterMag: Linear, 17 | wrapX: ClampToEdge, 18 | wrapY: ClampToEdge, 19 | format: RGBA8888, 20 | alias: true, 21 | outputFormat: png, 22 | jpegQuality: 0.9, 23 | ignoreBlankImages: true, 24 | fast: false, 25 | debug: false, 26 | } 27 | -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/pickup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/pickup.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/plus.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/pointer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/pointer.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/rect.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/rect.9.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/talkto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/talkto.png -------------------------------------------------------------------------------- /adventure-editor/assets-raw/engine/ui-atlas/white_pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/assets-raw/engine/ui-atlas/white_pixel.png -------------------------------------------------------------------------------- /adventure-editor/desktop/com.bladecoder.adventure-editor.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=adventure-editor 3 | Comment=Classic point and click adventure game engine and editor 4 | GenericName=Bladecoder Adventure Editor 5 | Exec=adventure-editor 6 | Icon=com.bladecoder.adventure-editor 7 | Type=Application 8 | StartupNotify=true 9 | Categories=Development; 10 | Keywords=;bladecoder; 11 | -------------------------------------------------------------------------------- /adventure-editor/desktop/com.bladecoder.adventure-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/desktop/com.bladecoder.adventure-editor.png -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/Ctx.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor; 17 | 18 | import com.bladecoder.engineeditor.model.Project; 19 | 20 | public class Ctx { 21 | public static Project project; 22 | public static EditorAssetManager assetManager; 23 | } 24 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/EditorAssetManager.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor; 17 | 18 | import com.badlogic.gdx.assets.AssetManager; 19 | import com.badlogic.gdx.graphics.g2d.TextureAtlas; 20 | import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion; 21 | import com.badlogic.gdx.graphics.g2d.TextureRegion; 22 | import com.bladecoder.engineeditor.common.EditorLogger; 23 | 24 | public class EditorAssetManager extends AssetManager { 25 | public static final String ICON_ATLAS = "images/icons.atlas"; 26 | 27 | public EditorAssetManager() { 28 | super(); 29 | 30 | /*** LOAD ICON ATLAS ***/ 31 | load(ICON_ATLAS, TextureAtlas.class); 32 | finishLoading(); 33 | } 34 | 35 | public TextureRegion getIcon(String name) { 36 | TextureAtlas a = get(ICON_ATLAS, TextureAtlas.class); 37 | 38 | AtlasRegion region = a.findRegion(name); 39 | 40 | if (region == null) { 41 | EditorLogger.error("Region " + name + " not found in icon atlas "); 42 | } 43 | 44 | return region; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/common/AlignUtils.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.common; 2 | 3 | import com.badlogic.gdx.utils.Align; 4 | 5 | public class AlignUtils { 6 | 7 | public static String getAlign(int align) { 8 | switch (align) { 9 | case Align.bottomRight: 10 | return "bottom-right"; 11 | case Align.bottomLeft: 12 | return "bottom-left"; 13 | case Align.topRight: 14 | return "top-right"; 15 | case Align.topLeft: 16 | return "top-left"; 17 | case Align.right: 18 | return "right"; 19 | case Align.left: 20 | return "left"; 21 | case Align.bottom: 22 | return "bottom"; 23 | case Align.top: 24 | return "top"; 25 | case Align.center: 26 | return "center"; 27 | } 28 | 29 | return ""; 30 | } 31 | 32 | public static int getAlign(String s) { 33 | if ("bottom-right".equals(s)) 34 | return Align.bottomRight; 35 | else if ("bottom-left".equals(s)) 36 | return Align.bottomLeft; 37 | else if ("top-right".equals(s)) 38 | return Align.topRight; 39 | else if ("top-left".equals(s)) 40 | return Align.topLeft; 41 | else if ("right".equals(s)) 42 | return Align.right; 43 | else if ("left".equals(s)) 44 | return Align.left; 45 | else if ("bottom".equals(s)) 46 | return Align.bottom; 47 | else if ("top".equals(s)) 48 | return Align.top; 49 | else if ("center".equals(s)) 50 | return Align.center; 51 | 52 | return 0; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/ActionVisitor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | import com.bladecoder.engine.actions.Action; 4 | import com.bladecoder.engine.model.InteractiveActor; 5 | import com.bladecoder.engine.model.Scene; 6 | import com.bladecoder.engine.model.Verb; 7 | 8 | public interface ActionVisitor extends Visitor { 9 | public void visit(Scene scn, InteractiveActor a, Verb v, Action act); 10 | } 11 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/ActorVisitor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | import com.bladecoder.engine.model.BaseActor; 4 | 5 | public interface ActorVisitor extends Visitor { 6 | public void visit(BaseActor a); 7 | } 8 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/DialogOptionVisitor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | import com.bladecoder.engine.model.CharacterActor; 4 | import com.bladecoder.engine.model.Dialog; 5 | import com.bladecoder.engine.model.DialogOption; 6 | 7 | public interface DialogOptionVisitor extends Visitor { 8 | public void visit(CharacterActor a, Dialog d, DialogOption o); 9 | } 10 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/DialogVisitor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | import com.bladecoder.engine.model.CharacterActor; 4 | import com.bladecoder.engine.model.Dialog; 5 | 6 | public interface DialogVisitor extends Visitor { 7 | public void visit(CharacterActor a, Dialog d); 8 | } 9 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/EndVisitor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | import com.bladecoder.engine.model.World; 4 | 5 | public interface EndVisitor extends Visitor { 6 | public void end(World w); 7 | } 8 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/QA.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | import com.bladecoder.engine.model.World; 4 | import com.bladecoder.engineeditor.qa.rules.CheckCutmodeEnd; 5 | import com.bladecoder.engineeditor.qa.rules.CheckDesc; 6 | import com.bladecoder.engineeditor.qa.rules.CheckInteractionVerbs; 7 | import com.bladecoder.engineeditor.qa.rules.Stats; 8 | 9 | public class QA { 10 | public void run(World w) { 11 | ModelWalker mw = new ModelWalker(); 12 | 13 | mw.addVisitor(new Stats()); 14 | mw.addVisitor(new CheckInteractionVerbs()); 15 | mw.addVisitor(new CheckDesc()); 16 | mw.addVisitor(new CheckCutmodeEnd()); 17 | 18 | mw.walk(w); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/SceneVisitor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | import com.bladecoder.engine.model.Scene; 4 | 5 | public interface SceneVisitor extends Visitor { 6 | public void visit(Scene s); 7 | } 8 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/StartVisitor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | import com.bladecoder.engine.model.World; 4 | 5 | public interface StartVisitor extends Visitor { 6 | public void start(World w); 7 | } 8 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/VerbVisitor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | import com.bladecoder.engine.model.InteractiveActor; 4 | import com.bladecoder.engine.model.Scene; 5 | import com.bladecoder.engine.model.Verb; 6 | 7 | public interface VerbVisitor extends Visitor { 8 | public void visit(Scene s, InteractiveActor a, Verb v); 9 | } 10 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/Visitor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa; 2 | 3 | public interface Visitor { 4 | } 5 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/rules/CheckCutmodeEnd.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa.rules; 2 | 3 | import java.util.ArrayList; 4 | 5 | import com.bladecoder.engine.actions.Action; 6 | import com.bladecoder.engine.actions.SetCutmodeAction; 7 | import com.bladecoder.engine.model.InteractiveActor; 8 | import com.bladecoder.engine.model.Scene; 9 | import com.bladecoder.engine.model.Verb; 10 | import com.bladecoder.engine.util.ActionUtils; 11 | import com.bladecoder.engineeditor.common.EditorLogger; 12 | import com.bladecoder.engineeditor.qa.VerbVisitor; 13 | 14 | /** 15 | * Checks that cutmode is set to false before ending the verb if it was previously set to true. 16 | * @author rgarcia 17 | */ 18 | public class CheckCutmodeEnd implements VerbVisitor { 19 | 20 | 21 | @Override 22 | public void visit(Scene s, InteractiveActor a, Verb v) { 23 | ArrayList actions = v.getActions(); 24 | 25 | if(actions.size() > 0) { 26 | Action action = actions.get(actions.size() - 1); 27 | 28 | if (action instanceof SetCutmodeAction) { 29 | try { 30 | String val = ActionUtils.getStringValue(action, "value"); 31 | 32 | if("true".equals(val)) { 33 | StringBuilder sb = new StringBuilder("CheckCutmodeEnd: Cutmode ends with value=true! - "); 34 | 35 | if(s != null) { 36 | sb.append(s.getId()); 37 | sb.append("."); 38 | } 39 | 40 | if(a != null) { 41 | sb.append(a.getId()); 42 | sb.append("."); 43 | } 44 | 45 | sb.append(v.getId()); 46 | 47 | EditorLogger.error(sb.toString()); 48 | } 49 | } catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) { 50 | 51 | } 52 | } 53 | } 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/rules/CheckDesc.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa.rules; 2 | 3 | import java.util.HashMap; 4 | 5 | import com.bladecoder.engine.model.BaseActor; 6 | import com.bladecoder.engine.model.InteractiveActor; 7 | import com.bladecoder.engine.model.Verb; 8 | import com.bladecoder.engineeditor.common.EditorLogger; 9 | import com.bladecoder.engineeditor.qa.ActorVisitor; 10 | 11 | /** 12 | * Checks that all interactive actors have description. 13 | * @author rgarcia 14 | * 15 | */ 16 | public class CheckDesc implements ActorVisitor { 17 | 18 | private InteractiveActor ia; 19 | 20 | private boolean hasLeave; 21 | private boolean hasEnterExit; 22 | 23 | @Override 24 | public void visit(BaseActor a) { 25 | if (a instanceof InteractiveActor) { 26 | ia = (InteractiveActor) a; 27 | 28 | hasLeave = false; 29 | hasEnterExit = false; 30 | 31 | if (ia.getInteraction()) { 32 | 33 | HashMap verbs = ia.getVerbManager().getVerbs(); 34 | 35 | for(Verb v:verbs.values()) 36 | checkVerb(v); 37 | 38 | // TODO: check states and verbs for states. 39 | 40 | if (hasLeave || hasEnterExit) 41 | return; 42 | 43 | if(ia.getDesc() == null || ia.getDesc().trim().isEmpty()) { 44 | EditorLogger.error("CheckDesc: " + a.getScene().getId() + "." + a.getId()); 45 | } 46 | } 47 | } 48 | } 49 | 50 | public void checkVerb(Verb v) { 51 | if (v.getId().equals("leave")) 52 | hasLeave = true; 53 | else if (v.getId().equals("enter") || v.getId().equals("exit")) 54 | hasEnterExit = true; 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/qa/rules/Stats.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.qa.rules; 2 | 3 | import com.bladecoder.engine.model.Scene; 4 | import com.bladecoder.engine.model.World; 5 | import com.bladecoder.engineeditor.common.EditorLogger; 6 | import com.bladecoder.engineeditor.qa.EndVisitor; 7 | import com.bladecoder.engineeditor.qa.SceneVisitor; 8 | 9 | public class Stats implements SceneVisitor, EndVisitor { 10 | 11 | int numScenes = 0; 12 | 13 | @Override 14 | public void visit(Scene s) { 15 | numScenes++; 16 | } 17 | 18 | @Override 19 | public void end(World w) { 20 | EditorLogger.msg("Num Scenes: " + numScenes); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/setup/ProjectSetup.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2011 See AUTHORS file. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | 17 | package com.bladecoder.engineeditor.setup; 18 | 19 | import java.util.ArrayList; 20 | import java.util.List; 21 | 22 | /** 23 | * Describes all the files required to generate a 24 | * new project for an Application. Files are found 25 | * on the classpath of the gdx-setup project, see 26 | * package com.badlogic.gdx.setup.resources. 27 | * @author badlogic 28 | * 29 | */ 30 | public class ProjectSetup { 31 | /** list of files, relative to project directory **/ 32 | public List files = new ArrayList(); 33 | } -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/setup/TemporaryProjectFile.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2011 See AUTHORS file. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | 17 | package com.bladecoder.engineeditor.setup; 18 | 19 | import java.io.File; 20 | 21 | /** 22 | * A temporary file that wraps {@link ProjectFile} for use in a {@link ProjectSetup} 23 | * @author Tomski 24 | * 25 | */ 26 | public class TemporaryProjectFile extends ProjectFile { 27 | 28 | /** The temporary file **/ 29 | public File file; 30 | 31 | public TemporaryProjectFile(File file, String outputString, boolean isTemplate) { 32 | super(outputString, isTemplate); 33 | this.file = file; 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/ui/panels/BooleanInputPanel.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor.ui.panels; 17 | 18 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 19 | 20 | public class BooleanInputPanel extends StringOptionsInputPanel { 21 | private static final String[] booleanValues = {"true", "false"}; 22 | 23 | BooleanInputPanel(Skin skin, String title, String desc, boolean mandatory, String defaultValue) { 24 | super(skin, title, desc, mandatory, defaultValue, booleanValues); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/ui/panels/ChapterInputPanel.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor.ui.panels; 17 | 18 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 19 | import com.bladecoder.engineeditor.Ctx; 20 | 21 | public class ChapterInputPanel extends StringOptionsInputPanel { 22 | ChapterInputPanel(Skin skin, String title, String desc, boolean mandatory, String defaultValue) { 23 | super(skin, title, desc, mandatory, defaultValue, Ctx.project.getChapter().getChapters()); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/ui/panels/EditableOptionsInputPanel.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor.ui.panels; 17 | 18 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 19 | 20 | public class EditableOptionsInputPanel extends InputPanel implements OptionsInputPanel { 21 | protected final EditableSelectBox input; 22 | 23 | EditableOptionsInputPanel(Skin skin, String title, String desc, boolean mandatory, String defaultValue, T[] options) { 24 | input = new EditableSelectBox<>(skin); 25 | init(skin, title, desc, input, mandatory, defaultValue); 26 | 27 | if(options != null) 28 | input.setItems(options); 29 | } 30 | 31 | public String getText() { 32 | if(input.getSelected().isEmpty()) 33 | return null; 34 | 35 | return input.getSelected(); 36 | } 37 | 38 | @Override 39 | public void setText(String s) { 40 | if(s == null) 41 | return; 42 | 43 | input.setSelected(s); 44 | } 45 | 46 | @Override 47 | public int getSelectedIndex() { 48 | return input.getSelectedIndex(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/ui/panels/FloatInputPanel.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor.ui.panels; 17 | 18 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 19 | 20 | public class FloatInputPanel extends StringInputPanel { 21 | 22 | FloatInputPanel(Skin skin, String title, String desc, boolean mandatory, String defaultValue) { 23 | super(skin, title, desc, mandatory, defaultValue); 24 | } 25 | 26 | @Override 27 | public boolean validateField() { 28 | String s = getText(); 29 | 30 | if(s == null || s.trim().isEmpty()) { 31 | if(isMandatory()) { 32 | setError(true); 33 | return false; 34 | } else { 35 | setError(false); 36 | return true; 37 | } 38 | } 39 | 40 | try { 41 | Float.parseFloat(s); 42 | } catch (NumberFormatException e) { 43 | setError(true); 44 | return false; 45 | } 46 | 47 | setError(false); 48 | return true; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/ui/panels/IntegerInputPanel.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor.ui.panels; 17 | 18 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 19 | 20 | public class IntegerInputPanel extends StringInputPanel { 21 | 22 | IntegerInputPanel(Skin skin, String title, String desc, boolean mandatory, String defaultValue) { 23 | super(skin, title, desc, mandatory, defaultValue); 24 | } 25 | 26 | @Override 27 | public boolean validateField() { 28 | String s = getText(); 29 | 30 | if(s == null || s.trim().isEmpty()) { 31 | if(isMandatory()) { 32 | setError(true); 33 | return false; 34 | } else { 35 | setError(false); 36 | return true; 37 | } 38 | } 39 | 40 | try { 41 | Integer.parseInt(s); 42 | } catch (NumberFormatException e) { 43 | setError(true); 44 | return false; 45 | } 46 | 47 | setError(false); 48 | return true; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/ui/panels/LayerInputPanel.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor.ui.panels; 17 | 18 | import java.util.List; 19 | 20 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 21 | import com.bladecoder.engine.model.SceneLayer; 22 | import com.bladecoder.engineeditor.Ctx; 23 | 24 | public class LayerInputPanel extends EditableOptionsInputPanel { 25 | LayerInputPanel(Skin skin, String title, String desc, boolean mandatory, String defaultValue) { 26 | super(skin, title, desc, mandatory, defaultValue, getValues(mandatory)); 27 | } 28 | 29 | private static String[] getValues(boolean mandatory) { 30 | List layers = Ctx.project.getSelectedScene().getLayers(); 31 | 32 | String[] result = new String[layers.size()]; 33 | 34 | 35 | for(int i = 0; i < layers.size(); i++) { 36 | result[i] = layers.get(i).getName(); 37 | } 38 | 39 | return result; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/ui/panels/OptionsInputPanel.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.ui.panels; 2 | 3 | public interface OptionsInputPanel { 4 | int getSelectedIndex(); 5 | } 6 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/ui/panels/SoundInputPanel.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor.ui.panels; 17 | 18 | import java.util.Arrays; 19 | import java.util.Map; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 22 | import com.bladecoder.engine.model.SoundDesc; 23 | import com.bladecoder.engineeditor.Ctx; 24 | 25 | public class SoundInputPanel extends StringOptionsInputPanel { 26 | SoundInputPanel(Skin skin, String title, String desc, boolean mandatory, String defaultValue) { 27 | super(skin, title, desc, mandatory, defaultValue, getValues(mandatory)); 28 | } 29 | 30 | private static String[] getValues(boolean mandatory) { 31 | Map sounds = Ctx.project.getWorld().getSounds(); 32 | 33 | String[] result = new String[sounds.size()]; 34 | 35 | SoundDesc[] v = sounds.values().toArray(new SoundDesc[sounds.size()]); 36 | 37 | for(int i = 0; i < sounds.size(); i++) { 38 | result[i] = v[i].getId(); 39 | } 40 | 41 | Arrays.sort(result); 42 | 43 | return result; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/ui/panels/StringInputPanel.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engineeditor.ui.panels; 17 | 18 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 19 | import com.badlogic.gdx.scenes.scene2d.ui.TextField; 20 | 21 | public class StringInputPanel extends InputPanel { 22 | TextField input; 23 | 24 | StringInputPanel(Skin skin, String title, String desc, boolean mandatory, String defaultValue) { 25 | input = new TextField("", skin); 26 | init(skin, title, desc, input, mandatory, defaultValue); 27 | } 28 | 29 | public String getText() { 30 | String text = ((TextField)field).getText(); 31 | return text.isEmpty()?null:text; 32 | } 33 | 34 | public void setText(String s) { 35 | ((TextField)field).setText(s); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoBboxPointPos.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.badlogic.gdx.math.Vector2; 4 | import com.bladecoder.engine.model.BaseActor; 5 | import com.bladecoder.engineeditor.Ctx; 6 | 7 | 8 | public class UndoBboxPointPos implements UndoOp { 9 | private BaseActor a; 10 | private Vector2 pos; 11 | private int i; 12 | 13 | public UndoBboxPointPos(BaseActor a, int i, Vector2 pos) { 14 | this.pos = pos; 15 | this.a = a; 16 | this.i = i; 17 | } 18 | 19 | @Override 20 | public void undo() { 21 | 22 | float verts[] = a.getBBox().getVertices(); 23 | verts[i] = pos.x; 24 | verts[i + 1] = pos.y; 25 | a.getBBox().dirty(); 26 | 27 | Ctx.project.setModified(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoCreateActor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.BaseActor; 4 | import com.bladecoder.engine.model.Scene; 5 | import com.bladecoder.engineeditor.Ctx; 6 | import com.bladecoder.engineeditor.model.Project; 7 | 8 | 9 | public class UndoCreateActor implements UndoOp { 10 | private Scene scn; 11 | private BaseActor a; 12 | 13 | public UndoCreateActor(Scene s, BaseActor a) { 14 | scn = s; 15 | this.a = a; 16 | } 17 | 18 | @Override 19 | public void undo() { 20 | scn.getActors().remove(a.getId()); 21 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_DELETED, null, a); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoCreateScene.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.Scene; 4 | import com.bladecoder.engineeditor.Ctx; 5 | import com.bladecoder.engineeditor.model.Project; 6 | 7 | 8 | public class UndoCreateScene implements UndoOp { 9 | private Scene scn; 10 | 11 | public UndoCreateScene(Scene s) { 12 | scn = s; 13 | } 14 | 15 | @Override 16 | public void undo() { 17 | Ctx.project.getWorld().getScenes().remove(scn.getId()); 18 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_DELETED, null, scn); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoCreateSound.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.SoundDesc; 4 | import com.bladecoder.engineeditor.Ctx; 5 | import com.bladecoder.engineeditor.model.Project; 6 | 7 | 8 | public class UndoCreateSound implements UndoOp { 9 | private SoundDesc s; 10 | 11 | public UndoCreateSound(SoundDesc s) { 12 | this.s = s; 13 | } 14 | 15 | @Override 16 | public void undo() { 17 | Ctx.project.getWorld().getSounds().remove(s.getFilename()); 18 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_DELETED, null, s); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoDeleteAction.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.actions.Action; 4 | import com.bladecoder.engine.model.Verb; 5 | import com.bladecoder.engineeditor.Ctx; 6 | import com.bladecoder.engineeditor.model.Project; 7 | 8 | 9 | public class UndoDeleteAction implements UndoOp { 10 | private Verb v; 11 | private Action a; 12 | private int idx; 13 | 14 | public UndoDeleteAction(Verb v, Action a, int idx) { 15 | this.v = v; 16 | this.a = a; 17 | this.idx = idx; 18 | } 19 | 20 | @Override 21 | public void undo() { 22 | v.getActions().add(idx, a); 23 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, a); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoDeleteActor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.BaseActor; 4 | import com.bladecoder.engine.model.Scene; 5 | import com.bladecoder.engineeditor.Ctx; 6 | import com.bladecoder.engineeditor.model.Project; 7 | 8 | 9 | public class UndoDeleteActor implements UndoOp { 10 | private BaseActor a; 11 | private Scene s; 12 | 13 | public UndoDeleteActor(Scene s, BaseActor a) { 14 | this.s = s; 15 | this.a = a; 16 | } 17 | 18 | @Override 19 | public void undo() { 20 | s.addActor(a); 21 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, a); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoDeleteAnimation.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.anim.AnimationDesc; 4 | import com.bladecoder.engine.model.AnimationRenderer; 5 | import com.bladecoder.engine.model.SpriteActor; 6 | import com.bladecoder.engineeditor.Ctx; 7 | import com.bladecoder.engineeditor.model.Project; 8 | 9 | 10 | public class UndoDeleteAnimation implements UndoOp { 11 | private SpriteActor a; 12 | private AnimationDesc anim; 13 | 14 | public UndoDeleteAnimation(SpriteActor a, AnimationDesc anim) { 15 | this.anim = anim; 16 | this.a = a; 17 | } 18 | 19 | @Override 20 | public void undo() { 21 | ((AnimationRenderer)a.getRenderer()).addAnimation(anim); 22 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, anim); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoDeleteDialog.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.CharacterActor; 4 | import com.bladecoder.engine.model.Dialog; 5 | import com.bladecoder.engineeditor.Ctx; 6 | import com.bladecoder.engineeditor.model.Project; 7 | 8 | 9 | public class UndoDeleteDialog implements UndoOp { 10 | private CharacterActor a; 11 | private Dialog d; 12 | 13 | public UndoDeleteDialog(CharacterActor a, Dialog d) { 14 | this.d = d; 15 | this.a = a; 16 | } 17 | 18 | @Override 19 | public void undo() { 20 | a.addDialog(d); 21 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, d); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoDeleteOption.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.Dialog; 4 | import com.bladecoder.engine.model.DialogOption; 5 | import com.bladecoder.engineeditor.Ctx; 6 | import com.bladecoder.engineeditor.model.Project; 7 | 8 | 9 | public class UndoDeleteOption implements UndoOp { 10 | private Dialog d; 11 | private DialogOption o; 12 | private int idx; 13 | 14 | public UndoDeleteOption(Dialog d, DialogOption o, int idx) { 15 | this.d = d; 16 | this.o = o; 17 | this.idx = idx; 18 | } 19 | 20 | @Override 21 | public void undo() { 22 | d.getOptions().add(idx, o); 23 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, o); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoDeleteScene.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.Scene; 4 | import com.bladecoder.engineeditor.Ctx; 5 | import com.bladecoder.engineeditor.model.Project; 6 | 7 | 8 | public class UndoDeleteScene implements UndoOp { 9 | private Scene scn; 10 | 11 | public UndoDeleteScene(Scene s) { 12 | scn = s; 13 | } 14 | 15 | @Override 16 | public void undo() { 17 | Ctx.project.getWorld().addScene(scn); 18 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, scn); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoDeleteSound.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.SoundDesc; 4 | import com.bladecoder.engineeditor.Ctx; 5 | import com.bladecoder.engineeditor.common.ElementUtils; 6 | import com.bladecoder.engineeditor.model.Project; 7 | 8 | 9 | public class UndoDeleteSound implements UndoOp { 10 | private SoundDesc s; 11 | 12 | public UndoDeleteSound(SoundDesc s) { 13 | this.s = s; 14 | } 15 | 16 | @Override 17 | public void undo() { 18 | s.setId(ElementUtils.getCheckedId(s.getFilename(), Ctx.project.getWorld().getSounds().keySet().toArray(new String[ Ctx.project.getWorld().getSounds().size()]))); 19 | Ctx.project.getWorld().getSounds().put(s.getId(), s); 20 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, s); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoDeleteVerb.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.Verb; 4 | import com.bladecoder.engine.model.VerbManager; 5 | import com.bladecoder.engineeditor.Ctx; 6 | import com.bladecoder.engineeditor.model.Project; 7 | 8 | public class UndoDeleteVerb implements UndoOp { 9 | private VerbManager vm; 10 | private Verb v; 11 | 12 | public UndoDeleteVerb(VerbManager vm, Verb v) { 13 | this.vm = vm; 14 | this.v = v; 15 | } 16 | 17 | @Override 18 | public void undo() { 19 | vm.addVerb(v); 20 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, v); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoDepthVector.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.badlogic.gdx.math.Vector2; 4 | import com.bladecoder.engine.model.BaseActor; 5 | import com.bladecoder.engine.model.Scene; 6 | import com.bladecoder.engine.model.SpriteActor; 7 | import com.bladecoder.engineeditor.Ctx; 8 | 9 | 10 | public class UndoDepthVector implements UndoOp { 11 | private Vector2 pos; 12 | private Scene s; 13 | 14 | public UndoDepthVector(Scene s, Vector2 pos) { 15 | this.pos = pos; 16 | this.s = s; 17 | } 18 | 19 | @Override 20 | public void undo() { 21 | s.getDepthVector().set(pos.x, pos.y); 22 | Ctx.project.setModified(); 23 | updateFakeDepth(); 24 | } 25 | 26 | private void updateFakeDepth() { 27 | for (BaseActor a : s.getActors().values()) { 28 | if (a instanceof SpriteActor) { 29 | a.setPosition(a.getX(), a.getY()); 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoEditActor.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.Scene; 4 | import com.bladecoder.engineeditor.Ctx; 5 | import com.bladecoder.engineeditor.model.Project; 6 | 7 | 8 | public class UndoEditActor implements UndoOp { 9 | private Scene scn; 10 | 11 | public UndoEditActor(Scene s) { 12 | scn = s; 13 | } 14 | 15 | @Override 16 | public void undo() { 17 | // TODO restore attributes 18 | // Ctx.project.getWorld().getScenes().remove(scn); 19 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, scn); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoEditScene.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.Scene; 4 | import com.bladecoder.engineeditor.Ctx; 5 | import com.bladecoder.engineeditor.model.Project; 6 | 7 | 8 | public class UndoEditScene implements UndoOp { 9 | private Scene scn; 10 | 11 | public UndoEditScene(Scene s) { 12 | scn = s; 13 | } 14 | 15 | @Override 16 | public void undo() { 17 | // TODO restore attributes 18 | // Ctx.project.getWorld().getScenes().remove(scn); 19 | Ctx.project.setModified(this, Project.NOTIFY_ELEMENT_CREATED, null, scn); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoOp.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | public interface UndoOp { 4 | void undo(); 5 | } 6 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoPosition.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.badlogic.gdx.math.Vector2; 4 | import com.bladecoder.engine.model.BaseActor; 5 | import com.bladecoder.engineeditor.Ctx; 6 | import com.bladecoder.engineeditor.model.Project; 7 | 8 | 9 | public class UndoPosition implements UndoOp { 10 | private BaseActor a; 11 | private Vector2 pos; 12 | 13 | public UndoPosition(BaseActor a, Vector2 pos) { 14 | this.pos = pos; 15 | this.a = a; 16 | } 17 | 18 | @Override 19 | public void undo() { 20 | a.setPosition(pos.x, pos.y); 21 | Ctx.project.setModified(this, Project.POSITION_PROPERTY, null, a); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoRefPosition.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.badlogic.gdx.math.Vector2; 4 | import com.bladecoder.engine.model.InteractiveActor; 5 | import com.bladecoder.engineeditor.Ctx; 6 | 7 | 8 | public class UndoRefPosition implements UndoOp { 9 | private InteractiveActor a; 10 | private Vector2 pos; 11 | 12 | public UndoRefPosition(InteractiveActor a, Vector2 pos) { 13 | this.pos = pos; 14 | this.a = a; 15 | } 16 | 17 | @Override 18 | public void undo() { 19 | a.setRefPoint(pos.x, pos.y); 20 | Ctx.project.setModified(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoRotation.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.bladecoder.engine.model.SpriteActor; 4 | import com.bladecoder.engineeditor.Ctx; 5 | 6 | 7 | public class UndoRotation implements UndoOp { 8 | private SpriteActor a; 9 | private float rot; 10 | 11 | public UndoRotation(SpriteActor a, float rot) { 12 | this.rot = rot; 13 | this.a = a; 14 | } 15 | 16 | @Override 17 | public void undo() { 18 | a.setRot(rot); 19 | Ctx.project.setModified(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoScale.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import com.badlogic.gdx.math.Vector2; 4 | import com.bladecoder.engine.model.SpriteActor; 5 | import com.bladecoder.engineeditor.Ctx; 6 | 7 | 8 | public class UndoScale implements UndoOp { 9 | private SpriteActor a; 10 | private Vector2 scale; 11 | 12 | public UndoScale(SpriteActor a, Vector2 scale) { 13 | this.scale = scale; 14 | this.a = a; 15 | } 16 | 17 | @Override 18 | public void undo() { 19 | a.setScale(scale.x, scale.y); 20 | Ctx.project.setModified(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /adventure-editor/src/main/java/com/bladecoder/engineeditor/undo/UndoStack.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engineeditor.undo; 2 | 3 | import java.util.ArrayDeque; 4 | import java.util.Deque; 5 | 6 | import com.bladecoder.engineeditor.common.EditorLogger; 7 | 8 | public class UndoStack { 9 | Deque stack = new ArrayDeque(); 10 | 11 | public void add(UndoOp op) { 12 | stack.push(op); 13 | } 14 | 15 | public void undo() { 16 | if (!stack.isEmpty()) { 17 | UndoOp op = stack.pop(); 18 | op.undo(); 19 | 20 | EditorLogger.debug("UNDO: " + op); 21 | } 22 | } 23 | 24 | public void clear() { 25 | stack.clear(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/images/ic_app16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/images/ic_app16.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/images/ic_app32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/images/ic_app32.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/images/ic_app64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/images/ic_app64.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/images/icons.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 17 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/android/ic_launcher-web.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | 22 | -verbose 23 | 24 | -dontwarn android.support.** 25 | -dontwarn com.badlogic.gdx.backends.android.AndroidFragmentApplication 26 | -dontwarn com.badlogic.gdx.utils.GdxBuild 27 | -dontwarn com.badlogic.gdx.physics.box2d.utils.Box2DBuild 28 | -dontwarn com.badlogic.gdx.jnigen.BuildTarget* 29 | 30 | -keepclassmembers class com.badlogic.gdx.backends.android.AndroidInput* { 31 | (com.badlogic.gdx.Application, android.content.Context, java.lang.Object, com.badlogic.gdx.backends.android.AndroidApplicationConfiguration); 32 | } 33 | 34 | -keepclassmembers class com.badlogic.gdx.physics.box2d.World { 35 | boolean contactFilter(long, long); 36 | void beginContact(long); 37 | void endContact(long); 38 | void preSolve(long, long); 39 | void postSolve(long, long); 40 | boolean reportFixture(long); 41 | float reportRayFixture(long, float, float, float, float, float); 42 | } 43 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/android/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/android/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/android/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/android/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/android/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %APP_NAME% 5 | 6 | 7 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/android/src/expansion/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/BladeEngine.properties: -------------------------------------------------------------------------------- 1 | title=Blade Engine Adventure 2 | ui_mode=two_buttons 3 | inventory_pos=down 4 | debug=false 5 | resolutions=1 6 | 7 | 8 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/model/00.chapter.json: -------------------------------------------------------------------------------- 1 | { 2 | bladeEngineVersion: "1.3.1", 3 | sounds: {}, 4 | scenes: { 5 | "scene-1": { 6 | id: "scene-1", 7 | layers: [ 8 | { 9 | name: "foreground" 10 | }, 11 | { 12 | name: "dynamic", 13 | dynamic: true 14 | }, 15 | { 16 | name: "background" 17 | } 18 | ], 19 | actors: {}, 20 | musicDesc: null, 21 | verbs: {} 22 | } 23 | }, 24 | initScene: "scene-1" 25 | } -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/model/00.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/model/00.properties -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/model/world: -------------------------------------------------------------------------------- 1 | { 2 | width: 1920, 3 | height: 1080, 4 | initChapter: "00", 5 | verbs: { 6 | dialog: { 7 | id: "dialog", 8 | target: null, 9 | state: null, 10 | actions: [ 11 | { 12 | class: "com.bladecoder.engine.actions.SetCutmodeAction", 13 | value: true 14 | }, 15 | { 16 | class: "com.bladecoder.engine.actions.SayDialogAction", 17 | wait: true 18 | }, 19 | { 20 | class: "com.bladecoder.engine.actions.SetCutmodeAction", 21 | value: false 22 | } 23 | ] 24 | }, 25 | use: { 26 | id: "use", 27 | target: null, 28 | state: null, 29 | actions: [ 30 | { 31 | class: "com.bladecoder.engine.actions.LookAtAction", 32 | text: "@default.use.0.text", 33 | wait: false 34 | } 35 | ] 36 | }, 37 | lookat: { 38 | id: "lookat", 39 | target: null, 40 | state: null, 41 | actions: [ 42 | { 43 | class: "com.bladecoder.engine.actions.LookAtAction", 44 | text: "@default.lookat.0.text", 45 | wait: true 46 | } 47 | ] 48 | }, 49 | initNewGame: { 50 | id: "initNewGame", 51 | target: null, 52 | state: null, 53 | icon: null, 54 | actions: [] 55 | }, 56 | initSavedGame: { 57 | id: "initSavedGame", 58 | target: null, 59 | state: null, 60 | icon: null, 61 | actions: [] 62 | }, 63 | pickup: { 64 | id: "pickup", 65 | target: null, 66 | state: null, 67 | actions: [ 68 | { 69 | class: "com.bladecoder.engine.actions.LookAtAction", 70 | text: "@default.pickup.0.text", 71 | wait: true 72 | } 73 | ] 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/model/world.properties: -------------------------------------------------------------------------------- 1 | #world.json 2 | #Sat Jan 02 11:31:11 CET 2016 3 | default.lookat.0.text=I'm not interested. 4 | default.pickup.0.text=For what? 5 | default.use.0.text=I don't know what to do with that. 6 | ui.back=Back 7 | ui.continue=Continue 8 | ui.credits=Credits 9 | ui.help=Help 10 | ui.load=Load/Save 11 | ui.new=New Game 12 | ui.newSlot=Save Game 13 | ui.noSavedGames=No saved games found 14 | ui.quit=Exit 15 | ui.save=Save Game 16 | ui.override=The current game progress will be lost. Are you sure you want to start a new game? 17 | ui.override_load=The current game progress will be lost. Are you sure you want to load this game? 18 | ui.remove=Are you sure you want to remove this saved game? 19 | ui.yes=YES 20 | ui.no=NO 21 | ui.gamesaved=Game Saved 22 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/model/world_es.properties: -------------------------------------------------------------------------------- 1 | #Mon Apr 29 15:12:39 CEST 2013 2 | default.use.0.text=No se qué hacer con esto 3 | default.lookat.0.text=Nada interesante 4 | default.pickup.0.text=No puedo coger eso 5 | 6 | ui.back=Atrás 7 | ui.continue=Continuar 8 | ui.credits=Créditos 9 | ui.help=Ayuda 10 | ui.load=Guardar/Cargar 11 | ui.new=Nuevo Juego 12 | ui.newSlot=Guardar Juego 13 | ui.no=NO 14 | ui.noSavedGames=No se han encontrado juegos salvados 15 | ui.override=El progreso actual del juego se perderá. ¿Estás seguro de que quieres empezar un nuevo juego? 16 | ui.override_load=El progreso actual del juego se perderá. ¿Estás seguro de que quieres cargar la partida seleccionada? 17 | ui.quit=Salir 18 | ui.remove=¿Estás seguro de que quieres borrar la partida seleccionada? 19 | ui.save=Guardar Juego 20 | ui.yes=SI 21 | ui.gamesaved=Juego guardado 22 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/1/blade_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/1/blade_logo.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/1/helpDesktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/1/helpDesktop.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/1/helpDesktop_es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/1/helpDesktop_es.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/1/helpPie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/1/helpPie.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/1/helpPie_es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/1/helpPie_es.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/1/libgdx_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/1/libgdx_logo.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/1/ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/1/ui.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/credits.txt: -------------------------------------------------------------------------------- 1 | t#BLADECODER ADVENTURE ENGINE 2 | RAFAEL GARCÍA 3 | s#120 4 | i#libgdx_logo.png 5 | s#250 6 | i#blade_logo.png 7 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/ArchitectsDaughter.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/ArchitectsDaughter.ttf -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/PaytoneOne.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/PaytoneOne.ttf -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/Roboto-Black.ttf -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/Roboto-Thin.ttf -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/Ubuntu-M.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/assets/ui/fonts/Ubuntu-M.ttf -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | mavenCentral() 4 | gradlePluginPortal() 5 | google() 6 | } 7 | dependencies { 8 | classpath "com.android.tools.build:gradle:$androidGradlePluginVersion" 9 | } 10 | } 11 | 12 | subprojects { 13 | repositories { 14 | mavenCentral() 15 | google() 16 | gradlePluginPortal() 17 | maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 18 | maven { url "https://oss.sonatype.org/content/repositories/releases/" } 19 | } 20 | } 21 | 22 | 23 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/core/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | apply plugin: 'java-library' 3 | 4 | sourceCompatibility = 1.8 5 | targetCompatibility = 1.8 6 | 7 | [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' 8 | 9 | dependencies { 10 | api "com.badlogicgames.gdx:gdx:$gdxVersion" 11 | api "com.bladecoder.engine:blade-engine:$bladeEngineVersion" 12 | implementation "com.bladecoder.ink:blade-ink:$bladeInkVersion" 13 | implementation "org.minimalcode:minimalcode-beans:0.5.1" 14 | implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" 15 | implementation "com.badlogicgames.gdx-controllers:gdx-controllers-core:$gdxControllersVersion" 16 | 17 | 18 | if (project.hasProperty("spinePlugin") && project.spinePlugin.equals("true")) { 19 | println "Using Spine Plugin..." 20 | implementation "com.bladecoder.engine:blade-engine-spine-plugin:$bladeEngineVersion" 21 | } 22 | } 23 | 24 | 25 | task setVersion(type: WriteProperties) { 26 | def props = new Properties() 27 | def propFile = project.file("../assets/BladeEngine.properties"); 28 | props.load(new FileReader(propFile)) 29 | 30 | props."version" = version 31 | props."bladeEngineVersion" = bladeEngineVersion 32 | props."gdxVersion" = gdxVersion 33 | props."roboVMVersion" = roboVMVersion 34 | 35 | setProperties(props); 36 | setOutputFile(propFile); 37 | 38 | doLast { 39 | println "Set version info in versions.properties" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/desktop/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'application' 3 | 4 | sourceCompatibility = 1.8 5 | targetCompatibility = 1.8 6 | 7 | sourceSets.main.resources.srcDirs += [rootProject.file('assets').absolutePath] 8 | mainClassName = "com.bladecoder.engine.DesktopLauncher" 9 | //applicationDefaultJvmArgs = ["-XstartOnFirstThread"] 10 | 11 | dependencies { 12 | implementation project(":core") 13 | implementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion" 14 | implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" 15 | implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop" 16 | implementation "com.badlogicgames.gdx:gdx-lwjgl3-angle:$gdxVersion" 17 | implementation "com.badlogicgames.gdx-controllers:gdx-controllers-desktop:$gdxControllersVersion" 18 | } 19 | 20 | def os = System.properties['os.name'].toLowerCase() 21 | 22 | run { 23 | standardInput = System.in 24 | ignoreExitValue = true 25 | 26 | if (project.hasProperty("appArgs")) { 27 | args Eval.me(appArgs) 28 | } 29 | 30 | if (os.contains('mac')) { 31 | jvmArgs = ["-XstartOnFirstThread"] 32 | } 33 | } 34 | 35 | 36 | task dist(type: Jar) { 37 | duplicatesStrategy(DuplicatesStrategy.EXCLUDE) 38 | manifest { 39 | attributes 'Main-Class': project.mainClassName 40 | } 41 | dependsOn configurations.runtimeClasspath 42 | from { 43 | configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } 44 | } 45 | with jar 46 | } 47 | 48 | dist.dependsOn classes 49 | dist.dependsOn ':core:jar' 50 | processResources.dependsOn ':core:setVersion' 51 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/desktop/src/icons/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/desktop/src/icons/icon128.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/desktop/src/icons/icon16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/desktop/src/icons/icon16.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/desktop/src/icons/icon32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/desktop/src/icons/icon32.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/gitignore: -------------------------------------------------------------------------------- 1 | ## Java 2 | 3 | *.class 4 | *.war 5 | *.ear 6 | hs_err_pid* 7 | 8 | ## GWT 9 | war/ 10 | html/war/gwt_bree/ 11 | html/gwt-unitCache/ 12 | .apt_generated/ 13 | html/war/WEB-INF/deploy/ 14 | html/war/WEB-INF/classes/ 15 | .gwt/ 16 | gwt-unitCache/ 17 | www-test/ 18 | .gwt-tmp/ 19 | 20 | ## Android Studio and Intellij and Android in general 21 | android/libs/armeabi/ 22 | android/libs/armeabi-v7a/ 23 | android/libs/x86/ 24 | android/libs/x86_64/ 25 | android/libs/arm64-v8a/ 26 | android/gen/ 27 | .idea/ 28 | *.ipr 29 | *.iws 30 | *.iml 31 | out/ 32 | com_crashlytics_export_strings.xml 33 | 34 | ## Eclipse 35 | .classpath 36 | .project 37 | .metadata 38 | **/bin/ 39 | tmp/ 40 | *.tmp 41 | *.bak 42 | *.swp 43 | *~.nib 44 | local.properties 45 | .settings/ 46 | .loadpath 47 | .externalToolBuilders/ 48 | *.launch 49 | 50 | ## NetBeans 51 | **/nbproject/private/ 52 | build/ 53 | nbbuild/ 54 | dist/ 55 | nbdist/ 56 | nbactions.xml 57 | nb-configuration.xml 58 | 59 | ## Gradle 60 | 61 | .gradle 62 | build/ 63 | 64 | ## OS Specific 65 | .DS_Store 66 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/gradle.properties: -------------------------------------------------------------------------------- 1 | appName=%APP_NAME% 2 | bladeEngineVersion=%BLADE_ENGINE_VERSION% 3 | gdxVersion=%LIBGDX_VERSION% 4 | roboVMVersion=%ROBOVM_VERSION% 5 | androidGradlePluginVersion=%ANDROID_GRADLE_PLUGIN_VERSION% 6 | bladeInkVersion=%BLADE_INK_VERSION% 7 | spinePlugin=%USE_SPINE% 8 | gdxControllersVersion=2.2.2 9 | org.gradle.daemon=true 10 | org.gradle.jvmargs=-Xms128m -Xmx1536m 11 | org.gradle.configureondemand=false 12 | android.injected.testOnly=false 13 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | mavenCentral() 4 | } 5 | dependencies { 6 | classpath "com.mobidevelop.robovm:robovm-gradle-plugin:$roboVMVersion" 7 | } 8 | } 9 | 10 | apply plugin: 'java-library' 11 | apply plugin: 'robovm' 12 | 13 | [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' 14 | sourceCompatibility = 1.8 15 | targetCompatibility = 1.8 16 | 17 | ext { 18 | mainClassName = "com.bladecoder.engine.IOSLauncher" 19 | } 20 | 21 | launchIPhoneSimulator.dependsOn build 22 | launchIPadSimulator.dependsOn build 23 | launchIOSDevice.dependsOn build 24 | createIPA.dependsOn build 25 | processResources.dependsOn ':core:setVersion' 26 | 27 | robovm { 28 | archs = "arm64" 29 | } 30 | 31 | dependencies { 32 | implementation project(':core') 33 | implementation "com.mobidevelop.robovm:robovm-rt:$roboVMVersion" 34 | implementation "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion" 35 | implementation "com.badlogicgames.gdx:gdx-backend-robovm-metalangle:$gdxVersion" 36 | implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" 37 | implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios" 38 | implementation "com.badlogicgames.gdx-controllers:gdx-controllers-ios:$gdxControllersVersion" 39 | } 40 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Default-1024w-1366h@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Default-1024w-1366h@2x~ipad.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Default-375w-667h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Default-375w-667h@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Default-375w-812h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Default-375w-812h@3x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Default-414w-736h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Default-414w-736h@3x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Default-568h@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Default.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Default@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Default@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Default@2x~ipad.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Default~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Default~ipad.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/app-store-icon-1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/app-store-icon-1024@1x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@1x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@1x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-pro-app-icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-pro-app-icon-83.5@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@1x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@1x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@3x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@3x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@3x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@2x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@3x.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/data/Media.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/robovm.properties: -------------------------------------------------------------------------------- 1 | app.version=1.0 2 | app.id=%PACKAGE% 3 | app.mainclass=com.bladecoder.engine.IOSLauncher 4 | app.executable=IOSLauncher 5 | app.build=1 6 | app.name=%APP_NAME% 7 | -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/ios/src/IOSLauncher: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine; 2 | 3 | import org.robovm.apple.foundation.NSAutoreleasePool; 4 | import org.robovm.apple.uikit.UIApplication; 5 | 6 | import com.badlogic.gdx.backends.iosrobovm.IOSApplication; 7 | import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration; 8 | import com.bladecoder.engine.BladeEngine; 9 | 10 | public class IOSLauncher extends IOSApplication.Delegate { 11 | @Override 12 | protected IOSApplication createApplication() { 13 | IOSApplicationConfiguration config = new IOSApplicationConfiguration(); 14 | return new IOSApplication(new BladeEngine(), config); 15 | } 16 | 17 | public static void main(String[] argv) { 18 | NSAutoreleasePool pool = new NSAutoreleasePool(); 19 | UIApplication.main(argv, null, IOSLauncher.class); 20 | pool.close(); 21 | } 22 | } -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/local.properties: -------------------------------------------------------------------------------- 1 | # Location of the android SDK 2 | sdk.dir=%ANDROID_SDK% -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/projectTmpl/settings.gradle: -------------------------------------------------------------------------------- 1 | include 'core', 'desktop', 'ios' 2 | 3 | // include android project only when calling a subproject task or a task without subproject 4 | def tasks=gradle.startParameter.getTaskNames() 5 | def includeAndroid=false 6 | 7 | for(t in tasks) { 8 | if(t.indexOf(':') == -1 || t.contains("android:")) { 9 | println "INCLUDING ANDROID PROJECT" 10 | includeAndroid = true 11 | break; 12 | } 13 | } 14 | 15 | if (includeAndroid) { 16 | include 'android' 17 | } -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/skin/BladeSkin/PaytoneOne.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/skin/BladeSkin/PaytoneOne.ttf -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/skin/BladeSkin/Ubuntu-L.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/skin/BladeSkin/Ubuntu-L.ttf -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/skin/BladeSkin/Ubuntu-M.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/skin/BladeSkin/Ubuntu-M.ttf -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/skin/BladeSkin/blade-skin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/skin/BladeSkin/blade-skin.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/skin/libgdx/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/skin/libgdx/default.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/skin/libgdx/uiskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/src/main/resources/skin/libgdx/uiskin.png -------------------------------------------------------------------------------- /adventure-editor/src/main/resources/versions.properties: -------------------------------------------------------------------------------- 1 | androidAPILevel=35 2 | androidGradlePluginVersion=8.6.1 3 | bladeInkVersion=1.2.0 4 | libgdxVersion=1.13.1-SNAPSHOT 5 | roboVMVersion=2.3.21 6 | version=4.4.0-SNAPSHOT 7 | -------------------------------------------------------------------------------- /adventure-editor/thirdparty/gdx-particle-editor.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/adventure-editor/thirdparty/gdx-particle-editor.jar -------------------------------------------------------------------------------- /blade-engine-spine-plugin/.gitignore: -------------------------------------------------------------------------------- 1 | # Java 2 | *.class 3 | 4 | # IDEA 5 | *.iws 6 | *.ipr 7 | *.iml 8 | out/ 9 | 10 | # Eclipse 11 | .project 12 | .classpath 13 | .settings/ 14 | bin/ 15 | 16 | # Gradle 17 | build/ 18 | .gradle/ 19 | -------------------------------------------------------------------------------- /blade-engine-spine-plugin/README.md: -------------------------------------------------------------------------------- 1 | # Spine Plugin for the Bladecoder Adventure Engine 2 | 3 | This plugin allows Spine animation support for the **Bladecoder Adventure Engine**. 4 | 5 | More info about creating animations with Spine can be found in the [Spine site](http://esotericsoftware.com/). 6 | 7 | 8 | -------------------------------------------------------------------------------- /blade-engine/.gitignore: -------------------------------------------------------------------------------- 1 | # Java 2 | *.class 3 | 4 | # IDEA 5 | *.iws 6 | *.ipr 7 | *.iml 8 | out/ 9 | 10 | # Eclipse 11 | .project 12 | .classpath 13 | .settings/ 14 | bin/ 15 | 16 | # Gradle 17 | build/ 18 | .gradle/ 19 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/AbstractControlAction.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.actions; 2 | 3 | import java.util.List; 4 | 5 | public abstract class AbstractControlAction implements Action { 6 | 7 | @ActionProperty(required = true) 8 | protected String caID; 9 | 10 | protected int skipControlIdBlock(List actions, int ip) { 11 | final String caID = getControlActionID(); 12 | 13 | do { 14 | ip++; 15 | } while (!(actions.get(ip) instanceof AbstractControlAction) 16 | || !((AbstractControlAction) actions.get(ip)).getControlActionID().equals(caID)); 17 | 18 | return ip; 19 | } 20 | 21 | public String getControlActionID() { 22 | return caID; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/AbstractIfAction.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.actions; 2 | 3 | import com.bladecoder.engine.model.VerbRunner; 4 | 5 | public abstract class AbstractIfAction extends AbstractControlAction { 6 | protected void gotoElse(VerbRunner v) { 7 | int ip = skipControlIdBlock(v.getActions(), v.getIP()); 8 | 9 | v.setIP(ip); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/Action.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.model.VerbRunner; 19 | import com.bladecoder.engine.model.World; 20 | 21 | public interface Action { 22 | 23 | /** 24 | * This is to inject the world dependency. 25 | * 26 | * @param w The world to inject 27 | */ 28 | public void init(World w); 29 | 30 | 31 | /** 32 | * Execute the action 33 | * 34 | * @param cb 35 | * @return If 'true', the verb must stops the execution and wait 36 | * for the action to call the cb.resume() 37 | */ 38 | public boolean run(VerbRunner cb); 39 | } 40 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/ActionCallback.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | public interface ActionCallback { 19 | public void resume(); 20 | } 21 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/ActionDescription.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.actions; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.TYPE) 10 | public @interface ActionDescription { 11 | String name() default ""; 12 | String value(); 13 | } 14 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/ActionProperty.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.actions; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface ActionProperty { 8 | String defaultValue() default ""; 9 | boolean required() default false; 10 | Param.Type type() default Param.Type.NOT_SET; 11 | } 12 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/ActionPropertyDescription.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.actions; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface ActionPropertyDescription { 8 | String value() default ""; 9 | } 10 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/ActorAnimationRef.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.actions; 2 | 3 | public class ActorAnimationRef { 4 | private final String actor, animation; 5 | 6 | public ActorAnimationRef() { 7 | this(null, null); 8 | } 9 | 10 | public ActorAnimationRef(String actorAnimation) { 11 | if (actorAnimation == null) { 12 | actor = null; 13 | animation = null; 14 | return; 15 | } 16 | 17 | int idx = actorAnimation.indexOf(Param.STRING_PARAM_SEPARATOR.charAt(0)); 18 | 19 | // Also allow '.' character as separator because is more usable inside Ink files. 20 | if(idx == -1) 21 | idx = actorAnimation.indexOf('.'); 22 | 23 | if (idx != -1) { 24 | actor = actorAnimation.substring(0, idx); 25 | animation = actorAnimation.substring(idx + 1); 26 | } else { 27 | actor = null; 28 | animation = actorAnimation; 29 | } 30 | } 31 | 32 | public ActorAnimationRef(String actorId, String animationId) { 33 | this.actor = actorId; 34 | this.animation = animationId; 35 | } 36 | 37 | public String getActorId() { 38 | return actor; 39 | } 40 | 41 | public String getAnimationId() { 42 | return animation; 43 | } 44 | 45 | public String toString() { 46 | if (actor == null || actor.isEmpty()) 47 | return animation; 48 | 49 | return actor + Param.STRING_PARAM_SEPARATOR + animation; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/EndGameAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.BladeEngine; 19 | import com.bladecoder.engine.model.VerbRunner; 20 | import com.bladecoder.engine.model.World; 21 | import com.bladecoder.engine.ui.UI; 22 | 23 | @ActionDescription("Ends the game and show the credits.") 24 | public class EndGameAction implements Action { 25 | 26 | private World w; 27 | 28 | @Override 29 | public void init(World w) { 30 | this.w = w; 31 | } 32 | 33 | @Override 34 | public boolean run(VerbRunner cb) { 35 | 36 | UI ui = BladeEngine.getAppUI(); 37 | ui.setCurrentScreen(UI.Screens.CREDIT_SCREEN); 38 | 39 | w.endGame(); 40 | 41 | return true; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/IAchievementAPI.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.actions; 2 | 3 | public interface IAchievementAPI { 4 | 5 | void setAchievement(String name); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/IfInkVariableAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.model.VerbRunner; 19 | import com.bladecoder.engine.model.World; 20 | 21 | @ActionDescription("Execute the actions inside the If/EndIf if the Ink variable has the specified value.") 22 | public class IfInkVariableAction extends AbstractIfAction { 23 | @ActionProperty(required = true) 24 | @ActionPropertyDescription("The variable name") 25 | private String name; 26 | 27 | @ActionProperty 28 | @ActionPropertyDescription("The value") 29 | private String value; 30 | 31 | private World w; 32 | 33 | @Override 34 | public void init(World w) { 35 | this.w = w; 36 | } 37 | 38 | @Override 39 | public boolean run(VerbRunner cb) { 40 | 41 | if (! w.getInkManager().compareVariable(name, value)) { 42 | gotoElse((VerbRunner) cb); 43 | } 44 | 45 | return false; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/InkNewStoryAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.model.VerbRunner; 19 | import com.bladecoder.engine.model.World; 20 | import com.bladecoder.engine.util.EngineLogger; 21 | 22 | @ActionDescription("Load an Ink story.") 23 | public class InkNewStoryAction implements Action { 24 | @ActionPropertyDescription("The story to load") 25 | @ActionProperty(required = true) 26 | private String storyName; 27 | 28 | private World w; 29 | 30 | @Override 31 | public void init(World w) { 32 | this.w = w; 33 | } 34 | 35 | @Override 36 | public boolean run(VerbRunner cb) { 37 | try { 38 | w.getInkManager().newStory(storyName); 39 | } catch (Exception e) { 40 | EngineLogger.error("Cannot load Ink Story: " + storyName + " " + e.getMessage()); 41 | } 42 | 43 | return false; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/InkVariable.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.model.VerbRunner; 19 | import com.bladecoder.engine.model.World; 20 | import com.bladecoder.engine.util.EngineLogger; 21 | 22 | @ActionDescription("Sets the value of an Ink variable.") 23 | public class InkVariable implements Action { 24 | @ActionProperty(required = true) 25 | @ActionPropertyDescription("Variable name") 26 | private String name; 27 | 28 | @ActionProperty(required = true) 29 | @ActionPropertyDescription("Value") 30 | private String value; 31 | 32 | private World w; 33 | 34 | @Override 35 | public void init(World w) { 36 | this.w = w; 37 | } 38 | 39 | @Override 40 | public boolean run(VerbRunner cb) { 41 | try { 42 | w.getInkManager().setVariable(name, value); 43 | } catch (Exception e) { 44 | EngineLogger.error("Cannot set Ink variable: " + name + " " + e.getMessage()); 45 | } 46 | 47 | return false; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/OpenURLAction.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.actions; 2 | 3 | import com.badlogic.gdx.Gdx; 4 | import com.bladecoder.engine.model.VerbRunner; 5 | import com.bladecoder.engine.model.World; 6 | 7 | @ActionDescription("Open an URL in the default Browser") 8 | public class OpenURLAction implements Action { 9 | @ActionProperty(required=true) 10 | @ActionPropertyDescription("The URL") 11 | private String url; 12 | 13 | @Override 14 | public void init(World w) { 15 | } 16 | 17 | @Override 18 | public boolean run(VerbRunner cb) { 19 | 20 | Gdx.net.openURI(url); 21 | 22 | return false; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/PlaySoundAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.actions.Param.Type; 19 | import com.bladecoder.engine.model.VerbRunner; 20 | import com.bladecoder.engine.model.World; 21 | 22 | @ActionDescription("Play/Stop a sound") 23 | public class PlaySoundAction implements Action { 24 | @ActionPropertyDescription("The 'soundId' to play. ") 25 | @ActionProperty(required = true, type = Type.SOUND) 26 | private String sound; 27 | 28 | @ActionProperty(required = true, defaultValue = "false") 29 | @ActionPropertyDescription("When 'true' stops the sound instead of playing it.") 30 | private boolean stop = false; 31 | 32 | private World w; 33 | 34 | @Override 35 | public void init(World w) { 36 | this.w = w; 37 | } 38 | 39 | @Override 40 | public boolean run(VerbRunner cb) { 41 | 42 | if(!stop) { 43 | w.getCurrentScene().getSoundManager().playSound(sound); 44 | } else { 45 | w.getCurrentScene().getSoundManager().stopSound(sound); 46 | } 47 | 48 | return false; 49 | } 50 | 51 | 52 | } 53 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/PropertyAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.model.VerbRunner; 19 | import com.bladecoder.engine.model.World; 20 | 21 | @ActionDescription("Sets a global game property. Properties are created by the user but the next ones always exists: SAVED_GAME_VERSION, PREVIOUS_SCENE, CURRENT_CHAPTER, PLATFORM") 22 | public class PropertyAction implements Action { 23 | @ActionProperty(required = true) 24 | @ActionPropertyDescription("Property name") 25 | private String prop; 26 | 27 | @ActionProperty 28 | @ActionPropertyDescription("Property value") 29 | private String value; 30 | 31 | private World w; 32 | 33 | @Override 34 | public void init(World w) { 35 | this.w = w; 36 | } 37 | 38 | @Override 39 | public boolean run(VerbRunner cb) { 40 | 41 | w.setCustomProperty(prop, value); 42 | 43 | return false; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/SetAchievementAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.model.VerbRunner; 19 | import com.bladecoder.engine.model.World; 20 | 21 | @ActionDescription("Set an achievement.") 22 | public class SetAchievementAction implements Action { 23 | public static IAchievementAPI achievementAPI; 24 | 25 | @ActionProperty(required = true) 26 | @ActionPropertyDescription("Achievement name") 27 | private String name; 28 | 29 | @Override 30 | public void init(World w) { 31 | } 32 | 33 | @Override 34 | public boolean run(VerbRunner cb) { 35 | if (achievementAPI != null) 36 | achievementAPI.setAchievement(name); 37 | 38 | return false; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/SetCutmodeAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.model.VerbRunner; 19 | import com.bladecoder.engine.model.World; 20 | 21 | @ActionDescription(name = "Cutmode", value="Set/Unset the cutmode.") 22 | public class SetCutmodeAction implements Action { 23 | @ActionProperty(required = true, defaultValue = "true") 24 | @ActionPropertyDescription("when 'true' sets the scene in 'cutmode'") 25 | private boolean value = true; 26 | 27 | private World w; 28 | 29 | @Override 30 | public void init(World w) { 31 | this.w = w; 32 | } 33 | 34 | @Override 35 | public boolean run(VerbRunner cb) { 36 | w.setCutMode(value); 37 | 38 | return false; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/SetSceneStateAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.actions.Param.Type; 19 | import com.bladecoder.engine.model.Scene; 20 | import com.bladecoder.engine.model.VerbRunner; 21 | import com.bladecoder.engine.model.World; 22 | 23 | @ActionDescription(name="SceneState", value="Sets the scene state") 24 | public class SetSceneStateAction implements Action { 25 | @ActionPropertyDescription("The scene") 26 | @ActionProperty(type = Type.SCENE) 27 | private String scene; 28 | 29 | @ActionProperty 30 | @ActionPropertyDescription("The scene 'state'") 31 | private String state; 32 | 33 | private World w; 34 | 35 | @Override 36 | public void init(World w) { 37 | this.w = w; 38 | } 39 | 40 | @Override 41 | public boolean run(VerbRunner cb) { 42 | Scene s = (scene != null && !scene.isEmpty())? w.getScene(scene): w.getCurrentScene(); 43 | 44 | s.setState(state); 45 | 46 | return false; 47 | } 48 | 49 | 50 | } 51 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/ShowInventoryAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.model.VerbRunner; 19 | import com.bladecoder.engine.model.World; 20 | 21 | @ActionDescription("Shows/Hide the inventory") 22 | public class ShowInventoryAction implements Action { 23 | @ActionProperty(required = true, defaultValue = "true") 24 | @ActionPropertyDescription("When 'true' shows the inventory button to show the inventory.") 25 | private boolean value = true; 26 | 27 | private World w; 28 | 29 | @Override 30 | public void init(World w) { 31 | this.w = w; 32 | } 33 | 34 | @Override 35 | public boolean run(VerbRunner cb) { 36 | w.showInventory(value); 37 | 38 | return false; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/TalktoAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.actions.Param.Type; 19 | import com.bladecoder.engine.model.CharacterActor; 20 | import com.bladecoder.engine.model.VerbRunner; 21 | import com.bladecoder.engine.model.World; 22 | 23 | @ActionDescription("Sets the dialog mode") 24 | public class TalktoAction implements Action { 25 | @ActionPropertyDescription("The target actor") 26 | @ActionProperty(type = Type.CHARACTER_ACTOR, required = true) 27 | private String actor; 28 | 29 | @ActionProperty(required = true) 30 | @ActionPropertyDescription("The 'dialogId' to show") 31 | private String dialog; 32 | 33 | private World w; 34 | 35 | @Override 36 | public void init(World w) { 37 | this.w = w; 38 | } 39 | 40 | @Override 41 | public boolean run(VerbRunner cb) { 42 | 43 | CharacterActor a = (CharacterActor)w.getCurrentScene().getActor(actor, false); 44 | 45 | w.setCurrentDialog(a.getDialog(dialog)); 46 | 47 | return false; 48 | } 49 | 50 | 51 | } 52 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/actions/WaitAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.actions; 17 | 18 | import com.bladecoder.engine.model.VerbRunner; 19 | import com.bladecoder.engine.model.World; 20 | 21 | @ActionDescription("Pause the action") 22 | public class WaitAction implements Action { 23 | @ActionProperty(required = true, defaultValue = "1.0") 24 | @ActionPropertyDescription("The time pause in seconds") 25 | 26 | private float time; 27 | 28 | private World w; 29 | 30 | @Override 31 | public void init(World w) { 32 | this.w = w; 33 | } 34 | 35 | @Override 36 | public boolean run(VerbRunner cb) { 37 | w.getCurrentScene().addTimer(time, cb); 38 | return true; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/anim/AnimationDesc.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.anim; 17 | 18 | import com.badlogic.gdx.math.Vector2; 19 | 20 | public class AnimationDesc { 21 | public String id; 22 | public String source; 23 | public float duration; 24 | public Vector2 inD; 25 | public Vector2 outD; 26 | public Tween.Type animationType; 27 | public int count; 28 | 29 | public String sound; 30 | 31 | public boolean preload; 32 | public boolean disposeWhenPlayed; 33 | 34 | public AnimationDesc() { 35 | 36 | } 37 | 38 | public void set(String id, String source, float duration, int count, Tween.Type animationType, 39 | String sound, Vector2 inD, Vector2 outD, boolean preload, boolean disposeWhenPlayed) { 40 | this.id = id; 41 | this.duration = duration; 42 | this.animationType = animationType; 43 | this.count = count; 44 | 45 | this.source = source; 46 | this.sound = sound; 47 | 48 | this.inD = inD; 49 | this.outD = outD; 50 | 51 | this.preload = preload; 52 | this.disposeWhenPlayed = disposeWhenPlayed; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/anim/AtlasAnimationDesc.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.anim; 17 | 18 | import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion; 19 | import com.badlogic.gdx.utils.Array; 20 | 21 | public class AtlasAnimationDesc extends AnimationDesc { 22 | public transient Array regions; 23 | } 24 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/anim/FATween.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.anim; 17 | 18 | import com.bladecoder.engine.actions.ActionCallback; 19 | import com.bladecoder.engine.model.AtlasRenderer; 20 | 21 | /** 22 | * Tween for spriteactor position animation 23 | */ 24 | public class FATween extends Tween { 25 | 26 | public FATween() { 27 | } 28 | 29 | public void start(AtlasRenderer target, Tween.Type repeatType, int count, float duration, ActionCallback cb) { 30 | this.target = target; 31 | 32 | setDuration(duration); 33 | setType(repeatType); 34 | setCount(count); 35 | 36 | if (cb != null) { 37 | setCb(cb); 38 | } 39 | 40 | restart(); 41 | } 42 | 43 | public void updateTarget() { 44 | if(!isComplete() && getPercent() < 1.0f) 45 | target.setFrame((int)(getPercent() * target.getNumFrames())); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/anim/SpineAnimationDesc.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.anim; 17 | 18 | 19 | public class SpineAnimationDesc extends AnimationDesc { 20 | public String atlas; 21 | } 22 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/assets/AssetConsumer.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.assets; 17 | 18 | import com.badlogic.gdx.utils.Disposable; 19 | 20 | public interface AssetConsumer extends Disposable { 21 | /** 22 | * Send the assets to the AssetManager queue to load asynchronous 23 | */ 24 | public void loadAssets(); 25 | 26 | /** 27 | * Called when the AssetManager has loaded all the assets and can be retrieved. 28 | */ 29 | public void retrieveAssets(); 30 | } 31 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/assets/BasePathResolver.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.assets; 17 | 18 | import java.io.File; 19 | 20 | import com.badlogic.gdx.Gdx; 21 | import com.badlogic.gdx.assets.loaders.FileHandleResolver; 22 | import com.badlogic.gdx.files.FileHandle; 23 | 24 | public class BasePathResolver implements FileHandleResolver { 25 | String basePath; 26 | 27 | @Override 28 | public FileHandle resolve(String fileName) { 29 | 30 | String fullName; 31 | 32 | if (new File(fileName).isAbsolute()) { 33 | fullName = fileName; 34 | } else { 35 | StringBuilder sb = new StringBuilder(); 36 | sb.append(basePath); 37 | sb.append("/"); 38 | sb.append(fileName); 39 | fullName = sb.toString(); 40 | } 41 | 42 | //EngineLogger.debug(fullName); 43 | 44 | return Gdx.files.absolute(fullName); 45 | } 46 | 47 | public BasePathResolver(String base) { 48 | basePath = base; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/assets/InternalFolderResolver.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.assets; 17 | 18 | import com.badlogic.gdx.Gdx; 19 | import com.badlogic.gdx.assets.loaders.FileHandleResolver; 20 | import com.badlogic.gdx.files.FileHandle; 21 | 22 | public class InternalFolderResolver implements FileHandleResolver { 23 | String basePath; 24 | 25 | @Override 26 | public FileHandle resolve(String fileName) { 27 | return Gdx.files.internal(basePath + fileName); 28 | } 29 | 30 | public InternalFolderResolver(String base) { 31 | basePath = base; 32 | 33 | if(!basePath.endsWith("/")) { 34 | basePath = base + "/"; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/model/ActorRenderer.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.model; 17 | 18 | import com.badlogic.gdx.graphics.Color; 19 | import com.badlogic.gdx.graphics.g2d.SpriteBatch; 20 | import com.badlogic.gdx.math.Polygon; 21 | import com.badlogic.gdx.utils.Json.Serializable; 22 | import com.bladecoder.engine.assets.AssetConsumer; 23 | 24 | public interface ActorRenderer extends Serializable, AssetConsumer { 25 | 26 | public void update(float delta); 27 | 28 | public void draw(SpriteBatch batch, float x, float y, float scaleX, float scaleY, float rotation, Color tint); 29 | 30 | public float getWidth(); 31 | 32 | public float getHeight(); 33 | 34 | public int getOrgAlign(); 35 | 36 | public void setOrgAlign(int align); 37 | 38 | /** 39 | * Compute the bbox based in the size of the animation/sprite. T 40 | * 41 | * @param bbox The polygon to update. It will be updated when an animation 42 | * starts/finishes. 43 | */ 44 | public void updateBboxFromRenderer(Polygon bbox); 45 | 46 | public void setWorld(World world); 47 | } 48 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/model/AnchorActor.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.model; 17 | 18 | 19 | /** 20 | * Actor to anchor the position or walking targets for other actors. 21 | * 22 | * @author rgarcia 23 | */ 24 | public class AnchorActor extends BaseActor { 25 | @Override 26 | public void update(float delta) { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/model/DirtyProps.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.model; 2 | 3 | public enum DirtyProps { 4 | POS, VISIBLE, DESC, ZINDEX, INTERACTION, STATE, LAYER, ROT, SCALEX, SCALEY, TINT, FAKE_DEPTH, BBOX_FROM_RENDERER, 5 | WALKING_SPEED, TEXT_COLOR, TALKING_TEXT_POS, TEXT_STYLE; 6 | } 7 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/model/WorldListener.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.model; 2 | 3 | public interface WorldListener { 4 | void cutMode(boolean value); 5 | 6 | void text(Text t); 7 | 8 | void dialogOptions(); 9 | 10 | void inventoryEnabled(boolean value); 11 | 12 | void pause(boolean value); 13 | } 14 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/pathfinder/NavContext.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2011 See AUTHORS file. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | 17 | package com.bladecoder.engine.pathfinder; 18 | 19 | /** The context describing the current path finding state 20 | *

21 | * Original implementation by Kevin Glass from Slick2D. 22 | *

23 | * @author hneuer */ 24 | public interface NavContext> { 25 | /** Get the object being moved along the path if any */ 26 | public Object getMover (); 27 | 28 | /** Get the source node */ 29 | public N getSourceNode (); 30 | 31 | /** Get the distance that has been searched to reach this point */ 32 | public float getSearchDistance (); 33 | } 34 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/pathfinder/NavGraph.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2011 See AUTHORS file. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | 17 | package com.bladecoder.engine.pathfinder; 18 | 19 | /** The description for the data we're pathfinding over as an arbitrary graph. This provides the contract between the data being 20 | * searched (i.e. the game map) and the path finding generic tools. 21 | *

22 | * Original implementation by Kevin Glass from Slick2D. 23 | *

24 | * @author hneuer */ 25 | public interface NavGraph> { 26 | /** Check if the given location is blocked, i.e. blocks movement of the supplied mover. */ 27 | public boolean blocked (NavContext context, N targetNode); 28 | 29 | /** Get the cost of moving to the target node. This can be used to make certain areas more desirable. A simple and valid 30 | * implementation of this method would be to return 1 in all cases. */ 31 | public float getCost (NavContext context, N targetNode); 32 | } 33 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/pathfinder/NavNode.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2011 See AUTHORS file. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | 17 | package com.bladecoder.engine.pathfinder; 18 | 19 | import com.badlogic.gdx.utils.Array; 20 | 21 | /** A single node in the navigation graph. It contains an array of neighbor nodes, that way it is possible to build up arbitrary 22 | * navigation graphs, e.g. a tiled map with no diagonal movement may contain up to 4 neighbors for each node. 23 | * @author hneuer */ 24 | public class NavNode> { 25 | /** The parent of this node, how we reached it in the search */ 26 | public N parent; 27 | /** The list of all adjacent neighbor nodes. */ 28 | public final Array neighbors = new Array(); 29 | /** Algorithm specific data. */ 30 | protected Object algoData; 31 | } 32 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/pathfinder/NavPath.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2011 See AUTHORS file. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | 17 | package com.bladecoder.engine.pathfinder; 18 | 19 | /** A navigation path. 20 | * @author hneuer */ 21 | public interface NavPath> { 22 | /** Fills the navigation path between the start and target node. 23 | *

24 | * Note that current implementations have to follow the path backward from the targetNode to the startNode (following the 25 | * parent relation). 26 | *

*/ 27 | public void fill (N startNode, N targetNode); 28 | 29 | /** Returns the length of the path, i.e. the number of reached nodes. */ 30 | public int getLength (); 31 | 32 | /** Clear the path. */ 33 | public void clear (); 34 | } 35 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/polygonalpathfinder/Distance.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | 17 | package com.bladecoder.engine.polygonalpathfinder; 18 | 19 | import com.bladecoder.engine.pathfinder.AStarPathFinder.AStarHeuristicCalculator; 20 | import com.bladecoder.engine.pathfinder.NavContext; 21 | 22 | /** 23 | * Implementation of a heuristic calculator for a polygonal map. It simply calculates the distance between two points. 24 | * 25 | * @author rgarcia 26 | */ 27 | public class Distance implements AStarHeuristicCalculator { 28 | @Override 29 | public float getCost (NavContext map, Object mover, NavNodePolygonal startNode, NavNodePolygonal targetNode) { 30 | float sx = startNode.getX(); 31 | float sy = startNode.getY(); 32 | 33 | float tx = targetNode.getX(); 34 | float ty = targetNode.getY(); 35 | 36 | float a = sx - tx; 37 | float b = sy - ty; 38 | 39 | return (float)Math.sqrt(a * a + b * b); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/polygonalpathfinder/ManhattanDistance.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | 17 | package com.bladecoder.engine.polygonalpathfinder; 18 | 19 | import com.bladecoder.engine.pathfinder.AStarPathFinder.AStarHeuristicCalculator; 20 | import com.bladecoder.engine.pathfinder.NavContext; 21 | 22 | /** 23 | * Implementation of a heuristic calculator for a polygonal map. It simply calculates the Manhattan distance between two points. 24 | * 25 | * @author rgarcia 26 | */ 27 | public class ManhattanDistance implements AStarHeuristicCalculator { 28 | @Override 29 | public float getCost (NavContext map, Object mover, NavNodePolygonal startNode, NavNodePolygonal targetNode) { 30 | float sx = startNode.getX(); 31 | float sy = startNode.getY(); 32 | 33 | float tx = targetNode.getX(); 34 | float ty = targetNode.getY(); 35 | 36 | return Math.abs(tx - sx) + Math.abs(ty - sy); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/polygonalpathfinder/NavNodePolygonal.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | 17 | package com.bladecoder.engine.polygonalpathfinder; 18 | 19 | import com.bladecoder.engine.pathfinder.NavNode; 20 | 21 | /** 22 | * Implementation of a navigation node for a polygonal map 23 | * 24 | * @author rgarcia 25 | */ 26 | public class NavNodePolygonal extends NavNode { 27 | public float x; 28 | public float y; 29 | 30 | public float getX() { 31 | return x; 32 | } 33 | 34 | public float getY() { 35 | return y; 36 | } 37 | 38 | public NavNodePolygonal () { 39 | this.x = 0; 40 | this.y = 0; 41 | } 42 | 43 | public NavNodePolygonal (float x, float y) { 44 | this.x = x; 45 | this.y = y; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/ui/AnimButton.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.ui; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.ui.Button; 4 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 5 | 6 | public class AnimButton extends Button { 7 | public AnimButton(Skin skin, String styleName) { 8 | super(skin, styleName); 9 | } 10 | 11 | public AnimButton(ButtonStyle style) { 12 | super(style); 13 | } 14 | 15 | @Override 16 | public void act(float delta) { 17 | ButtonStyle style = getStyle(); 18 | if (style.up != null && style.up instanceof AnimationDrawable) 19 | ((AnimationDrawable) style.up).act(delta); 20 | 21 | if (style.over != null && style.over instanceof AnimationDrawable) 22 | ((AnimationDrawable) style.over).act(delta); 23 | 24 | if (style.down != null && style.down instanceof AnimationDrawable) 25 | ((AnimationDrawable) style.down).act(delta); 26 | 27 | super.act(delta); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/ui/BladeScreen.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.ui; 2 | 3 | import com.badlogic.gdx.Screen; 4 | 5 | public interface BladeScreen extends Screen { 6 | /** 7 | * UI Injector 8 | * 9 | * @param ui 10 | */ 11 | public void setUI(UI ui); 12 | } 13 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/ui/ITextManagerUI.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.ui; 17 | 18 | import com.bladecoder.engine.model.Text; 19 | 20 | /** 21 | * TextManagerUI draws texts and dialogs on screen. 22 | * 23 | * @author rgarcia 24 | * 25 | */ 26 | public interface ITextManagerUI { 27 | public void setText(Text t); 28 | } 29 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/ui/SceneScreen.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2014 Rafael Garcia Moreno. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | ******************************************************************************/ 16 | package com.bladecoder.engine.ui; 17 | 18 | import com.badlogic.gdx.utils.viewport.Viewport; 19 | import com.bladecoder.engine.model.InteractiveActor; 20 | import com.bladecoder.engine.model.World; 21 | 22 | public interface SceneScreen extends BladeScreen { 23 | public enum ActionButton { 24 | LOOKAT, ACTION, INVENTORY, NONE 25 | } 26 | 27 | UI getUI(); 28 | 29 | World getWorld(); 30 | 31 | Viewport getViewport(); 32 | 33 | InteractiveActor getCurrentActor(); 34 | 35 | void actorClick(InteractiveActor actor, ActionButton button); 36 | 37 | void runVerb(InteractiveActor a, String verb, String target); 38 | 39 | float getSpeed(); 40 | 41 | void setSpeed(float speed); 42 | } 43 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/ui/retro/RendererDrawable.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.ui.retro; 2 | 3 | import com.badlogic.gdx.graphics.g2d.Batch; 4 | import com.badlogic.gdx.graphics.g2d.SpriteBatch; 5 | import com.badlogic.gdx.scenes.scene2d.utils.BaseDrawable; 6 | import com.bladecoder.engine.model.ActorRenderer; 7 | 8 | public class RendererDrawable extends BaseDrawable { 9 | 10 | private ActorRenderer renderer; 11 | 12 | public void setRenderer(ActorRenderer r) { 13 | renderer = r; 14 | 15 | if (r != null) { 16 | setMinWidth(renderer.getWidth()); 17 | setMinHeight(renderer.getHeight()); 18 | } 19 | } 20 | 21 | @Override 22 | public void draw(Batch batch, float x, float y, float width, float height) { 23 | if (renderer == null) 24 | return; 25 | 26 | float scale; 27 | 28 | if (renderer.getWidth() > renderer.getHeight()) 29 | scale = width / renderer.getWidth(); 30 | else 31 | scale = height / renderer.getHeight(); 32 | 33 | renderer.draw((SpriteBatch) batch, x + renderer.getWidth() * scale / 2, y, scale, scale, 0f, null); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /blade-engine/src/com/bladecoder/engine/util/FileUtils.java: -------------------------------------------------------------------------------- 1 | package com.bladecoder.engine.util; 2 | 3 | import com.badlogic.gdx.Application.ApplicationType; 4 | import com.badlogic.gdx.Gdx; 5 | import com.badlogic.gdx.files.FileHandle; 6 | 7 | public class FileUtils { 8 | /** 9 | * For android, the exists method is very slow, this is a fast 10 | * implementation 11 | * 12 | * @return true if file exists 13 | */ 14 | public static boolean exists(FileHandle fh) { 15 | 16 | if (Gdx.app.getType() == ApplicationType.Android) { 17 | try { 18 | fh.read().close(); 19 | return true; 20 | } catch (Exception e) { 21 | return false; 22 | } 23 | } 24 | 25 | return fh.exists(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | mavenLocal() 4 | mavenCentral() 5 | maven { url "https://oss.sonatype.org/content/repositories/releases/" } 6 | maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 7 | } 8 | } 9 | 10 | // DISABLES JAVADOC ULTRACHECKS IN JDK8 11 | if (JavaVersion.current().isJava8Compatible()) { 12 | allprojects { 13 | tasks.withType(Javadoc) { 14 | options.addStringOption('Xdoclint:none', '-quiet') 15 | } 16 | } 17 | } 18 | 19 | if (hasProperty("ci") && !version.endsWith("-SNAPSHOT")) { 20 | version += "-SNAPSHOT" 21 | } 22 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | version=4.4.0-SNAPSHOT 2 | libgdxVersion=1.13.1 3 | roboVMVersion=2.3.22 4 | androidAPILevel=35 5 | androidGradlePluginVersion=8.6.1 6 | bladeInkVersion=1.2.0 7 | gdxControllersVersion=2.2.3 8 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bladecoder/bladecoder-adventure-engine/c0247ae0fa58ea17ae79024e322842e12e945f77/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include 'blade-engine', 'adventure-editor', 'blade-engine-spine-plugin' 2 | --------------------------------------------------------------------------------