├── .gitignore ├── .travis.yml ├── AUTHORS ├── CHANGES ├── CONTRIBUTORS ├── Dockerfile ├── LICENSE ├── README.md ├── build.gradle ├── coveralls.yml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── overlap2d-common-api ├── .gitignore ├── build.gradle ├── gradlew ├── gradlew.bat ├── settings.gradle └── src │ └── com │ ├── commons │ ├── IItemCommand.java │ ├── MsgAPI.java │ ├── O2DDialog.java │ ├── ResourcePayloadObject.java │ ├── UIDraggablePanel.java │ ├── color │ │ ├── ColorChannelWidget.java │ │ ├── ColorInputField.java │ │ ├── ColorPickerAdapter.java │ │ ├── ColorPickerListener.java │ │ ├── ColorPickerText.java │ │ └── CustomColorPicker.java │ ├── plugins │ │ ├── O2DPlugin.java │ │ ├── O2DPluginAdapter.java │ │ └── PluginAPI.java │ └── view │ │ └── tools │ │ └── Tool.java │ ├── puremvc │ ├── core │ │ ├── Controller.java │ │ ├── CoreController.java │ │ ├── CoreModel.java │ │ ├── CoreView.java │ │ ├── Model.java │ │ └── View.java │ └── patterns │ │ ├── command │ │ ├── Command.java │ │ ├── MacroCommand.java │ │ └── SimpleCommand.java │ │ ├── facade │ │ ├── Facade.java │ │ └── SimpleFacade.java │ │ ├── mediator │ │ ├── Mediator.java │ │ └── SimpleMediator.java │ │ ├── observer │ │ ├── BaseNotification.java │ │ ├── BaseNotifier.java │ │ ├── BaseObserver.java │ │ ├── Notification.java │ │ ├── Notifier.java │ │ └── Observer.java │ │ └── proxy │ │ ├── BaseProxy.java │ │ └── Proxy.java │ └── vo │ ├── CursorData.java │ ├── EditorConfigVO.java │ ├── ProjectVO.java │ └── SceneConfigVO.java ├── overlap2d ├── art │ ├── splash_textures │ │ ├── background.9.png │ │ ├── devider.png │ │ ├── graphic.png │ │ ├── icon.png │ │ ├── logo.png │ │ ├── logoText.png │ │ ├── progressBar.9.png │ │ └── progressBg.9.png │ └── textures │ │ ├── align-center-horisontal.png │ │ ├── align-center-vertical.png │ │ ├── align-edge-down.png │ │ ├── align-edge-left.png │ │ ├── align-edge-right.png │ │ ├── align-edge-up.png │ │ ├── align-simple-down.png │ │ ├── align-simple-left.png │ │ ├── align-simple-right.png │ │ ├── align-simple-up.png │ │ ├── alpha-bar-10px.png │ │ ├── alpha-bar-25px-shifted.png │ │ ├── alpha-bar-25px.png │ │ ├── border-circle.png │ │ ├── border-error.9.png │ │ ├── border.9.png │ │ ├── box-colapse-off.png │ │ ├── box-colapse-on.png │ │ ├── box.9.png │ │ ├── button-dark-down.9.png │ │ ├── button-dark-over.9.png │ │ ├── button-dark.9.png │ │ ├── button-down.9.png │ │ ├── button-orange-down.9.png │ │ ├── button-orange-over.9.png │ │ ├── button-orange.9.png │ │ ├── button-over.9.png │ │ ├── button-red.9.png │ │ ├── button-resource-over.9.png │ │ ├── button-resource.9.png │ │ ├── button.9.png │ │ ├── check-down-on.png │ │ ├── check-down.png │ │ ├── check-off.png │ │ ├── check-on-disabled.png │ │ ├── check-on.png │ │ ├── check-over-off.png │ │ ├── check-over-on.png │ │ ├── color-picker-bar-selector.png │ │ ├── color-picker-cross.png │ │ ├── color-picker-selector-horizontal.png │ │ ├── color-picker-selector-vertical.png │ │ ├── cursor.9.png │ │ ├── default-pane-noborder.9.png │ │ ├── default-pane.9.png │ │ ├── default-select-selection.9.png │ │ ├── default-select-white-over.9.png │ │ ├── default-select-white.9.png │ │ ├── default-select.9.png │ │ ├── dropHere.png │ │ ├── expandable-properties-active-bg.9.png │ │ ├── expandable-properties-collapse-off.png │ │ ├── expandable-properties-collapse-on.png │ │ ├── expandable-properties-inactive-bg.9.png │ │ ├── icon-animation.png │ │ ├── icon-arrow-left.png │ │ ├── icon-arrow-right.png │ │ ├── icon-close-orange-down.png │ │ ├── icon-close-orange-over.png │ │ ├── icon-close-orange.png │ │ ├── icon-close-small.png │ │ ├── icon-close.png │ │ ├── icon-composite.png │ │ ├── icon-composite2.png │ │ ├── icon-drive.png │ │ ├── icon-folder.png │ │ ├── icon-group.png │ │ ├── icon-image.png │ │ ├── icon-label.png │ │ ├── icon-library-over.png │ │ ├── icon-library.png │ │ ├── icon-link-active.png │ │ ├── icon-link-inactive.png │ │ ├── icon-lock-active.png │ │ ├── icon-lock-inactive.png │ │ ├── icon-new-layer.png │ │ ├── icon-particle-over.png │ │ ├── icon-particle-white.png │ │ ├── icon-particle.png │ │ ├── icon-root.png │ │ ├── icon-spine.png │ │ ├── icon-trash-disabled.png │ │ ├── icon-trash-over.png │ │ ├── icon-trash.png │ │ ├── icon-unlink-active.png │ │ ├── icon-unlink-inactive.png │ │ ├── icon-visible-off.png │ │ ├── icon-visible-on.png │ │ ├── icon-zoomin-disabled.png │ │ ├── icon-zoomin-over.png │ │ ├── icon-zoomin.png │ │ ├── icon-zoomout-disabled.png │ │ ├── icon-zoomout-over.png │ │ ├── icon-zoomout.png │ │ ├── layer-bg-over.9.png │ │ ├── layer-bg.9.png │ │ ├── list-selection-white.png │ │ ├── list-selection.png │ │ ├── logo.png │ │ ├── menu-bg-down.9.png │ │ ├── menu-bg-over.9.png │ │ ├── menu-bg-up.9.png │ │ ├── menu-bg.9.png │ │ ├── origin-anchor.png │ │ ├── popup-menu-disabled.9.png │ │ ├── popup-menu-down.9.png │ │ ├── popup-menu-over.9.png │ │ ├── popup-menu.9.png │ │ ├── progressbar-filled-vertical.png │ │ ├── progressbar-filled.png │ │ ├── progressbar-vertical.png │ │ ├── progressbar.png │ │ ├── radio-down-on.png │ │ ├── radio-down.png │ │ ├── radio-off.png │ │ ├── radio-on-disabled.png │ │ ├── radio-on.png │ │ ├── radio-over-off.png │ │ ├── radio-over-on.png │ │ ├── roboto-medium-big-no-stroke.png │ │ ├── roboto-medium-big.png │ │ ├── roboto-medium-no-stroke.png │ │ ├── roboto-medium-small-no-stroke.png │ │ ├── roboto-medium-small.png │ │ ├── roboto-medium.png │ │ ├── scroll-horizontal.9.png │ │ ├── scroll-knob-horizontal.9.png │ │ ├── scroll-knob-vertical.9.png │ │ ├── scroll.9.png │ │ ├── select-box-list-bg-white.png │ │ ├── select-box-list-bg.png │ │ ├── select-down.png │ │ ├── select-up.png │ │ ├── selection-anchor.png │ │ ├── selection.png │ │ ├── separator-menu.png │ │ ├── separator-vertical.png │ │ ├── separator.png │ │ ├── slider-knob-disabled.png │ │ ├── slider-knob-down.png │ │ ├── slider-knob-over.png │ │ ├── slider-knob.png │ │ ├── slider-vertical.png │ │ ├── slider.png │ │ ├── splitpane-over.png │ │ ├── splitpane-vertical-over.png │ │ ├── splitpane-vertical.png │ │ ├── splitpane.png │ │ ├── static-text.9.png │ │ ├── sub-menu-bg.9.png │ │ ├── sub-menu.png │ │ ├── tab-active.9.png │ │ ├── tab-inactive.9.png │ │ ├── textfield-light-down.9.png │ │ ├── textfield-light-over.9.png │ │ ├── textfield-light.9.png │ │ ├── textfield-over.9.png │ │ ├── textfield.9.png │ │ ├── thumbnail-over.9.png │ │ ├── thumbnail.9.png │ │ ├── tint-border.9.png │ │ ├── tool-align.png │ │ ├── tool-conuslight.png │ │ ├── tool-label.png │ │ ├── tool-mesh.png │ │ ├── tool-move.png │ │ ├── tool-sphericlight.png │ │ ├── tool-transform.png │ │ ├── toolbar-bg.9.png │ │ ├── toolbar-down.9.png │ │ ├── toolbar-normal.9.png │ │ ├── toolbar-over.9.png │ │ ├── tooltip-bg.png │ │ ├── touchpad-knob.png │ │ ├── tree-minus.png │ │ ├── tree-over.png │ │ ├── tree-plus.png │ │ ├── tree-selection.9.png │ │ ├── white.png │ │ ├── window-bg.png │ │ ├── window-noborder.9.png │ │ └── window.9.png ├── assets │ ├── cursors │ │ ├── cross.png │ │ ├── eyedropper.png │ │ ├── fingerpoint.png │ │ ├── label-tool.png │ │ ├── label.png │ │ ├── left-down-up.png │ │ ├── left-right.png │ │ ├── left-rotate-down.png │ │ ├── left-rotate-up.png │ │ ├── normal.png │ │ ├── right-down-up.png │ │ ├── right-rotate-down.png │ │ ├── right-rotate-up.png │ │ ├── rotate-left.png │ │ ├── rotate-right.png │ │ ├── selection.png │ │ └── up-down.png │ ├── freetypefonts │ │ ├── Roboto-Medium.ttf │ │ └── arial.ttf │ ├── splash │ │ ├── roboto.fnt │ │ └── roboto.png │ └── style │ │ ├── bglogo.png │ │ ├── roboto-medium-big-no-stroke.fnt │ │ ├── roboto-medium-big.fnt │ │ ├── roboto-medium-no-stroke.fnt │ │ ├── roboto-medium-small-no-stroke.fnt │ │ ├── roboto-medium-small.fnt │ │ ├── roboto-medium.fnt │ │ └── uiskin.json ├── src │ └── com │ │ └── uwsoft │ │ └── editor │ │ ├── CustomExceptionHandler.java │ │ ├── Main.java │ │ ├── Overlap2D.java │ │ ├── Overlap2DFacade.java │ │ ├── controller │ │ ├── BootstrapCommand.java │ │ ├── BootstrapPlugins.java │ │ ├── BootstrapProxyCommand.java │ │ ├── BootstrapViewCommand.java │ │ ├── SandboxCommand.java │ │ ├── StartupCommand.java │ │ └── commands │ │ │ ├── AddComponentToItemCommand.java │ │ │ ├── AddSelectionCommand.java │ │ │ ├── AddToLibraryCommand.java │ │ │ ├── ChangeRulerPositionCommand.java │ │ │ ├── CompositeCameraChangeCommand.java │ │ │ ├── ConvertToButtonCommand.java │ │ │ ├── ConvertToCompositeCommand.java │ │ │ ├── CopyItemsCommand.java │ │ │ ├── CreateItemCommand.java │ │ │ ├── CreatePrimitiveCommand.java │ │ │ ├── CustomVariableModifyCommand.java │ │ │ ├── CutItemsCommand.java │ │ │ ├── DeleteItemsCommand.java │ │ │ ├── DeleteLayerAtomCommand.java │ │ │ ├── DeleteLayerCommand.java │ │ │ ├── EntityModifyRevertableCommand.java │ │ │ ├── ExportProjectCommand.java │ │ │ ├── ItemChildrenTransformCommand.java │ │ │ ├── ItemTransformCommand.java │ │ │ ├── ItemsMoveCommand.java │ │ │ ├── LayerSwapCommand.java │ │ │ ├── NewLayerCommand.java │ │ │ ├── NonRevertibleCommand.java │ │ │ ├── PasteItemsCommand.java │ │ │ ├── PluginItemCommand.java │ │ │ ├── ReleaseSelectionCommand.java │ │ │ ├── RemoveComponentFromItemCommand.java │ │ │ ├── RenameLayerCommand.java │ │ │ ├── RevertableCommand.java │ │ │ ├── SaveExportPathCommand.java │ │ │ ├── SetGridSizeFromItemCommand.java │ │ │ ├── SetSelectionCommand.java │ │ │ ├── TransactiveCommand.java │ │ │ ├── UpdateEntityComponentsCommand.java │ │ │ ├── component │ │ │ ├── UpdateLabelDataCommand.java │ │ │ ├── UpdateLightDataCommand.java │ │ │ ├── UpdatePolygonComponentCommand.java │ │ │ └── UpdateSpriteAnimationDataCommand.java │ │ │ └── resource │ │ │ ├── DeleteImageResource.java │ │ │ ├── DeleteLibraryItem.java │ │ │ ├── DeleteParticleEffect.java │ │ │ ├── DeleteSpineAnimation.java │ │ │ ├── DeleteSpriteAnimation.java │ │ │ └── DeleteSpriterAnimation.java │ │ ├── data │ │ ├── JarUtils.java │ │ ├── SpineAnimData.java │ │ ├── manager │ │ │ └── PreferencesManager.java │ │ └── migrations │ │ │ ├── IVersionMigrator.java │ │ │ ├── ProjectVersionMigrator.java │ │ │ └── migrators │ │ │ ├── DummyMig.java │ │ │ ├── VersionMigTo005.java │ │ │ └── VersionMigTo009.java │ │ ├── event │ │ ├── ButtonToNotificationListener.java │ │ ├── CheckBoxChangeListener.java │ │ ├── ClickNotifier.java │ │ ├── EditableSelectBoxChangeListener.java │ │ ├── KeyboardListener.java │ │ ├── MenuItemListener.java │ │ ├── NumberSelectorOverlapListener.java │ │ └── SelectBoxChangeListener.java │ │ ├── factory │ │ └── ItemFactory.java │ │ ├── proxy │ │ ├── CommandManager.java │ │ ├── CursorManager.java │ │ ├── EditorTextureManager.java │ │ ├── FontManager.java │ │ ├── PluginManager.java │ │ ├── ProjectManager.java │ │ ├── ResolutionManager.java │ │ ├── ResourceManager.java │ │ └── SceneDataManager.java │ │ ├── splash │ │ ├── SplashFrame.java │ │ ├── SplashScreen.java │ │ └── SplashStarter.java │ │ ├── system │ │ └── PhysicsAdjustSystem.java │ │ ├── utils │ │ ├── AppConfig.java │ │ ├── Constants.java │ │ ├── EntityBounds.java │ │ ├── Guide.java │ │ ├── ImportUtils.java │ │ ├── InputFilters.java │ │ ├── MoveCommandBuilder.java │ │ ├── NinePatchUtils.java │ │ ├── Overlap2DUtils.java │ │ ├── StandardWidgetsFactory.java │ │ ├── TransformCommandBuilder.java │ │ ├── TransformUtils.java │ │ ├── poly │ │ │ ├── Clipper.java │ │ │ ├── PolygonUtils.java │ │ │ ├── TextureUtils.java │ │ │ ├── earclipping │ │ │ │ ├── bayazit │ │ │ │ │ └── BayazitDecomposer.java │ │ │ │ └── ewjordan │ │ │ │ │ ├── EwjordanDecomposer.java │ │ │ │ │ ├── Polygon.java │ │ │ │ │ └── Triangle.java │ │ │ └── tracer │ │ │ │ ├── TextureConverter.java │ │ │ │ └── Tracer.java │ │ └── runtime │ │ │ ├── ComponentCloner.java │ │ │ └── EntityUtils.java │ │ └── view │ │ ├── ItemControlMediator.java │ │ ├── Overlap2DScreen.java │ │ ├── Overlap2DScreenMediator.java │ │ ├── SceneControlMediator.java │ │ ├── frame │ │ └── FileDropListener.java │ │ ├── menu │ │ ├── Overlap2DMenuBar.java │ │ └── Overlap2DMenuBarMediator.java │ │ ├── stage │ │ ├── ItemSelector.java │ │ ├── Sandbox.java │ │ ├── SandboxMediator.java │ │ ├── UIStage.java │ │ ├── UIStageMediator.java │ │ ├── input │ │ │ ├── EntityClickListener.java │ │ │ ├── InputListener.java │ │ │ ├── InputListenerComponent.java │ │ │ └── SandboxInputAdapter.java │ │ └── tools │ │ │ ├── ConeLightTool.java │ │ │ ├── ItemDropTool.java │ │ │ ├── PanTool.java │ │ │ ├── PointLightTool.java │ │ │ ├── PolygonTool.java │ │ │ ├── SelectionTool.java │ │ │ ├── SimpleTool.java │ │ │ ├── TextTool.java │ │ │ ├── TransformTool.java │ │ │ └── transformStrategy │ │ │ ├── AbstractTransformStrategy.java │ │ │ ├── BasicStrategy.java │ │ │ ├── CompositeStrategy.java │ │ │ ├── ITransformStrategy.java │ │ │ └── NinePatchStrategy.java │ │ └── ui │ │ ├── FollowersUI.java │ │ ├── FollowersUIMediator.java │ │ ├── RulersUI.java │ │ ├── RulersUIMediator.java │ │ ├── UIDropDownMenu.java │ │ ├── UIDropDownMenuMediator.java │ │ ├── UIMainTable.java │ │ ├── UISubmenuBar.java │ │ ├── box │ │ ├── PanelMediator.java │ │ ├── UIAlignBox.java │ │ ├── UIAlignBoxMediator.java │ │ ├── UIBaseBox.java │ │ ├── UICollapsibleBox.java │ │ ├── UICompositeHierarchy.java │ │ ├── UICompositeHierarchyMediator.java │ │ ├── UIGridBox.java │ │ ├── UIGridBoxMediator.java │ │ ├── UIItemsTreeBox.java │ │ ├── UIItemsTreeBoxMediator.java │ │ ├── UILayerBox.java │ │ ├── UILayerBoxMediator.java │ │ ├── UIMultiPropertyBox.java │ │ ├── UIMultiPropertyBoxMediator.java │ │ ├── UIResolutionBox.java │ │ ├── UIResolutionBoxMediator.java │ │ ├── UIResourcesBox.java │ │ ├── UIResourcesBoxMediator.java │ │ ├── UIToolBox.java │ │ ├── UIToolBoxMediator.java │ │ ├── UIZoomBox.java │ │ ├── UIZoomBoxMediator.java │ │ └── resourcespanel │ │ │ ├── UIAnimationsTab.java │ │ │ ├── UIAnimationsTabMediator.java │ │ │ ├── UIImagesTab.java │ │ │ ├── UIImagesTabMediator.java │ │ │ ├── UILibraryItemsTab.java │ │ │ ├── UILibraryItemsTabMediator.java │ │ │ ├── UIParticleEffectsTab.java │ │ │ ├── UIParticleEffectsTabMediator.java │ │ │ ├── UIResourcesTab.java │ │ │ ├── UIResourcesTabMediator.java │ │ │ └── draggable │ │ │ ├── DraggableResource.java │ │ │ ├── DraggableResourceView.java │ │ │ ├── box │ │ │ ├── BoxItemResource.java │ │ │ ├── ImageResource.java │ │ │ ├── SpineResource.java │ │ │ ├── SpriteResource.java │ │ │ └── SpriterResource.java │ │ │ └── list │ │ │ ├── LibraryItemResource.java │ │ │ ├── ListItemResource.java │ │ │ └── ParticleEffectResource.java │ │ ├── dialog │ │ ├── CreateNewResolutionDialog.java │ │ ├── CreateNewResolutionDialogMediator.java │ │ ├── CustomVariablesDialog.java │ │ ├── CustomVariablesDialogMediator.java │ │ ├── EditSpriteAnimationDialog.java │ │ ├── EditSpriteAnimationDialogMediator.java │ │ ├── ExportSettingsDialog.java │ │ ├── ExportSettingsDialogMediator.java │ │ ├── ImportDialog.java │ │ ├── ImportDialogMediator.java │ │ ├── NewProjectDialog.java │ │ ├── NewProjectDialogMediator.java │ │ ├── PhysicsEditorDialog.java │ │ ├── PhysicsEditorDialogMediator.java │ │ ├── TagItem.java │ │ ├── TagsDialog.java │ │ └── TagsDialogMediator.java │ │ ├── followers │ │ ├── AnchorListener.java │ │ ├── BasicFollower.java │ │ ├── EmptyTransformationListener.java │ │ ├── FollowerFactory.java │ │ ├── FollowerTransformationListener.java │ │ ├── ImageFollower.java │ │ ├── LabelAnchorListener.java │ │ ├── LabelFollower.java │ │ ├── LightFollower.java │ │ ├── NormalSelectionFollower.java │ │ ├── ParticleFollower.java │ │ ├── PolygonFollower.java │ │ ├── PolygonTransformationListener.java │ │ └── SubFollower.java │ │ ├── properties │ │ ├── UIAbstractProperties.java │ │ ├── UIAbstractPropertiesMediator.java │ │ ├── UIItemCollapsibleProperties.java │ │ ├── UIItemProperties.java │ │ ├── UIItemPropertiesMediator.java │ │ ├── UIRemovableProperties.java │ │ └── panels │ │ │ ├── UIBasicItemProperties.java │ │ │ ├── UIBasicItemPropertiesMediator.java │ │ │ ├── UICompositeItemProperties.java │ │ │ ├── UICompositeItemPropertiesMediator.java │ │ │ ├── UIImageItemProperties.java │ │ │ ├── UIImageItemPropertiesMediator.java │ │ │ ├── UILabelItemProperties.java │ │ │ ├── UILabelItemPropertiesMediator.java │ │ │ ├── UILightItemProperties.java │ │ │ ├── UILightItemPropertiesMediator.java │ │ │ ├── UIPhysicsProperties.java │ │ │ ├── UIPhysicsPropertiesMediator.java │ │ │ ├── UIPolygonComponentProperties.java │ │ │ ├── UIPolygonComponentPropertiesMediator.java │ │ │ ├── UISceneProperties.java │ │ │ ├── UIScenePropertiesMediator.java │ │ │ ├── UIShaderProperties.java │ │ │ ├── UIShaderPropertiesMediator.java │ │ │ ├── UISpineAnimationItemProperties.java │ │ │ ├── UISpineAnimationItemPropertiesMediator.java │ │ │ ├── UISpriteAnimationItemProperties.java │ │ │ ├── UISpriteAnimationItemPropertiesMediator.java │ │ │ ├── UITextToolProperties.java │ │ │ └── UITextToolPropertiesMediator.java │ │ ├── validator │ │ └── NewProjectDialogValidator.java │ │ └── widget │ │ ├── CursorListener.java │ │ ├── CustomMenu.java │ │ ├── CustomMenuBar.java │ │ ├── EditableSelectBox.java │ │ ├── EmptyTarget.java │ │ ├── InputFileWidget.java │ │ ├── O2DLogo.java │ │ ├── ProgressHandler.java │ │ ├── SandboxUI.java │ │ ├── actors │ │ ├── GridView.java │ │ ├── ResolutionBounds.java │ │ ├── SpineActor.java │ │ ├── SpriteAnimationActor.java │ │ ├── SpriterActor.java │ │ └── basic │ │ │ ├── PixelLine.java │ │ │ ├── PixelRect.java │ │ │ └── SandboxBackUI.java │ │ └── components │ │ └── TintButton.java └── test │ ├── java │ └── com │ │ ├── commons │ │ └── O2DDialogTest.java │ │ ├── puremvc │ │ ├── core │ │ │ ├── CoreControllerTest.java │ │ │ ├── CoreModelTest.java │ │ │ └── CoreViewTest.java │ │ └── patterns │ │ │ └── command │ │ │ └── MacroCommandTest.java │ │ ├── runner │ │ ├── LibgdxRunner.java │ │ ├── NeedGL.java │ │ ├── exception │ │ │ ├── LibgdxInitException.java │ │ │ └── TimeoutException.java │ │ └── util │ │ │ ├── Condition.java │ │ │ ├── ConditionWaiter.java │ │ │ └── UIHelper.java │ │ └── uwsoft │ │ └── editor │ │ ├── controller │ │ ├── BootstrapCommandTest.java │ │ ├── BootstrapPluginsTest.java │ │ └── BootstrapProxyCommandTest.java │ │ ├── data │ │ └── manager │ │ │ └── PreferencesManagerTest.java │ │ ├── event │ │ ├── ButtonToNotificationListenerTest.java │ │ ├── CheckBoxChangeListenerTest.java │ │ ├── ClickNotifierTest.java │ │ ├── EditableSelectBoxChangeListenerTest.java │ │ ├── KeyboardListenerTest.java │ │ ├── MenuItemListenerTest.java │ │ ├── NumberSelectorOverlapListenerTest.java │ │ └── SelectBoxChangeListenerTest.java │ │ ├── proxy │ │ ├── CommandManagerTest.java │ │ ├── FontManagerTest.java │ │ ├── PluginManagerTest.java │ │ ├── ProjectManagerTest.java │ │ └── ResolutionManagerTest.java │ │ ├── utils │ │ ├── AppConfigTest.java │ │ ├── poly │ │ │ └── PolygonUtilsTest.java │ │ └── runtime │ │ │ └── ComponentClonerTest.java │ │ └── view │ │ └── ui │ │ ├── box │ │ └── UIResolutionBoxTest.java │ │ ├── dialog │ │ ├── CustomVariablesDialogMediatorTest.java │ │ ├── ExportSettingsDialogTest.java │ │ ├── ImportDialogMediatorTest.java │ │ ├── ImportDialogTest.java │ │ └── NewProjectDialogTest.java │ │ ├── validator │ │ └── NewProjectDialogValidatorTest.java │ │ └── widget │ │ └── O2DLogoTest.java │ └── resources │ └── images │ └── logo.png ├── plugins ├── nine-patch │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ └── com │ │ └── overlap2d │ │ └── plugins │ │ └── ninepatch │ │ ├── EditingZone.java │ │ ├── ImageUtils.java │ │ ├── MainPanel.java │ │ ├── MainPanelMediator.java │ │ ├── NinePatchPlugin.java │ │ └── PreviewWidget.java ├── performance │ ├── .gitignore │ ├── build.gradle │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ └── com │ │ └── overlap2d │ │ └── plugins │ │ └── performance │ │ ├── PerformancePanel.java │ │ ├── PerformancePanelMediator.java │ │ └── PerformancePlugin.java └── tiled │ ├── .gitignore │ ├── assets │ └── textures │ │ ├── image-Box-active.9.png │ │ ├── image-Box-inactive.9.png │ │ ├── plugin-tab-active.9.png │ │ ├── plugin-tab-inactive.9.png │ │ ├── tab-back-line.9.png │ │ ├── tile-eraser.png │ │ ├── tile.png │ │ ├── tiles-drop-here-normal.png │ │ ├── tiles-drop-here-over.png │ │ ├── tool-tilebrush.png │ │ └── tool-tileeraser.png │ ├── build.gradle │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ └── com │ └── overlap2d │ └── plugins │ └── tiled │ ├── TiledPanel.java │ ├── TiledPanelMediator.java │ ├── TiledPlugin.java │ ├── data │ ├── AttributeVO.java │ ├── CategoryVO.java │ ├── ParameterVO.java │ └── TileVO.java │ ├── manager │ └── ResourcesManager.java │ ├── offset │ ├── OffsetPanel.java │ └── OffsetPanelMediator.java │ ├── save │ ├── DataToSave.java │ └── SaveDataManager.java │ ├── tools │ ├── DeleteTileTool.java │ └── DrawTileTool.java │ └── view │ ├── Attribute.java │ ├── Category.java │ └── tabs │ ├── DefaultTab.java │ ├── GridTilesTab.java │ └── SettingsTab.java └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | ## Java 2 | 3 | *.class 4 | *.war 5 | *.ear 6 | hs_err_pid* 7 | *.pit 8 | 9 | 10 | ## Android Studio and Intellij and Android in general 11 | android/libs/armeabi/ 12 | android/libs/armeabi-v7a/ 13 | android/libs/x86/ 14 | android/gen/ 15 | .idea/ 16 | *.ipr 17 | *.iws 18 | *.iml 19 | out/ 20 | com_crashlytics_export_strings.xml 21 | 22 | ## Eclipse 23 | .classpath 24 | .project 25 | .metadata 26 | **/bin/ 27 | tmp/ 28 | *.tmp 29 | *.bak 30 | *.swp 31 | *~.nib 32 | local.properties 33 | .settings/ 34 | .loadpath 35 | .externalToolBuilders/ 36 | *.launch 37 | 38 | ## NetBeans 39 | **/nbproject/private/ 40 | build/ 41 | nbbuild/ 42 | dist/ 43 | nbdist/ 44 | nbactions.xml 45 | nb-configuration.xml 46 | 47 | ## Gradle 48 | 49 | .gradle 50 | */gradle/ 51 | 52 | ## OS Specific 53 | .DS_Store 54 | /local 55 | /bin/ 56 | 57 | overlap2d-runtime-libgdx 58 | spine-runtimes 59 | 60 | overlap2d/assets/style/uiskin.png 61 | overlap2d/assets/style/uiskin.atlas 62 | assets/style/uiskin.png 63 | assets/style/uiskin.atlas 64 | overlap2d/assets/splash/splash.png 65 | overlap2d/assets/splash/splash.atlas 66 | assets/splash/splash.png 67 | assets/splash/splash.atlas 68 | /runOverlap2d_dev.bat 69 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | jdk: 3 | - oraclejdk8 4 | sudo: required 5 | services: 6 | - docker 7 | after_success: 8 | - ./gradlew coveralls 9 | before_install: 10 | - docker build -t underwaterapps/overlap2d . 11 | install: 12 | - ./gradlew 13 | script: 14 | - "docker run -v $(pwd):/root/overlap2d underwaterapps/overlap2d /bin/bash -c '/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- +extension RANDR :99 -ac -screen 0 1280x1024x16;./gradlew clean check'" 15 | - "./gradlew checkTest" -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | # This is the official list of the AUTHORS of overlap2d 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 | 10 | Underwater Apps LLC 11 | -------------------------------------------------------------------------------- /CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | # This is the official list of people who can contribute 2 | # (and who have contributed) code to the overlap2d project 3 | # repository. 4 | # The AUTHORS file lists the copyright holders; this file 5 | # lists people. Contributors must sign the CLA to grant 6 | # the AUTHORS copyright within the terms of the Apache 2 license. 7 | # 8 | 9 | azakhary https://github.com/azakhary 10 | gevorg https://github.com/gevorg-kopalyan 11 | saqsun https://github.com/saqsun 12 | hayk https://github.com/underwaterhayk 13 | eumario https://github.com/eumario 14 | kutoman https://github.com/kutoman 15 | AlbertoCejas https://github.com/AlbertoCejas 16 | Huang YunKun https://github.com/htynkn 17 | David Saltares https://github.com/siondream 18 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java:8-jdk 2 | RUN apt-get update && apt-get install -qqy xvfb 3 | ENV DISPLAY=:99.0 4 | WORKDIR /root/overlap2d -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2015 Underwater Apps LLC 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /coveralls.yml: -------------------------------------------------------------------------------- 1 | service_name: travis_ci 2 | repo_token: pjy8rJxFTUoPA0wZXko6XW18sBg3rMh6c -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.daemon=true 2 | org.gradle.jvmargs=-Xms128m -Xmx512m 3 | org.gradle.configureondemand=true -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Sep 14 21:38:14 CST 2015 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.6-bin.zip 7 | -------------------------------------------------------------------------------- /overlap2d-common-api/.gitignore: -------------------------------------------------------------------------------- 1 | ## Java 2 | 3 | *.class 4 | *.war 5 | *.ear 6 | hs_err_pid* 7 | *.pit 8 | 9 | 10 | ## Android Studio and Intellij and Android in general 11 | android/libs/armeabi/ 12 | android/libs/armeabi-v7a/ 13 | android/libs/x86/ 14 | android/gen/ 15 | .idea/ 16 | *.ipr 17 | *.iws 18 | *.iml 19 | out/ 20 | com_crashlytics_export_strings.xml 21 | 22 | ## Eclipse 23 | .classpath 24 | .project 25 | .metadata 26 | **/bin/ 27 | tmp/ 28 | *.tmp 29 | *.bak 30 | *.swp 31 | *~.nib 32 | local.properties 33 | .settings/ 34 | .loadpath 35 | .externalToolBuilders/ 36 | *.launch 37 | 38 | ## NetBeans 39 | **/nbproject/private/ 40 | build/ 41 | nbbuild/ 42 | dist/ 43 | nbdist/ 44 | nbactions.xml 45 | nb-configuration.xml 46 | 47 | ## Gradle 48 | 49 | .gradle 50 | build/ 51 | gradle/ 52 | 53 | 54 | ## OS Specific 55 | .DS_Store 56 | /local 57 | /bin/ -------------------------------------------------------------------------------- /overlap2d-common-api/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: "java" 2 | 3 | sourceSets.main.java.srcDirs = [ "src/" ] 4 | 5 | ext { 6 | gdxVersion = '1.9.8' 7 | ashleyVersion = '1.5.0' 8 | } 9 | 10 | dependencies { 11 | compile "com.badlogicgames.gdx:gdx:$gdxVersion" 12 | compile "com.badlogicgames.ashley:ashley:$ashleyVersion" 13 | compile "com.kotcrab.vis:vis-ui:1.4.1" 14 | compile "com.underwaterapps.overlap2druntime:overlap2d-runtime-libgdx:0.1.2-SNAPSHOT" 15 | compile 'net.mountainblade:modular:1.0' 16 | } 17 | 18 | repositories { 19 | mavenLocal() 20 | mavenCentral() 21 | maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 22 | maven { url "https://oss.sonatype.org/content/repositories/releases/" } 23 | } 24 | 25 | task wrapper(type: Wrapper) { 26 | gradleVersion = '2.6' 27 | } -------------------------------------------------------------------------------- /overlap2d-common-api/settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d-common-api/settings.gradle -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/commons/IItemCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.commons; 20 | 21 | /** 22 | * Created by azakhary on 10/23/2015. 23 | */ 24 | public interface IItemCommand { 25 | 26 | void doAction(Object body); 27 | void undoAction(Object body); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/commons/ResourcePayloadObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.commons; 20 | 21 | 22 | public class ResourcePayloadObject { 23 | public String name; 24 | public float xOffset; 25 | public float yOffset; 26 | public String className; 27 | 28 | public ResourcePayloadObject() { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/commons/color/ColorPickerAdapter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.commons.color; 20 | 21 | import com.badlogic.gdx.graphics.Color; 22 | 23 | /** 24 | * Created by azakhary on 7/14/2015. 25 | */ 26 | public class ColorPickerAdapter implements ColorPickerListener { 27 | @Override 28 | public void canceled() { 29 | 30 | } 31 | 32 | @Override 33 | public void finished(Color newColor) { 34 | 35 | } 36 | 37 | @Override 38 | public void changed(Color newColor) { 39 | 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/commons/color/ColorPickerListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.commons.color; 20 | 21 | import com.badlogic.gdx.graphics.Color; 22 | 23 | /** 24 | * Created by azakhary on 7/14/2015. 25 | */ 26 | public interface ColorPickerListener { 27 | /** Called when color selection was canceled by user (either by clicking cancel or closing the window) */ 28 | public void canceled (); 29 | 30 | /** Called when user finises selecting new color */ 31 | public void finished (Color newColor); 32 | 33 | public void changed (Color newColor); 34 | } 35 | -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/commons/plugins/O2DPlugin.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.commons.plugins; 20 | 21 | import com.badlogic.ashley.core.Entity; 22 | import com.badlogic.gdx.utils.Array; 23 | 24 | import java.util.Set; 25 | 26 | /** 27 | * Created by azakhary on 7/24/2015. 28 | */ 29 | public interface O2DPlugin { 30 | 31 | String getName(); 32 | void initPlugin(); 33 | 34 | public void setAPI(PluginAPI pluginAPI); 35 | 36 | public void onDropDownOpen(Set selectedEntities, Array actionsSet); 37 | } 38 | -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/commons/view/tools/Tool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.commons.view.tools; 20 | 21 | import com.badlogic.ashley.core.Entity; 22 | import com.puremvc.patterns.observer.Notification; 23 | 24 | 25 | /** 26 | * Created by azakhary on 4/30/2015. 27 | */ 28 | public interface Tool { 29 | public void initTool(); 30 | public boolean stageMouseDown(float x, float y); 31 | public void stageMouseUp(float x, float y); 32 | public void stageMouseDragged(float x, float y); 33 | public void stageMouseDoubleClick(float x, float y); 34 | public boolean itemMouseDown(Entity entity, float x, float y); 35 | public void itemMouseUp(Entity entity, float x, float y); 36 | public void itemMouseDragged(Entity entity, float x, float y); 37 | public void itemMouseDoubleClick(Entity entity, float x, float y); 38 | public String getName(); 39 | public void handleNotification(Notification notification); 40 | public void keyDown(Entity entity, int keycode); 41 | public void keyUp(Entity entity, int keycode); 42 | } 43 | -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/puremvc/patterns/command/Command.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | package com.puremvc.patterns.command; 19 | 20 | import com.puremvc.patterns.observer.Notification; 21 | import com.puremvc.patterns.observer.Notifier; 22 | 23 | /** 24 | * The interface definition for a PureMVC Command. 25 | * 26 | * @see com.puremvc.patterns.observer Notification 27 | */ 28 | public interface Command extends Notifier { 29 | 30 | /** 31 | * Execute the Command's logic to handle a given 32 | * Notification. 33 | * 34 | * @param notification an Notification to handle. 35 | */ 36 | void execute(Notification notification); 37 | } 38 | -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/vo/CursorData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.vo; 20 | 21 | 22 | /** 23 | * Created by azakhary on 5/15/2015. 24 | */ 25 | public class CursorData { 26 | 27 | public String region; 28 | public int hotspotX; 29 | public int hotspotY; 30 | 31 | public CursorData(String region, int x, int y) { 32 | this.region = region; 33 | hotspotX = x; 34 | hotspotY = y; 35 | } 36 | 37 | public int getHotspotX() { 38 | return hotspotX; 39 | } 40 | 41 | public int getHotspotY() { 42 | return hotspotY; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/vo/EditorConfigVO.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.vo; 20 | 21 | import com.badlogic.gdx.utils.Json; 22 | import com.badlogic.gdx.utils.JsonWriter; 23 | 24 | /** 25 | * Created by sargis on 8/1/14. 26 | */ 27 | public class EditorConfigVO { 28 | public static final String EDITOR_CONFIG_FILE = "config.pit"; 29 | public String lastOpenedSystemPath = ""; 30 | 31 | public String constructJsonString() { 32 | String str = ""; 33 | Json json = new Json(); 34 | json.setOutputType(JsonWriter.OutputType.json); 35 | str = json.toJson(this); 36 | return str; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/vo/ProjectVO.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.vo; 20 | 21 | import com.badlogic.gdx.utils.Json; 22 | import com.badlogic.gdx.utils.JsonWriter.OutputType; 23 | 24 | import java.util.ArrayList; 25 | 26 | public class ProjectVO { 27 | 28 | public String projectName = ""; 29 | 30 | public String projectVersion = null; 31 | 32 | public String projectMainExportPath = ""; 33 | 34 | public String lastOpenScene = ""; 35 | public String lastOpenResolution = ""; 36 | public String texturepackerWidth = "4096"; 37 | public String texturepackerHeight = "4096"; 38 | public boolean texturepackerDuplicate; 39 | 40 | public ArrayList sceneConfigs = new ArrayList<>(); 41 | 42 | 43 | public String constructJsonString() { 44 | String str = ""; 45 | Json json = new Json(); 46 | json.setOutputType(OutputType.json); 47 | str = json.toJson(this); 48 | return str; 49 | } 50 | } -------------------------------------------------------------------------------- /overlap2d-common-api/src/com/vo/SceneConfigVO.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.vo; 20 | 21 | /** 22 | * Created by azakhary on 7/18/2015. 23 | * 24 | * Here we keep all editor specific but not runtime specific data per scene. (like for example last camera position) 25 | */ 26 | public class SceneConfigVO { 27 | 28 | public String sceneName = ""; 29 | 30 | // 0 = x, 1 = y 31 | public float[] cameraPosition = new float[2]; 32 | } 33 | -------------------------------------------------------------------------------- /overlap2d/art/splash_textures/background.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/splash_textures/background.9.png -------------------------------------------------------------------------------- /overlap2d/art/splash_textures/devider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/splash_textures/devider.png -------------------------------------------------------------------------------- /overlap2d/art/splash_textures/graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/splash_textures/graphic.png -------------------------------------------------------------------------------- /overlap2d/art/splash_textures/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/splash_textures/icon.png -------------------------------------------------------------------------------- /overlap2d/art/splash_textures/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/splash_textures/logo.png -------------------------------------------------------------------------------- /overlap2d/art/splash_textures/logoText.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/splash_textures/logoText.png -------------------------------------------------------------------------------- /overlap2d/art/splash_textures/progressBar.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/splash_textures/progressBar.9.png -------------------------------------------------------------------------------- /overlap2d/art/splash_textures/progressBg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/splash_textures/progressBg.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-center-horisontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-center-horisontal.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-center-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-center-vertical.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-edge-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-edge-down.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-edge-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-edge-left.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-edge-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-edge-right.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-edge-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-edge-up.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-simple-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-simple-down.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-simple-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-simple-left.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-simple-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-simple-right.png -------------------------------------------------------------------------------- /overlap2d/art/textures/align-simple-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/align-simple-up.png -------------------------------------------------------------------------------- /overlap2d/art/textures/alpha-bar-10px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/alpha-bar-10px.png -------------------------------------------------------------------------------- /overlap2d/art/textures/alpha-bar-25px-shifted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/alpha-bar-25px-shifted.png -------------------------------------------------------------------------------- /overlap2d/art/textures/alpha-bar-25px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/alpha-bar-25px.png -------------------------------------------------------------------------------- /overlap2d/art/textures/border-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/border-circle.png -------------------------------------------------------------------------------- /overlap2d/art/textures/border-error.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/border-error.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/border.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/border.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/box-colapse-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/box-colapse-off.png -------------------------------------------------------------------------------- /overlap2d/art/textures/box-colapse-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/box-colapse-on.png -------------------------------------------------------------------------------- /overlap2d/art/textures/box.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/box.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-dark-down.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-dark-down.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-dark-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-dark-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-dark.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-down.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-down.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-orange-down.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-orange-down.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-orange-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-orange-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-orange.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-orange.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-red.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-red.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-resource-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-resource-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button-resource.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button-resource.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/button.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/button.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/check-down-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/check-down-on.png -------------------------------------------------------------------------------- /overlap2d/art/textures/check-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/check-down.png -------------------------------------------------------------------------------- /overlap2d/art/textures/check-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/check-off.png -------------------------------------------------------------------------------- /overlap2d/art/textures/check-on-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/check-on-disabled.png -------------------------------------------------------------------------------- /overlap2d/art/textures/check-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/check-on.png -------------------------------------------------------------------------------- /overlap2d/art/textures/check-over-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/check-over-off.png -------------------------------------------------------------------------------- /overlap2d/art/textures/check-over-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/check-over-on.png -------------------------------------------------------------------------------- /overlap2d/art/textures/color-picker-bar-selector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/color-picker-bar-selector.png -------------------------------------------------------------------------------- /overlap2d/art/textures/color-picker-cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/color-picker-cross.png -------------------------------------------------------------------------------- /overlap2d/art/textures/color-picker-selector-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/color-picker-selector-horizontal.png -------------------------------------------------------------------------------- /overlap2d/art/textures/color-picker-selector-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/color-picker-selector-vertical.png -------------------------------------------------------------------------------- /overlap2d/art/textures/cursor.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/cursor.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/default-pane-noborder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/default-pane-noborder.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/default-pane.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/default-pane.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/default-select-selection.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/default-select-selection.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/default-select-white-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/default-select-white-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/default-select-white.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/default-select-white.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/default-select.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/default-select.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/dropHere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/dropHere.png -------------------------------------------------------------------------------- /overlap2d/art/textures/expandable-properties-active-bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/expandable-properties-active-bg.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/expandable-properties-collapse-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/expandable-properties-collapse-off.png -------------------------------------------------------------------------------- /overlap2d/art/textures/expandable-properties-collapse-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/expandable-properties-collapse-on.png -------------------------------------------------------------------------------- /overlap2d/art/textures/expandable-properties-inactive-bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/expandable-properties-inactive-bg.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-animation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-animation.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-arrow-left.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-arrow-right.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-close-orange-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-close-orange-down.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-close-orange-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-close-orange-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-close-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-close-orange.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-close-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-close-small.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-close.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-composite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-composite.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-composite2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-composite2.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-drive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-drive.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-folder.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-group.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-image.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-label.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-library-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-library-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-library.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-library.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-link-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-link-active.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-link-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-link-inactive.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-lock-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-lock-active.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-lock-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-lock-inactive.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-new-layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-new-layer.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-particle-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-particle-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-particle-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-particle-white.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-particle.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-root.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-root.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-spine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-spine.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-trash-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-trash-disabled.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-trash-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-trash-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-trash.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-unlink-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-unlink-active.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-unlink-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-unlink-inactive.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-visible-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-visible-off.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-visible-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-visible-on.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-zoomin-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-zoomin-disabled.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-zoomin-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-zoomin-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-zoomin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-zoomin.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-zoomout-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-zoomout-disabled.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-zoomout-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-zoomout-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/icon-zoomout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/icon-zoomout.png -------------------------------------------------------------------------------- /overlap2d/art/textures/layer-bg-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/layer-bg-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/layer-bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/layer-bg.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/list-selection-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/list-selection-white.png -------------------------------------------------------------------------------- /overlap2d/art/textures/list-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/list-selection.png -------------------------------------------------------------------------------- /overlap2d/art/textures/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/logo.png -------------------------------------------------------------------------------- /overlap2d/art/textures/menu-bg-down.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/menu-bg-down.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/menu-bg-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/menu-bg-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/menu-bg-up.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/menu-bg-up.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/menu-bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/menu-bg.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/origin-anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/origin-anchor.png -------------------------------------------------------------------------------- /overlap2d/art/textures/popup-menu-disabled.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/popup-menu-disabled.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/popup-menu-down.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/popup-menu-down.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/popup-menu-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/popup-menu-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/popup-menu.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/popup-menu.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/progressbar-filled-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/progressbar-filled-vertical.png -------------------------------------------------------------------------------- /overlap2d/art/textures/progressbar-filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/progressbar-filled.png -------------------------------------------------------------------------------- /overlap2d/art/textures/progressbar-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/progressbar-vertical.png -------------------------------------------------------------------------------- /overlap2d/art/textures/progressbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/progressbar.png -------------------------------------------------------------------------------- /overlap2d/art/textures/radio-down-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/radio-down-on.png -------------------------------------------------------------------------------- /overlap2d/art/textures/radio-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/radio-down.png -------------------------------------------------------------------------------- /overlap2d/art/textures/radio-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/radio-off.png -------------------------------------------------------------------------------- /overlap2d/art/textures/radio-on-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/radio-on-disabled.png -------------------------------------------------------------------------------- /overlap2d/art/textures/radio-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/radio-on.png -------------------------------------------------------------------------------- /overlap2d/art/textures/radio-over-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/radio-over-off.png -------------------------------------------------------------------------------- /overlap2d/art/textures/radio-over-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/radio-over-on.png -------------------------------------------------------------------------------- /overlap2d/art/textures/roboto-medium-big-no-stroke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/roboto-medium-big-no-stroke.png -------------------------------------------------------------------------------- /overlap2d/art/textures/roboto-medium-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/roboto-medium-big.png -------------------------------------------------------------------------------- /overlap2d/art/textures/roboto-medium-no-stroke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/roboto-medium-no-stroke.png -------------------------------------------------------------------------------- /overlap2d/art/textures/roboto-medium-small-no-stroke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/roboto-medium-small-no-stroke.png -------------------------------------------------------------------------------- /overlap2d/art/textures/roboto-medium-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/roboto-medium-small.png -------------------------------------------------------------------------------- /overlap2d/art/textures/roboto-medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/roboto-medium.png -------------------------------------------------------------------------------- /overlap2d/art/textures/scroll-horizontal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/scroll-horizontal.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/scroll-knob-horizontal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/scroll-knob-horizontal.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/scroll-knob-vertical.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/scroll-knob-vertical.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/scroll.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/scroll.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/select-box-list-bg-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/select-box-list-bg-white.png -------------------------------------------------------------------------------- /overlap2d/art/textures/select-box-list-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/select-box-list-bg.png -------------------------------------------------------------------------------- /overlap2d/art/textures/select-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/select-down.png -------------------------------------------------------------------------------- /overlap2d/art/textures/select-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/select-up.png -------------------------------------------------------------------------------- /overlap2d/art/textures/selection-anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/selection-anchor.png -------------------------------------------------------------------------------- /overlap2d/art/textures/selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/selection.png -------------------------------------------------------------------------------- /overlap2d/art/textures/separator-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/separator-menu.png -------------------------------------------------------------------------------- /overlap2d/art/textures/separator-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/separator-vertical.png -------------------------------------------------------------------------------- /overlap2d/art/textures/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/separator.png -------------------------------------------------------------------------------- /overlap2d/art/textures/slider-knob-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/slider-knob-disabled.png -------------------------------------------------------------------------------- /overlap2d/art/textures/slider-knob-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/slider-knob-down.png -------------------------------------------------------------------------------- /overlap2d/art/textures/slider-knob-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/slider-knob-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/slider-knob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/slider-knob.png -------------------------------------------------------------------------------- /overlap2d/art/textures/slider-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/slider-vertical.png -------------------------------------------------------------------------------- /overlap2d/art/textures/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/slider.png -------------------------------------------------------------------------------- /overlap2d/art/textures/splitpane-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/splitpane-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/splitpane-vertical-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/splitpane-vertical-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/splitpane-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/splitpane-vertical.png -------------------------------------------------------------------------------- /overlap2d/art/textures/splitpane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/splitpane.png -------------------------------------------------------------------------------- /overlap2d/art/textures/static-text.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/static-text.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/sub-menu-bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/sub-menu-bg.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/sub-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/sub-menu.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tab-active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tab-active.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tab-inactive.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tab-inactive.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/textfield-light-down.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/textfield-light-down.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/textfield-light-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/textfield-light-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/textfield-light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/textfield-light.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/textfield-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/textfield-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/textfield.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/textfield.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/thumbnail-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/thumbnail-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/thumbnail.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/thumbnail.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tint-border.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tint-border.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tool-align.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tool-align.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tool-conuslight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tool-conuslight.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tool-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tool-label.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tool-mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tool-mesh.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tool-move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tool-move.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tool-sphericlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tool-sphericlight.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tool-transform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tool-transform.png -------------------------------------------------------------------------------- /overlap2d/art/textures/toolbar-bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/toolbar-bg.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/toolbar-down.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/toolbar-down.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/toolbar-normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/toolbar-normal.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/toolbar-over.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/toolbar-over.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tooltip-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tooltip-bg.png -------------------------------------------------------------------------------- /overlap2d/art/textures/touchpad-knob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/touchpad-knob.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tree-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tree-minus.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tree-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tree-over.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tree-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tree-plus.png -------------------------------------------------------------------------------- /overlap2d/art/textures/tree-selection.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/tree-selection.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/white.png -------------------------------------------------------------------------------- /overlap2d/art/textures/window-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/window-bg.png -------------------------------------------------------------------------------- /overlap2d/art/textures/window-noborder.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/window-noborder.9.png -------------------------------------------------------------------------------- /overlap2d/art/textures/window.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/art/textures/window.9.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/cross.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/eyedropper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/eyedropper.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/fingerpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/fingerpoint.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/label-tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/label-tool.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/label.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/left-down-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/left-down-up.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/left-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/left-right.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/left-rotate-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/left-rotate-down.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/left-rotate-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/left-rotate-up.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/normal.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/right-down-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/right-down-up.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/right-rotate-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/right-rotate-down.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/right-rotate-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/right-rotate-up.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/rotate-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/rotate-left.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/rotate-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/rotate-right.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/selection.png -------------------------------------------------------------------------------- /overlap2d/assets/cursors/up-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/cursors/up-down.png -------------------------------------------------------------------------------- /overlap2d/assets/freetypefonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/freetypefonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /overlap2d/assets/freetypefonts/arial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/freetypefonts/arial.ttf -------------------------------------------------------------------------------- /overlap2d/assets/splash/roboto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/splash/roboto.png -------------------------------------------------------------------------------- /overlap2d/assets/style/bglogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/assets/style/bglogo.png -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/SandboxCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.controller; 20 | 21 | import com.puremvc.patterns.command.SimpleCommand; 22 | import com.uwsoft.editor.view.stage.Sandbox; 23 | import com.uwsoft.editor.Overlap2DFacade; 24 | 25 | /** 26 | * Created by azakhary on 4/28/2015. 27 | */ 28 | public class SandboxCommand extends SimpleCommand { 29 | 30 | protected Sandbox sandbox; 31 | 32 | public SandboxCommand() { 33 | sandbox = Sandbox.getInstance(); 34 | facade = Overlap2DFacade.getInstance(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/StartupCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.controller; 20 | 21 | import com.puremvc.patterns.command.MacroCommand; 22 | 23 | /** 24 | * Created by sargis on 3/30/15. 25 | */ 26 | public class StartupCommand extends MacroCommand { 27 | @Override 28 | protected void initializeMacroCommand() { 29 | super.initializeMacroCommand(); 30 | addSubCommand(BootstrapProxyCommand.class); 31 | addSubCommand(BootstrapViewCommand.class); 32 | addSubCommand(BootstrapCommand.class); 33 | addSubCommand(BootstrapPlugins.class); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/AddComponentToItemCommand.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller.commands; 2 | 3 | import com.badlogic.ashley.core.Component; 4 | import com.badlogic.ashley.core.Entity; 5 | import com.commons.MsgAPI; 6 | import com.uwsoft.editor.Overlap2DFacade; 7 | 8 | /** 9 | * Created by CyberJoe on 7/2/2015. 10 | */ 11 | public class AddComponentToItemCommand extends EntityModifyRevertableCommand { 12 | 13 | private static final String CLASS_NAME = "com.uwsoft.editor.controller.commands.AddComponentToItemCommand"; 14 | public static final String DONE = CLASS_NAME + "DONE"; 15 | 16 | private Entity entity; 17 | private Component component; 18 | 19 | private void collectData() { 20 | Object[] payload = getNotification().getBody(); 21 | entity = (Entity) payload[0]; 22 | component = (Component) payload[1]; 23 | } 24 | 25 | @Override 26 | public void doAction() { 27 | collectData(); 28 | 29 | entity.add(component); 30 | 31 | Overlap2DFacade.getInstance().sendNotification(DONE, entity); 32 | Overlap2DFacade.getInstance().sendNotification(MsgAPI.ITEM_DATA_UPDATED, entity); 33 | } 34 | 35 | @Override 36 | public void undoAction() { 37 | entity.remove(component.getClass()); 38 | 39 | Overlap2DFacade.getInstance().sendNotification(DONE, entity); 40 | Overlap2DFacade.getInstance().sendNotification(MsgAPI.ITEM_DATA_UPDATED, entity); 41 | } 42 | 43 | public static Object[] payload(Entity entity, Component component) { 44 | Object[] payload = new Object[2]; 45 | payload[0] = entity; 46 | payload[1] = component; 47 | return payload; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/ChangeRulerPositionCommand.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller.commands; 2 | 3 | import com.kotcrab.vis.ui.util.InputValidator; 4 | import com.kotcrab.vis.ui.util.dialog.Dialogs; 5 | import com.kotcrab.vis.ui.util.dialog.InputDialogListener; 6 | import com.uwsoft.editor.view.ui.RulersUI; 7 | 8 | /** 9 | * Created by billzo on 12/22/2015. 10 | */ 11 | public class ChangeRulerPositionCommand extends RevertableCommand { 12 | 13 | private float previousPosition; 14 | private String direction; 15 | 16 | @Override 17 | public void doAction() { 18 | previousPosition = RulersUI.getPreviousGuide().pos; 19 | direction = RulersUI.getPreviousGuide().isVertical ? "Y" : "X"; 20 | 21 | Dialogs.showInputDialog(sandbox.getUIStage(), "Manual " + direction + " Position", direction + " : ", new MyInputValidator(), new InputDialogListener() { 22 | @Override 23 | public void finished(String input) { 24 | RulersUI.updateGuideManually(Float.parseFloat(input)); 25 | } 26 | 27 | @Override 28 | public void canceled() { 29 | 30 | } 31 | }); 32 | } 33 | 34 | @Override 35 | public void undoAction() { 36 | System.out.println(previousPosition); 37 | RulersUI.updateGuideManually(previousPosition); 38 | } 39 | 40 | private class MyInputValidator implements InputValidator { 41 | @Override 42 | public boolean validateInput(String input) { 43 | try 44 | { 45 | Float.parseFloat(input); 46 | return true; 47 | } catch (NumberFormatException ex) 48 | { 49 | return false; 50 | } 51 | } 52 | 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/CreatePrimitiveCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.controller.commands; 20 | 21 | import com.badlogic.gdx.math.Vector2; 22 | import com.uwsoft.editor.factory.ItemFactory; 23 | import com.uwsoft.editor.renderer.data.ColorPrimitiveVO; 24 | import com.uwsoft.editor.renderer.data.ShapeVO; 25 | 26 | /** 27 | * Created by azakhary on 10/21/2015. 28 | */ 29 | public class CreatePrimitiveCommand extends EntityModifyRevertableCommand { 30 | 31 | @Override 32 | public void doAction() { 33 | Vector2 position = new Vector2(0, 0); 34 | ShapeVO shape = ShapeVO.createRect(100f / sandbox.getPixelPerWU(), 100f / sandbox.getPixelPerWU()); 35 | 36 | ItemFactory.get().createPrimitive(position, shape); 37 | } 38 | 39 | @Override 40 | public void undoAction() { 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/DeleteLayerAtomCommand.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller.commands; 2 | 3 | import com.badlogic.ashley.core.Entity; 4 | import com.uwsoft.editor.renderer.components.LayerMapComponent; 5 | import com.uwsoft.editor.renderer.data.LayerItemVO; 6 | import com.uwsoft.editor.renderer.utils.ComponentRetriever; 7 | import com.uwsoft.editor.view.stage.Sandbox; 8 | 9 | /** 10 | * Created by CyberJoe on 7/25/2015. 11 | * This command marked as "atom" meaning it cannot be called outside the transaction 12 | * TODO: make this an annotation 13 | */ 14 | public class DeleteLayerAtomCommand extends EntityModifyRevertableCommand { 15 | 16 | private String layerName; 17 | 18 | private LayerItemVO layerItemVO; 19 | private int layerIndex; 20 | 21 | public DeleteLayerAtomCommand(String layerName) { 22 | this.layerName = layerName; 23 | } 24 | 25 | @Override 26 | public void doAction() { 27 | Entity viewingEntity = Sandbox.getInstance().getCurrentViewingEntity(); 28 | LayerMapComponent layerMapComponent = ComponentRetriever.get(viewingEntity, LayerMapComponent.class); 29 | 30 | 31 | 32 | if(layerMapComponent.getLayers().size() > 1) { 33 | layerMapComponent.deleteLayer(layerName); 34 | } else { 35 | cancel(); 36 | } 37 | } 38 | 39 | @Override 40 | public void undoAction() { 41 | Entity viewingEntity = Sandbox.getInstance().getCurrentViewingEntity(); 42 | LayerMapComponent layerMapComponent = ComponentRetriever.get(viewingEntity, LayerMapComponent.class); 43 | 44 | layerMapComponent.addLayer(layerIndex, layerItemVO); 45 | } 46 | 47 | public int getLayerIndex() { 48 | return layerIndex; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/ExportProjectCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.controller.commands; 20 | 21 | import com.puremvc.patterns.observer.Notification; 22 | import com.uwsoft.editor.controller.SandboxCommand; 23 | import com.uwsoft.editor.proxy.ProjectManager; 24 | 25 | /** 26 | * Created by azakhary on 11/3/2015. 27 | */ 28 | public class ExportProjectCommand extends SandboxCommand { @Override 29 | public void execute(Notification notification) { 30 | ProjectManager projectManager = facade.retrieveProxy(ProjectManager.NAME); 31 | projectManager.exportProject(); 32 | } 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/NewLayerCommand.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller.commands; 2 | 3 | import com.badlogic.ashley.core.Entity; 4 | import com.uwsoft.editor.renderer.components.LayerMapComponent; 5 | import com.uwsoft.editor.renderer.data.LayerItemVO; 6 | import com.uwsoft.editor.renderer.utils.ComponentRetriever; 7 | import com.uwsoft.editor.view.stage.Sandbox; 8 | 9 | /** 10 | * Created by CyberJoe on 7/25/2015. 11 | */ 12 | public class NewLayerCommand extends EntityModifyRevertableCommand { 13 | private static final String CLASS_NAME = "com.uwsoft.editor.controller.commands.NewLayerCommand"; 14 | public static final String DONE = CLASS_NAME + "DONE"; 15 | 16 | private String layerName; 17 | 18 | @Override 19 | public void doAction() { 20 | Object[] payload = getNotification().getBody(); 21 | int index = (int) payload[0]; 22 | layerName = (String) payload[1]; 23 | 24 | Entity viewingEntity = Sandbox.getInstance().getCurrentViewingEntity(); 25 | LayerMapComponent layerMapComponent = ComponentRetriever.get(viewingEntity, LayerMapComponent.class); 26 | 27 | LayerItemVO vo = new LayerItemVO(layerName); 28 | vo.isVisible = true; 29 | layerMapComponent.addLayer(index, vo); 30 | 31 | facade.sendNotification(DONE, layerName); 32 | } 33 | 34 | @Override 35 | public void undoAction() { 36 | Entity viewingEntity = Sandbox.getInstance().getCurrentViewingEntity(); 37 | LayerMapComponent layerMapComponent = ComponentRetriever.get(viewingEntity, LayerMapComponent.class); 38 | 39 | layerMapComponent.deleteLayer(layerName); 40 | 41 | facade.sendNotification(DONE, layerName); 42 | } 43 | 44 | public static Object[] payload(int index, String name) { 45 | Object[] payload = new Object[2]; 46 | payload[0] = index; 47 | payload[1] = name; 48 | 49 | return payload; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/NonRevertibleCommand.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller.commands; 2 | 3 | import com.puremvc.patterns.observer.Notification; 4 | import com.uwsoft.editor.controller.SandboxCommand; 5 | import com.uwsoft.editor.proxy.CommandManager; 6 | import com.uwsoft.editor.proxy.ProjectManager; 7 | import com.uwsoft.editor.renderer.data.CompositeItemVO; 8 | 9 | import java.util.HashMap; 10 | 11 | /** 12 | * Created by azakhary on 11/29/2015. 13 | */ 14 | public abstract class NonRevertibleCommand extends SandboxCommand { 15 | 16 | protected CommandManager commandManager; 17 | protected Notification notification; 18 | 19 | protected boolean isCancelled = false; 20 | protected final HashMap libraryItems; 21 | protected final ProjectManager projectManager; 22 | 23 | public NonRevertibleCommand() { 24 | this.projectManager = facade.retrieveProxy(ProjectManager.NAME); 25 | this.libraryItems = projectManager.getCurrentProjectInfoVO().libraryItems; 26 | } 27 | 28 | @Override 29 | public void execute(Notification notification) { 30 | commandManager = facade.retrieveProxy(CommandManager.NAME); 31 | this.notification = notification; 32 | callDoAction(); 33 | if (!isCancelled) commandManager.clearHistory(); 34 | } 35 | 36 | public abstract void doAction(); 37 | 38 | public void callDoAction() { 39 | doAction(); 40 | } 41 | 42 | public void cancel() { 43 | isCancelled = true; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/PluginItemCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.controller.commands; 20 | 21 | import com.commons.IItemCommand; 22 | 23 | /** 24 | * Created by azakhary on 10/23/2015. 25 | */ 26 | public class PluginItemCommand extends EntityModifyRevertableCommand { 27 | 28 | private IItemCommand command; 29 | private Object body; 30 | 31 | @Override 32 | public void doAction() { 33 | if(command == null) { 34 | Object[] payload = notification.getBody(); 35 | command = (IItemCommand) payload[0]; 36 | body = payload[1]; 37 | } 38 | 39 | command.doAction(body); 40 | } 41 | 42 | @Override 43 | public void undoAction() { 44 | command.undoAction(body); 45 | } 46 | 47 | public static Object build(IItemCommand command, Object body) { 48 | Object[] payload = new Object[2]; 49 | payload[0] = command; 50 | payload[1] = body; 51 | return payload; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/RemoveComponentFromItemCommand.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller.commands; 2 | 3 | import com.badlogic.ashley.core.Component; 4 | import com.badlogic.ashley.core.Entity; 5 | import com.commons.MsgAPI; 6 | import com.uwsoft.editor.Overlap2DFacade; 7 | 8 | /** 9 | * Created by CyberJoe on 7/2/2015. 10 | */ 11 | public class RemoveComponentFromItemCommand extends EntityModifyRevertableCommand { 12 | 13 | private static final String CLASS_NAME = "com.uwsoft.editor.controller.commands.RemoveComponentFromItemCommand"; 14 | public static final String DONE = CLASS_NAME + "DONE"; 15 | 16 | private Entity entity; 17 | private Component component; 18 | 19 | private void collectData() { 20 | Object[] payload = getNotification().getBody(); 21 | entity = (Entity) payload[0]; 22 | Class componentClass = (Class) payload[1]; 23 | component = entity.getComponent(componentClass); 24 | } 25 | 26 | @Override 27 | public void doAction() { 28 | collectData(); 29 | entity.remove(component.getClass()); 30 | 31 | Overlap2DFacade.getInstance().sendNotification(DONE, entity); 32 | Overlap2DFacade.getInstance().sendNotification(MsgAPI.ITEM_DATA_UPDATED, entity); 33 | } 34 | 35 | @Override 36 | public void undoAction() { 37 | entity.add(component); 38 | 39 | Overlap2DFacade.getInstance().sendNotification(DONE, entity); 40 | Overlap2DFacade.getInstance().sendNotification(MsgAPI.ITEM_DATA_UPDATED, entity); 41 | } 42 | 43 | public static Object[] payload(Entity entity, Class componentClass) { 44 | Object[] payload = new Object[2]; 45 | payload[0] = entity; 46 | payload[1] = componentClass; 47 | return payload; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/SaveExportPathCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.controller.commands; 20 | 21 | import com.puremvc.patterns.observer.Notification; 22 | import com.uwsoft.editor.controller.SandboxCommand; 23 | import com.uwsoft.editor.proxy.ProjectManager; 24 | 25 | /** 26 | * Created by azakhary on 11/12/2015. 27 | */ 28 | public class SaveExportPathCommand extends SandboxCommand { 29 | 30 | @Override 31 | public void execute(Notification notification) { 32 | String path = notification.getBody(); 33 | 34 | ProjectManager projectManager = facade.retrieveProxy(ProjectManager.NAME); 35 | projectManager.setExportPaths(path); 36 | projectManager.saveCurrentProject(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/SetGridSizeFromItemCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.controller.commands; 20 | 21 | import com.puremvc.patterns.observer.Notification; 22 | import com.uwsoft.editor.controller.SandboxCommand; 23 | 24 | /** 25 | * Created by azakhary on 4/28/2015. 26 | */ 27 | public class SetGridSizeFromItemCommand extends SandboxCommand { 28 | 29 | @Override 30 | public void execute(Notification notification) { 31 | //TODO fix and uncomment 32 | //commands.setGridSize((int) ((Actor) (commands.getSelector().getSelectedItems().get(0))).getWidth()); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/TransactiveCommand.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller.commands; 2 | 3 | import com.badlogic.gdx.utils.Array; 4 | import com.puremvc.patterns.observer.Notification; 5 | 6 | /** 7 | * Created by CyberJoe on 7/25/2015. 8 | */ 9 | public abstract class TransactiveCommand extends RevertableCommand { 10 | 11 | protected Array commands = new Array(); 12 | 13 | @Override 14 | public void execute(Notification notification) { 15 | this.notification = notification; 16 | transaction(); 17 | super.execute(notification); 18 | } 19 | 20 | @Override 21 | public void doAction() { 22 | for(int i = 0; i < commands.size; i++) { 23 | commands.get(i).callDoAction(); 24 | if(commands.get(i).isCancelled) { 25 | // reverting 26 | for(int j = i-1; j >= 0; j--) { 27 | commands.get(j).callUndoAction(); 28 | } 29 | cancel(); 30 | return; 31 | } 32 | } 33 | 34 | onFinish(); 35 | } 36 | 37 | @Override 38 | public void undoAction() { 39 | for(int i = commands.size-1; i >= 0; i--) { 40 | commands.get(i).callUndoAction(); 41 | } 42 | 43 | onFinishUndo(); 44 | } 45 | 46 | public abstract void transaction(); 47 | public abstract void onFinish(); 48 | public abstract void onFinishUndo(); 49 | 50 | protected void addInnerCommand(RevertableCommand command) { 51 | commands.add(command); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/controller/commands/resource/DeleteLibraryItem.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller.commands.resource; 2 | 3 | import com.badlogic.ashley.core.Entity; 4 | import com.badlogic.gdx.utils.Array; 5 | import com.uwsoft.editor.Overlap2DFacade; 6 | import com.uwsoft.editor.controller.commands.NonRevertibleCommand; 7 | import com.uwsoft.editor.proxy.ProjectManager; 8 | import com.uwsoft.editor.renderer.components.MainItemComponent; 9 | import com.uwsoft.editor.renderer.data.CompositeItemVO; 10 | import com.uwsoft.editor.renderer.utils.ComponentRetriever; 11 | import com.uwsoft.editor.utils.runtime.EntityUtils; 12 | 13 | import java.util.HashMap; 14 | 15 | /** 16 | * Created by azakhary on 11/29/2015. 17 | */ 18 | public class DeleteLibraryItem extends NonRevertibleCommand { 19 | 20 | private static final String CLASS_NAME = "com.uwsoft.editor.controller.commands.resource.DeleteLibraryItem"; 21 | public static final String DONE = CLASS_NAME + "DONE"; 22 | 23 | @Override 24 | public void doAction() { 25 | String libraryItemName = notification.getBody(); 26 | 27 | ProjectManager projectManager = Overlap2DFacade.getInstance().retrieveProxy(ProjectManager.NAME); 28 | HashMap libraryItems = projectManager.currentProjectInfoVO.libraryItems; 29 | 30 | libraryItems.remove(libraryItemName); 31 | 32 | Array linkedEntities = EntityUtils.getByLibraryLink(libraryItemName); 33 | for (Entity entity : linkedEntities) { 34 | MainItemComponent mainItemComponent = ComponentRetriever.get(entity, MainItemComponent.class); 35 | mainItemComponent.libraryLink = ""; 36 | } 37 | facade.sendNotification(DONE, libraryItemName); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/data/SpineAnimData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.data; 20 | 21 | import com.badlogic.gdx.files.FileHandle; 22 | import com.badlogic.gdx.graphics.g2d.TextureAtlas; 23 | 24 | /** 25 | * Created by azakhary on 7/3/2014. 26 | */ 27 | public class SpineAnimData { 28 | public TextureAtlas atlas; 29 | public FileHandle jsonFile; 30 | public String animName; 31 | } 32 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/data/migrations/IVersionMigrator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.data.migrations; 20 | 21 | /** 22 | * Created by azakhary on 9/28/2014. 23 | */ 24 | public interface IVersionMigrator { 25 | 26 | public void setProject(String path); 27 | 28 | public boolean doMigration(); 29 | } 30 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/data/migrations/migrators/DummyMig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.data.migrations.migrators; 20 | 21 | import com.uwsoft.editor.data.migrations.IVersionMigrator; 22 | 23 | /** 24 | * Created by azakhary on 1/29/2015. 25 | */ 26 | public class DummyMig implements IVersionMigrator { 27 | @Override 28 | public void setProject(String path) { 29 | 30 | } 31 | 32 | @Override 33 | public boolean doMigration() { 34 | return true; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/event/ButtonToNotificationListener.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.event; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.InputEvent; 4 | import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; 5 | import com.uwsoft.editor.Overlap2DFacade; 6 | 7 | /** 8 | * Created by azakhary on 7/2/2015. 9 | */ 10 | public class ButtonToNotificationListener extends ClickListener{ 11 | 12 | private String notificationName; 13 | 14 | public ButtonToNotificationListener(String notificationName) { 15 | this.notificationName = notificationName; 16 | } 17 | 18 | public void touchUp(InputEvent event, float x, float y, int pointer, int button) { 19 | super.touchUp(event, x, y, pointer, button); 20 | Overlap2DFacade.getInstance().sendNotification(notificationName); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/event/CheckBoxChangeListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.event; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.Actor; 22 | import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; 23 | import com.kotcrab.vis.ui.widget.VisCheckBox; 24 | import com.uwsoft.editor.Overlap2DFacade; 25 | 26 | /** 27 | * Created by azakhary on 4/16/2015. 28 | */ 29 | public class CheckBoxChangeListener extends ChangeListener { 30 | 31 | private final String eventName; 32 | 33 | public CheckBoxChangeListener(String eventName) { 34 | this.eventName = eventName; 35 | } 36 | 37 | @Override 38 | public void changed(ChangeEvent changeEvent, Actor actor) { 39 | Overlap2DFacade facade = Overlap2DFacade.getInstance(); 40 | facade.sendNotification(eventName, ((VisCheckBox) actor).isChecked()); 41 | } 42 | } -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/event/ClickNotifier.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.event; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.InputEvent; 22 | import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; 23 | import com.uwsoft.editor.Overlap2DFacade; 24 | 25 | /** 26 | * Created by azakhary on 4/29/2015. 27 | */ 28 | public class ClickNotifier extends ClickListener { 29 | 30 | private final String eventName; 31 | 32 | public ClickNotifier(String eventName) { 33 | this.eventName = eventName; 34 | } 35 | 36 | @Override 37 | public void clicked(InputEvent event, float x, float y) { 38 | Overlap2DFacade facade = Overlap2DFacade.getInstance(); 39 | facade.sendNotification(eventName); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/event/EditableSelectBoxChangeListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.event; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.Actor; 22 | import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; 23 | import com.uwsoft.editor.Overlap2DFacade; 24 | import com.uwsoft.editor.view.ui.widget.EditableSelectBox; 25 | 26 | /** 27 | * Created by azakhary on 4/30/2015. 28 | */ 29 | public class EditableSelectBoxChangeListener extends ChangeListener { 30 | 31 | private final String eventName; 32 | 33 | private String lastSelected = ""; 34 | 35 | public EditableSelectBoxChangeListener(String eventName) { 36 | this.eventName = eventName; 37 | } 38 | 39 | @Override 40 | public void changed(ChangeEvent changeEvent, Actor actor) { 41 | Overlap2DFacade facade = Overlap2DFacade.getInstance(); 42 | String selected = ((EditableSelectBox) actor).getSelected(); 43 | if(!lastSelected.equals(selected)) { 44 | lastSelected = selected; 45 | facade.sendNotification(eventName, selected); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/event/MenuItemListener.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.event; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.Actor; 4 | import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; 5 | import com.uwsoft.editor.Overlap2DFacade; 6 | 7 | /** 8 | * Created by CyberJoe on 4/21/2015. 9 | */ 10 | 11 | public class MenuItemListener extends ChangeListener { 12 | 13 | private final String menuCommand; 14 | private final String menuType; 15 | private final Object data; 16 | 17 | private Overlap2DFacade facade; 18 | 19 | public MenuItemListener(String menuCommand) { 20 | this(menuCommand, null, null); 21 | } 22 | 23 | public MenuItemListener(String menuCommand, String data) { 24 | this(menuCommand, data, null); 25 | } 26 | 27 | public MenuItemListener(String menuCommand, Object data, String menuType) { 28 | this.menuCommand = menuCommand; 29 | this.data = data; 30 | this.menuType = menuType; 31 | 32 | facade = Overlap2DFacade.getInstance(); 33 | } 34 | 35 | @Override 36 | public void changed(ChangeEvent event, Actor actor) { 37 | if(menuType == null) { 38 | if(data == null) { 39 | facade.sendNotification(menuCommand); 40 | } else { 41 | facade.sendNotification(menuCommand, data); 42 | } 43 | } else { 44 | facade.sendNotification(menuCommand, data, menuType); 45 | } 46 | 47 | } 48 | } -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/event/NumberSelectorOverlapListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.event; 20 | 21 | 22 | import com.badlogic.gdx.scenes.scene2d.Actor; 23 | import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; 24 | import com.kotcrab.vis.ui.widget.spinner.IntSpinnerModel; 25 | import com.kotcrab.vis.ui.widget.spinner.Spinner; 26 | import com.kotcrab.vis.ui.widget.spinner.SpinnerModel; 27 | import com.uwsoft.editor.Overlap2DFacade; 28 | 29 | /** 30 | * Created by azakhary on 6/12/2015. 31 | */ 32 | public class NumberSelectorOverlapListener extends ChangeListener { 33 | 34 | private final String eventName; 35 | 36 | public NumberSelectorOverlapListener(String eventName) { 37 | this.eventName = eventName; 38 | } 39 | 40 | @Override 41 | public void changed(ChangeEvent event, Actor actor) { 42 | Overlap2DFacade facade = Overlap2DFacade.getInstance(); 43 | Spinner spinner = (Spinner) actor; 44 | facade.sendNotification(eventName, ((IntSpinnerModel) spinner.getModel()).getValue()); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/event/SelectBoxChangeListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.event; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.Actor; 22 | import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; 23 | import com.kotcrab.vis.ui.widget.VisSelectBox; 24 | import com.uwsoft.editor.Overlap2DFacade; 25 | 26 | /** 27 | * Created by azakhary on 4/16/2015. 28 | */ 29 | public class SelectBoxChangeListener extends ChangeListener { 30 | 31 | private final String eventName; 32 | 33 | private String lastSelected = ""; 34 | 35 | public SelectBoxChangeListener(String eventName) { 36 | this.eventName = eventName; 37 | } 38 | 39 | @Override 40 | public void changed(ChangeEvent changeEvent, Actor actor) { 41 | Overlap2DFacade facade = Overlap2DFacade.getInstance(); 42 | String selected = (String) ((VisSelectBox) actor).getSelected(); 43 | if(!lastSelected.equals(selected)) { 44 | lastSelected = selected; 45 | facade.sendNotification(eventName, selected); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/system/PhysicsAdjustSystem.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.system; 2 | 3 | import com.badlogic.ashley.core.Entity; 4 | import com.badlogic.gdx.math.MathUtils; 5 | import com.badlogic.gdx.math.Vector2; 6 | import com.badlogic.gdx.physics.box2d.World; 7 | import com.uwsoft.editor.renderer.components.TransformComponent; 8 | import com.uwsoft.editor.renderer.components.physics.PhysicsBodyComponent; 9 | import com.uwsoft.editor.renderer.physics.PhysicsBodyLoader; 10 | import com.uwsoft.editor.renderer.systems.PhysicsSystem; 11 | import com.uwsoft.editor.renderer.utils.ComponentRetriever; 12 | 13 | public class PhysicsAdjustSystem extends PhysicsSystem { 14 | 15 | private Vector2 transformVec = new Vector2(); 16 | 17 | public PhysicsAdjustSystem(World world) { 18 | super(world); 19 | } 20 | 21 | @Override 22 | protected void processEntity(Entity entity, float deltaTime) { 23 | 24 | TransformComponent transformComponent = transformComponentMapper.get(entity); 25 | processBody(entity); 26 | 27 | PhysicsBodyComponent physicsBodyComponent = ComponentRetriever.get(entity, PhysicsBodyComponent.class); 28 | 29 | if(physicsBodyComponent.body == null) return; 30 | 31 | transformVec.x = transformComponent.x * PhysicsBodyLoader.getScale(); 32 | transformVec.y = transformComponent.y * PhysicsBodyLoader.getScale(); 33 | physicsBodyComponent.body.setTransform(transformVec, transformComponent.rotation * MathUtils.degreesToRadians); 34 | 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/utils/Constants.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.utils; 2 | 3 | /** 4 | * Created by Sasun Poghosyan on 5/6/2016. 5 | */ 6 | public class Constants { 7 | 8 | public static final float FLOAT_MIN = -1000000f; 9 | public static final float FLOAT_MAX = 1000000f; 10 | 11 | 12 | } 13 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/utils/Guide.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.utils; 2 | 3 | /** 4 | * Created by azakhary on 7/18/2015. 5 | */ 6 | public class Guide { 7 | public boolean isVertical; 8 | public float pos; 9 | 10 | public Guide(boolean isVertical) { 11 | this.isVertical = isVertical; 12 | } 13 | } -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/utils/InputFilters.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.utils; 2 | 3 | import com.kotcrab.vis.ui.widget.VisTextField; 4 | 5 | public class InputFilters { 6 | public static final VisTextField.TextFieldFilter ALPHANUMERIC = new VisTextField.TextFieldFilter() { 7 | @Override 8 | public boolean acceptChar(VisTextField textField, char c) { 9 | 10 | if(Character.isAlphabetic(c) || Character.isDigit(c)) 11 | return true; 12 | 13 | return false; 14 | } 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/utils/poly/PolygonUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.utils.poly; 20 | 21 | import com.badlogic.gdx.math.Vector2; 22 | 23 | /** 24 | * 25 | * @author Aurelien Ribon | http://www.aurelienribon.com/ 26 | */ 27 | public class PolygonUtils { 28 | public static float getPolygonSignedArea(Vector2[] points) { 29 | if (points.length < 3) 30 | return 0; 31 | 32 | float sum = 0; 33 | for (int i = 0; i < points.length; i++) { 34 | Vector2 p1 = points[i]; 35 | Vector2 p2 = i != points.length-1 ? points[i+1] : points[0]; 36 | sum += (p1.x * p2.y) - (p1.y * p2.x); 37 | } 38 | return 0.5f * sum; 39 | } 40 | 41 | public static float getPolygonArea(Vector2[] points) { 42 | return Math.abs(getPolygonSignedArea(points)); 43 | } 44 | 45 | public static boolean isPolygonCCW(Vector2[] points) { 46 | return getPolygonSignedArea(points) > 0; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/stage/input/InputListener.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.stage.input; 2 | 3 | import com.badlogic.ashley.core.Entity; 4 | 5 | public interface InputListener { 6 | 7 | public boolean keyDown(Entity entity, int keycode); 8 | 9 | public boolean keyUp(Entity entity, int keycode); 10 | 11 | public boolean keyTyped(Entity entity, char character); 12 | 13 | public boolean touchDown(Entity entity, float screenX, float screenY, int pointer, int button); 14 | 15 | public void touchUp(Entity entity, float screenX, float screenY, int pointer, int button); 16 | 17 | public void touchDragged(Entity entity, float screenX, float screenY, int pointer); 18 | 19 | public boolean mouseMoved(Entity entity, float screenX, float screenY); 20 | 21 | public boolean scrolled(Entity entity, int amount); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/stage/input/InputListenerComponent.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.stage.input; 2 | 3 | import com.badlogic.ashley.core.Component; 4 | import com.badlogic.gdx.utils.Array; 5 | 6 | public class InputListenerComponent implements Component { 7 | private Array listeners = new Array(1); 8 | 9 | public void addListener(InputListener listener){ 10 | if (!listeners.contains(listener, true)) { 11 | listeners.add(listener); 12 | } 13 | 14 | } 15 | 16 | public void removeListener(InputListener listener){ 17 | listeners.removeValue(listener, true); 18 | } 19 | 20 | public void removeAllListener(){ 21 | listeners.clear(); 22 | } 23 | 24 | public Array getAllListeners(){ 25 | listeners.shrink(); 26 | return listeners; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/stage/tools/ConeLightTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.stage.tools; 20 | 21 | import com.badlogic.ashley.core.Entity; 22 | import com.badlogic.gdx.math.Vector2; 23 | import com.uwsoft.editor.factory.ItemFactory; 24 | import com.uwsoft.editor.renderer.data.LightVO; 25 | import com.uwsoft.editor.renderer.factory.EntityFactory; 26 | 27 | /** 28 | * Created by azakhary on 4/30/2015. 29 | */ 30 | public class ConeLightTool extends ItemDropTool { 31 | 32 | public static final String NAME = "CONE_LIGHT_TOOL"; 33 | 34 | 35 | @Override 36 | public Entity putItem(float x, float y) { 37 | //LayerItemVO layer = Sandbox.getInstance().getItemFactory().getSelectedLayer(); 38 | LightVO vo = new LightVO(); 39 | vo.type = LightVO.LightType.CONE; 40 | vo.distance = 300/sandbox.getPixelPerWU(); 41 | vo.coneDegree = 45; 42 | 43 | return ItemFactory.get().createLightItem(vo, new Vector2(x, y)); 44 | } 45 | 46 | @Override 47 | public int[] listItemFilters() { 48 | int[] filter = {EntityFactory.LIGHT_TYPE}; 49 | return filter; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/stage/tools/ItemDropTool.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.stage.tools; 2 | 3 | import com.badlogic.ashley.core.Entity; 4 | import com.uwsoft.editor.utils.runtime.EntityUtils; 5 | 6 | /** 7 | * Created by CyberJoe on 6/24/2015. 8 | */ 9 | public abstract class ItemDropTool extends SelectionTool { 10 | 11 | public ItemDropTool() { 12 | 13 | } 14 | 15 | @Override 16 | public boolean stageMouseDown(float x, float y) { 17 | Entity entity = putItem(x, y); 18 | 19 | return false; 20 | } 21 | 22 | @Override 23 | public void stageMouseUp(float x, float y) { 24 | 25 | } 26 | 27 | @Override 28 | public boolean itemMouseDown(Entity entity, float x, float y) { 29 | if(checkFilter(entity)) { 30 | return super.itemMouseDown(entity, x, y); 31 | } else { 32 | stageMouseDown(x, y); 33 | } 34 | 35 | return false; 36 | } 37 | 38 | @Override 39 | public void itemMouseDragged(Entity entity, float x, float y) { 40 | if(checkFilter(entity)) { 41 | super.itemMouseDragged(entity, x, y); 42 | } 43 | 44 | } 45 | 46 | @Override 47 | public void itemMouseUp(Entity entity, float x, float y) { 48 | if(checkFilter(entity)) { 49 | super.itemMouseUp(entity, x, y); 50 | } 51 | } 52 | 53 | protected boolean checkFilter(Entity entity) { 54 | int[] itemTypes = listItemFilters(); 55 | for(int i = 0; i < itemTypes.length; i++) { 56 | if(itemTypes[i] == EntityUtils.getType(entity)) { 57 | return true; 58 | } 59 | } 60 | 61 | return false; 62 | } 63 | 64 | public abstract Entity putItem(float x, float y); 65 | 66 | public abstract int[] listItemFilters(); 67 | } 68 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/stage/tools/PointLightTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.stage.tools; 20 | 21 | import com.badlogic.ashley.core.Entity; 22 | import com.badlogic.gdx.math.Vector2; 23 | import com.uwsoft.editor.factory.ItemFactory; 24 | import com.uwsoft.editor.renderer.data.LightVO; 25 | import com.uwsoft.editor.renderer.factory.EntityFactory; 26 | 27 | /** 28 | * Created by azakhary on 4/30/2015. 29 | */ 30 | public class PointLightTool extends ItemDropTool { 31 | 32 | public static final String NAME = "POINT_LIGHT_TOOL"; 33 | 34 | 35 | @Override 36 | public Entity putItem(float x, float y) { 37 | LightVO vo = new LightVO(); 38 | vo.type = LightVO.LightType.POINT; 39 | vo.distance = 300/sandbox.getPixelPerWU(); 40 | 41 | return ItemFactory.get().createLightItem(vo, new Vector2(x, y)); 42 | } 43 | 44 | @Override 45 | public int[] listItemFilters() { 46 | int[] filter = {EntityFactory.LIGHT_TYPE}; 47 | return filter; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/stage/tools/transformStrategy/ITransformStrategy.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.stage.tools.transformStrategy; 2 | 3 | import com.badlogic.ashley.core.Entity; 4 | import com.badlogic.gdx.math.Vector2; 5 | import com.uwsoft.editor.utils.TransformCommandBuilder; 6 | 7 | /** 8 | * Created by Sasun Poghosyan on 4/13/2016. 9 | */ 10 | public interface ITransformStrategy { 11 | void calculate(float mouseDx, float mouseDy, int anchor, Entity entity, TransformCommandBuilder transformCommandBuilder, Vector2 mousePoint, float lastTransformAngle, float lastEntityAngle); 12 | } 13 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/FollowersUI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.Group; 22 | 23 | /** 24 | * Created by azakhary on 5/20/2015. 25 | */ 26 | public class FollowersUI extends Group { 27 | 28 | 29 | public FollowersUI() { 30 | 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/box/UIBaseBox.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.box; 20 | 21 | import com.kotcrab.vis.ui.widget.VisTable; 22 | import com.uwsoft.editor.Overlap2DFacade; 23 | 24 | /** 25 | * Created by azakhary on 4/15/2015. 26 | */ 27 | public abstract class UIBaseBox extends VisTable { 28 | 29 | protected final Overlap2DFacade facade; 30 | 31 | public UIBaseBox() { 32 | super(); 33 | facade = Overlap2DFacade.getInstance(); 34 | } 35 | 36 | public abstract void update(); 37 | } 38 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/box/resourcespanel/UILibraryItemsTab.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.box.resourcespanel; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.Actor; 22 | import com.badlogic.gdx.utils.Array; 23 | import com.kotcrab.vis.ui.widget.VisScrollPane; 24 | import com.kotcrab.vis.ui.widget.VisTable; 25 | import com.uwsoft.editor.view.ui.box.resourcespanel.draggable.DraggableResource; 26 | 27 | /** 28 | * Created by azakhary on 4/17/2015. 29 | */ 30 | public class UILibraryItemsTab extends UIResourcesTab { 31 | 32 | private VisTable list; 33 | 34 | @Override 35 | public String getTabTitle() { 36 | return " Library "; 37 | } 38 | 39 | @Override 40 | protected VisScrollPane crateScrollPane() { 41 | list = new VisTable(); 42 | return new VisScrollPane(list); 43 | } 44 | 45 | public void setItems(Array items) { 46 | list.clear(); 47 | for (DraggableResource box : items) { 48 | list.add((Actor) box.getViewComponent()).expandX().fillX(); 49 | list.row(); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/box/resourcespanel/draggable/DraggableResourceView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.box.resourcespanel.draggable; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.Actor; 22 | import com.commons.ResourcePayloadObject; 23 | 24 | /** 25 | * Created by sargis on 5/7/15. 26 | */ 27 | public interface DraggableResourceView { 28 | Actor getDragActor(); 29 | 30 | ResourcePayloadObject getPayloadData(); 31 | } 32 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/dialog/TagItem.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.dialog; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.InputEvent; 4 | import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; 5 | import com.kotcrab.vis.ui.widget.*; 6 | 7 | /** 8 | * Created by CyberJoe on 8/1/2015. 9 | */ 10 | public class TagItem extends VisTable { 11 | 12 | private VisTextButton tagLbl; 13 | 14 | private TagItemListener listener; 15 | 16 | public interface TagItemListener { 17 | public void removed(String tag); 18 | } 19 | 20 | public TagItem(String tag, TagItemListener listener) { 21 | this.listener = listener; 22 | tagLbl = new VisTextButton(tag, "tagBtn"); 23 | VisImageButton closeBtn = new VisImageButton("close-panel"); 24 | add(tagLbl).width(180); 25 | add(closeBtn).padLeft(5); 26 | 27 | closeBtn.addListener(new ClickListener() { 28 | @Override 29 | public void clicked (InputEvent event, float x, float y) { 30 | TagItem.this.remove(); 31 | listener.removed(tagLbl.getText().toString()); 32 | } 33 | 34 | }); 35 | } 36 | 37 | public String getTagName() { 38 | return tagLbl.getText().toString(); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/followers/EmptyTransformationListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.followers; 20 | 21 | /** 22 | * Created by azakhary on 5/22/2015. 23 | */ 24 | public class EmptyTransformationListener implements FollowerTransformationListener { 25 | 26 | @Override 27 | public void anchorDown(NormalSelectionFollower follower, int anchor, float x, float y) { 28 | 29 | } 30 | 31 | @Override 32 | public void anchorDragged(NormalSelectionFollower follower, int anchor, float x, float y) { 33 | 34 | } 35 | 36 | @Override 37 | public void anchorUp(NormalSelectionFollower follower, int anchor, float x, float y) { 38 | 39 | } 40 | 41 | @Override 42 | public void anchorMouseEnter(NormalSelectionFollower follower, int anchor, float x, float y) { 43 | 44 | } 45 | 46 | @Override 47 | public void anchorMouseExit(NormalSelectionFollower follower, int anchor, float x, float y) { 48 | 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/followers/FollowerFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.followers; 20 | 21 | import com.badlogic.ashley.core.Entity; 22 | import com.uwsoft.editor.renderer.factory.EntityFactory; 23 | import com.uwsoft.editor.utils.runtime.EntityUtils; 24 | 25 | /** 26 | * Created by azakhary on 5/21/2015. 27 | */ 28 | public class FollowerFactory { 29 | 30 | public static BasicFollower createFollower(Entity entity) { 31 | switch (EntityUtils.getType(entity)) { 32 | case EntityFactory.IMAGE_TYPE: 33 | return new ImageFollower(entity); 34 | case EntityFactory.LIGHT_TYPE: 35 | return new LightFollower(entity); 36 | case EntityFactory.LABEL_TYPE: 37 | return new LabelFollower(entity); 38 | case EntityFactory.PARTICLE_TYPE: 39 | return new ParticleFollower(entity); 40 | } 41 | 42 | return new NormalSelectionFollower(entity); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/followers/FollowerTransformationListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.followers; 20 | 21 | /** 22 | * Created by azakhary on 5/22/2015. 23 | */ 24 | public interface FollowerTransformationListener { 25 | void anchorDown(NormalSelectionFollower follower, int anchor, float x, float y); 26 | void anchorDragged(NormalSelectionFollower follower, int anchor, float x, float y); 27 | void anchorUp(NormalSelectionFollower follower, int anchor, float x, float y); 28 | void anchorMouseEnter(NormalSelectionFollower follower, int anchor, float x, float y); 29 | void anchorMouseExit(NormalSelectionFollower follower, int anchor, float x, float y); 30 | } 31 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/followers/ImageFollower.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.followers; 2 | 3 | import com.badlogic.ashley.core.Entity; 4 | import com.uwsoft.editor.renderer.components.TextureRegionComponent; 5 | import com.uwsoft.editor.renderer.utils.ComponentRetriever; 6 | 7 | /** 8 | * Created by CyberJoe on 8/2/2015. 9 | */ 10 | public class ImageFollower extends NormalSelectionFollower { 11 | 12 | 13 | public ImageFollower(Entity entity) { 14 | super(entity); 15 | } 16 | 17 | @Override 18 | public void update() { 19 | TextureRegionComponent textureRegionComponent = ComponentRetriever.get(getEntity(), TextureRegionComponent.class); 20 | if(textureRegionComponent.isPolygon) { 21 | pixelRect.setVisible(false); 22 | } else { 23 | pixelRect.setVisible(true); 24 | } 25 | super.update(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/followers/ParticleFollower.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.followers; 20 | 21 | import com.badlogic.ashley.core.Entity; 22 | import com.badlogic.gdx.scenes.scene2d.Touchable; 23 | import com.badlogic.gdx.scenes.scene2d.ui.Image; 24 | import com.kotcrab.vis.ui.VisUI; 25 | 26 | /** 27 | * Created by azakhary on 5/20/2015. 28 | */ 29 | public class ParticleFollower extends BasicFollower { 30 | 31 | public ParticleFollower(Entity entity) { 32 | super(entity); 33 | } 34 | 35 | @Override 36 | public void create() { 37 | Image icon = new Image(VisUI.getSkin().getDrawable("icon-particle-over")); 38 | icon.setTouchable(Touchable.disabled); 39 | icon.setX(-icon.getWidth()/2); 40 | icon.setY(-icon.getHeight()/2); 41 | icon.getColor().a = 0.3f; 42 | addActor(icon); 43 | } 44 | 45 | @Override 46 | public void hide() { 47 | // you cannot hide particle follower 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/followers/PolygonTransformationListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.followers; 20 | 21 | /** 22 | * Created by azakhary on 7/3/2015. 23 | */ 24 | public interface PolygonTransformationListener { 25 | 26 | public abstract void vertexUp(PolygonFollower follower, int vertexIndex, float x, float y); 27 | public abstract void vertexDown(PolygonFollower follower, int vertexIndex, float x, float y); 28 | public abstract void VertexMouseOver(PolygonFollower follower, int vertexIndex, float x, float y); 29 | void anchorDown(PolygonFollower follower, int anchor, float x, float y); 30 | void anchorDragged(PolygonFollower follower, int anchor, float x, float y); 31 | void anchorUp(PolygonFollower follower, int anchor, float x, float y); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/followers/SubFollower.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.followers; 2 | 3 | import com.badlogic.ashley.core.Entity; 4 | import com.badlogic.gdx.scenes.scene2d.Actor; 5 | import com.puremvc.patterns.observer.Notification; 6 | 7 | /** 8 | * Created by CyberJoe on 7/2/2015. 9 | */ 10 | public abstract class SubFollower extends Actor { 11 | 12 | protected Entity entity; 13 | 14 | public SubFollower(Entity entity) { 15 | setItem(entity); 16 | create(); 17 | update(); 18 | } 19 | 20 | private void setItem(Entity entity) { 21 | this.entity = entity; 22 | } 23 | 24 | 25 | public void handleNotification(Notification notification) { 26 | 27 | } 28 | 29 | public abstract void create(); 30 | public abstract void update(); 31 | } 32 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/properties/UIAbstractProperties.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.properties; 20 | 21 | import com.kotcrab.vis.ui.widget.VisTable; 22 | import com.uwsoft.editor.Overlap2DFacade; 23 | 24 | /** 25 | * Created by azakhary on 4/15/2015. 26 | */ 27 | public abstract class UIAbstractProperties extends VisTable { 28 | 29 | protected final Overlap2DFacade facade; 30 | 31 | public UIAbstractProperties() { 32 | facade = Overlap2DFacade.getInstance(); 33 | } 34 | 35 | public String getPrefix() { 36 | return "com.uwsoft.editor.view.ui.properties"; 37 | } 38 | 39 | public String getUpdateEventName() { 40 | return getPrefix()+"." + "PROPERTIES_UPDATED"; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/properties/panels/UIImageItemProperties.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.properties.panels; 2 | 3 | import com.badlogic.gdx.utils.Align; 4 | import com.kotcrab.vis.ui.widget.VisSelectBox; 5 | import com.uwsoft.editor.event.SelectBoxChangeListener; 6 | import com.uwsoft.editor.view.ui.properties.UIItemCollapsibleProperties; 7 | 8 | /** 9 | * Created by azakhary on 8/2/2015. 10 | */ 11 | public class UIImageItemProperties extends UIItemCollapsibleProperties { 12 | 13 | private VisSelectBox renderModeBox; 14 | private VisSelectBox spriteTypeBox; 15 | 16 | public UIImageItemProperties() { 17 | super("Render Properties"); 18 | 19 | renderModeBox = new VisSelectBox<>(); 20 | spriteTypeBox = new VisSelectBox<>(); 21 | 22 | renderModeBox.setItems("REPEAT"); 23 | spriteTypeBox.setItems("SQUARE", "POLYGON"); 24 | 25 | mainTable.add(createLabel("Render Mode:", Align.right)).padRight(5).width(90).left(); 26 | mainTable.add(renderModeBox).left().width(90).padRight(5); 27 | mainTable.row().padTop(5); 28 | mainTable.add(createLabel("Sprite Type:", Align.right)).padRight(5).width(90).left(); 29 | mainTable.add(spriteTypeBox).left().width(90).padRight(5); 30 | mainTable.row().padTop(5); 31 | 32 | collapse(); 33 | 34 | renderModeBox.addListener(new SelectBoxChangeListener(getUpdateEventName())); 35 | spriteTypeBox.addListener(new SelectBoxChangeListener(getUpdateEventName())); 36 | } 37 | 38 | public void setRenderMode(String mode) { 39 | renderModeBox.setSelected(mode); 40 | } 41 | 42 | public String getRenderMode() { 43 | return renderModeBox.getSelected().toString(); 44 | } 45 | 46 | public void setSpriteType(String mode) { 47 | spriteTypeBox.setSelected(mode); 48 | } 49 | 50 | public String getSpriteType() { 51 | return spriteTypeBox.getSelected().toString(); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/properties/panels/UITextToolProperties.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.properties.panels; 2 | 3 | 4 | /** 5 | * Created by azakhary on 4/24/15. 6 | */ 7 | public class UITextToolProperties extends UILabelItemProperties { 8 | 9 | public static final String prefix = "com.uwsoft.editor.view.ui.properties.panels.UITextToolProperties"; 10 | 11 | public static final String FONT_FAMILY_SELECTED = prefix + ".FONT_FAMILY_SELECTED"; 12 | 13 | public UITextToolProperties() { 14 | super(); 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/properties/panels/UITextToolPropertiesMediator.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.properties.panels; 2 | 3 | import com.uwsoft.editor.Overlap2DFacade; 4 | import com.uwsoft.editor.proxy.FontManager; 5 | import com.uwsoft.editor.view.stage.tools.TextTool; 6 | import com.uwsoft.editor.view.ui.properties.UIAbstractPropertiesMediator; 7 | 8 | /** 9 | * Created by avetiszakharyan on 4/24/15. 10 | */ 11 | public class UITextToolPropertiesMediator extends UIAbstractPropertiesMediator { 12 | 13 | private static final String TAG = UITextToolPropertiesMediator.class.getCanonicalName(); 14 | public static final String NAME = TAG; 15 | 16 | private FontManager fontManager; 17 | 18 | public UITextToolPropertiesMediator() { 19 | super(NAME, new UITextToolProperties()); 20 | } 21 | 22 | @Override 23 | public void onRegister() { 24 | facade = Overlap2DFacade.getInstance(); 25 | fontManager = facade.retrieveProxy(FontManager.NAME); 26 | viewComponent.setFontFamilyList(fontManager.getFontNamesFromMap()); 27 | } 28 | 29 | @Override 30 | protected void translateObservableDataToView(TextTool item) { 31 | viewComponent.setFontFamily(item.getFontFamily()); 32 | viewComponent.setFontSize(item.getFontSize()); 33 | } 34 | 35 | @Override 36 | public void setItem(TextTool settings) { 37 | super.setItem(settings); 38 | observableReference.setFontFamily(viewComponent.getFontFamily()); 39 | 40 | } 41 | 42 | @Override 43 | protected void translateViewToItemData() { 44 | observableReference.setFontFamily(viewComponent.getFontFamily()); 45 | observableReference.setFontSize(viewComponent.getFontSize()); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/validator/NewProjectDialogValidator.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.validator; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.Stage; 4 | import com.kotcrab.vis.ui.util.dialog.Dialogs; 5 | import com.kotcrab.vis.ui.widget.VisValidatableTextField; 6 | import org.apache.commons.lang3.StringUtils; 7 | 8 | public class NewProjectDialogValidator { 9 | public boolean validate(Stage stage, VisValidatableTextField projectName) { 10 | if (StringUtils.isEmpty(projectName.getText()) || StringUtils.endsWith(projectName.getText(), " ")) { 11 | Dialogs.showErrorDialog(stage, "Please input a valid project name"); 12 | return false; 13 | } 14 | return true; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/widget/EmptyTarget.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.widget; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.Actor; 22 | 23 | /** 24 | * Created by azakhary on 6/9/2015. 25 | */ 26 | public class EmptyTarget extends Actor { 27 | 28 | public EmptyTarget(float width, float height) { 29 | this.setWidth(width); 30 | this.setHeight(height); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/widget/O2DLogo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.widget; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.ui.Skin; 22 | import com.kotcrab.vis.ui.VisUI; 23 | import com.kotcrab.vis.ui.widget.VisImage; 24 | import com.kotcrab.vis.ui.widget.VisTable; 25 | 26 | /** 27 | * Created by sargis on 4/23/15. 28 | */ 29 | public class O2DLogo extends VisTable { 30 | public O2DLogo() { 31 | Skin skin = VisUI.getSkin(); 32 | setBackground(skin.getDrawable("menu-bg")); 33 | VisImage logo = new VisImage(VisUI.getSkin().getDrawable("logo")); 34 | add(logo).width(logo.getWidth()).height(logo.getHeight()).padLeft(7); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/widget/ProgressHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.widget; 20 | 21 | public interface ProgressHandler { 22 | 23 | public void progressStarted(); 24 | 25 | public void progressChanged(float value); 26 | 27 | public void progressComplete(); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /overlap2d/src/com/uwsoft/editor/view/ui/widget/SandboxUI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ****************************************************************************** 3 | * * Copyright 2015 See AUTHORS file. 4 | * * 5 | * * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * * you may not use this file except in compliance with the License. 7 | * * You may obtain a copy of the License at 8 | * * 9 | * * http://www.apache.org/licenses/LICENSE-2.0 10 | * * 11 | * * Unless required by applicable law or agreed to in writing, software 12 | * * distributed under the License is distributed on an "AS IS" BASIS, 13 | * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * * See the License for the specific language governing permissions and 15 | * * limitations under the License. 16 | * ***************************************************************************** 17 | */ 18 | 19 | package com.uwsoft.editor.view.ui.widget; 20 | 21 | import com.badlogic.gdx.scenes.scene2d.Group; 22 | import com.uwsoft.editor.view.ui.widget.actors.GridView; 23 | import com.uwsoft.editor.view.ui.widget.actors.ResolutionBounds; 24 | import com.uwsoft.editor.view.stage.Sandbox; 25 | 26 | public class SandboxUI extends Group { 27 | 28 | public SandboxUI(Sandbox s) { 29 | GridView gridView = new GridView(); 30 | addActor(gridView); 31 | ResolutionBounds resolutionBounds = new ResolutionBounds(s); 32 | addActor(resolutionBounds); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /overlap2d/test/java/com/puremvc/core/CoreModelTest.java: -------------------------------------------------------------------------------- 1 | package com.puremvc.core; 2 | 3 | import com.puremvc.patterns.proxy.Proxy; 4 | import org.junit.Before; 5 | import org.junit.Test; 6 | import org.mockito.Mock; 7 | import org.mockito.internal.util.reflection.Whitebox; 8 | 9 | import java.util.Map; 10 | 11 | import static org.hamcrest.CoreMatchers.is; 12 | import static org.junit.Assert.assertThat; 13 | import static org.mockito.BDDMockito.given; 14 | import static org.mockito.Mockito.verify; 15 | import static org.mockito.MockitoAnnotations.initMocks; 16 | 17 | public class CoreModelTest { 18 | private CoreModel coreModel; 19 | 20 | @Mock 21 | private Proxy proxy; 22 | 23 | @Before 24 | public void setUp() throws Exception { 25 | initMocks(this); 26 | coreModel = new CoreModel(); 27 | given(proxy.getProxyName()).willReturn("defaultProxyName"); 28 | } 29 | 30 | @Test 31 | public void shouldAbleToRegisterProxyWithProxyName() throws Exception { 32 | coreModel.registerProxy(proxy); 33 | 34 | Map proxyMap = getProxyMap(); 35 | assertThat(proxyMap.size(), is(1)); 36 | assertThat(proxyMap.get("defaultProxyName"), is(proxy)); 37 | verify(proxy).onRegister(); 38 | } 39 | 40 | @Test 41 | public void shouldAbleToRemoveProxy() throws Exception { 42 | coreModel.registerProxy(proxy); 43 | 44 | coreModel.removeProxy("defaultProxyName"); 45 | 46 | Map proxyMap = getProxyMap(); 47 | assertThat(proxyMap.size(), is(0)); 48 | verify(proxy).onRemove(); 49 | } 50 | 51 | private Map getProxyMap() { 52 | return (Map) Whitebox.getInternalState(coreModel, "proxyMap"); 53 | } 54 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/runner/NeedGL.java: -------------------------------------------------------------------------------- 1 | package com.runner; 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 | /** 9 | * Use this annotation to have gl in test thread 10 | */ 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Target({ElementType.METHOD}) 13 | public @interface NeedGL { 14 | } 15 | -------------------------------------------------------------------------------- /overlap2d/test/java/com/runner/exception/LibgdxInitException.java: -------------------------------------------------------------------------------- 1 | package com.runner.exception; 2 | 3 | public class LibgdxInitException extends RuntimeException { 4 | public LibgdxInitException(Throwable cause) { 5 | super("Libgdx application init failed", cause); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /overlap2d/test/java/com/runner/exception/TimeoutException.java: -------------------------------------------------------------------------------- 1 | package com.runner.exception; 2 | 3 | public class TimeoutException extends RuntimeException { 4 | public TimeoutException(String description) { 5 | super(description); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /overlap2d/test/java/com/runner/util/Condition.java: -------------------------------------------------------------------------------- 1 | package com.runner.util; 2 | 3 | public interface Condition { 4 | /** 5 | * Return true when no need to wait 6 | */ 7 | Boolean check(); 8 | } 9 | -------------------------------------------------------------------------------- /overlap2d/test/java/com/runner/util/ConditionWaiter.java: -------------------------------------------------------------------------------- 1 | package com.runner.util; 2 | 3 | import com.runner.exception.TimeoutException; 4 | import org.junit.runner.Description; 5 | 6 | import java.util.concurrent.TimeUnit; 7 | 8 | public class ConditionWaiter { 9 | public static void wait(Condition condition, String message, final int maxCount, final Runnable runnable) { 10 | int current = 0; 11 | while (!condition.check()) { 12 | try { 13 | TimeUnit.SECONDS.sleep(1); 14 | } catch (InterruptedException e) { 15 | 16 | } 17 | current++; 18 | if (current > maxCount) { 19 | if (runnable != null) { 20 | runnable.run(); 21 | } 22 | throw new TimeoutException(message); 23 | } 24 | } 25 | } 26 | 27 | public static void wait(Condition condition, String message, final int maxCount) { 28 | wait(condition, message, maxCount, null); 29 | } 30 | 31 | public static void wait(Condition condition, Description description, final int maxCount, final Runnable runnable) { 32 | wait(condition, "timeout! " + description.toString(), maxCount, runnable); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/controller/BootstrapPluginsTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller; 2 | 3 | import com.puremvc.patterns.observer.BaseNotification; 4 | import com.uwsoft.editor.Overlap2DFacade; 5 | import com.uwsoft.editor.proxy.PluginManager; 6 | import com.uwsoft.editor.proxy.ProjectManager; 7 | import org.junit.Before; 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | import org.mockito.Mock; 11 | import org.powermock.api.mockito.PowerMockito; 12 | import org.powermock.core.classloader.annotations.PrepareForTest; 13 | import org.powermock.modules.junit4.PowerMockRunner; 14 | 15 | import static org.mockito.BDDMockito.given; 16 | import static org.mockito.Mockito.verify; 17 | import static org.mockito.MockitoAnnotations.initMocks; 18 | import static org.powermock.api.mockito.PowerMockito.whenNew; 19 | 20 | @RunWith(PowerMockRunner.class) 21 | @PrepareForTest({Overlap2DFacade.class, PluginManager.class, BootstrapPlugins.class}) 22 | public class BootstrapPluginsTest { 23 | private BootstrapPlugins bootstrapPlugins; 24 | @Mock 25 | private Overlap2DFacade overlap2DFacade; 26 | 27 | @Mock 28 | private ProjectManager projectManager; 29 | @Mock 30 | private PluginManager pluginManager; 31 | 32 | @Before 33 | public void setUp() throws Exception { 34 | initMocks(this); 35 | PowerMockito.mockStatic(Overlap2DFacade.class); 36 | PowerMockito.when(Overlap2DFacade.getInstance()).thenReturn(overlap2DFacade); 37 | whenNew(PluginManager.class).withNoArguments().thenReturn(pluginManager); 38 | given(overlap2DFacade.retrieveProxy(ProjectManager.NAME)).willReturn(projectManager); 39 | bootstrapPlugins = new BootstrapPlugins(); 40 | } 41 | 42 | @Test 43 | public void shouldInitAllPlugins() throws Exception { 44 | bootstrapPlugins.execute(new BaseNotification("baseNotification")); 45 | 46 | verify(overlap2DFacade).registerProxy(this.pluginManager); 47 | } 48 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/controller/BootstrapProxyCommandTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.controller; 2 | 3 | import com.puremvc.patterns.observer.BaseNotification; 4 | import com.puremvc.patterns.proxy.Proxy; 5 | import com.uwsoft.editor.Overlap2DFacade; 6 | import com.uwsoft.editor.proxy.CursorManager; 7 | import org.junit.Before; 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | import org.mockito.Mock; 11 | import org.powermock.api.mockito.PowerMockito; 12 | import org.powermock.core.classloader.annotations.PrepareForTest; 13 | import org.powermock.modules.junit4.PowerMockRunner; 14 | 15 | import static org.mockito.Matchers.any; 16 | import static org.mockito.Mockito.times; 17 | import static org.mockito.Mockito.verify; 18 | import static org.mockito.MockitoAnnotations.initMocks; 19 | 20 | @RunWith(PowerMockRunner.class) 21 | @PrepareForTest({Overlap2DFacade.class, CursorManager.class, BootstrapProxyCommand.class}) 22 | public class BootstrapProxyCommandTest { 23 | private BootstrapProxyCommand bootstrapProxyCommand; 24 | 25 | @Mock 26 | private Overlap2DFacade overlap2DFacade; 27 | @Mock 28 | private CursorManager cursorManager; 29 | 30 | @Before 31 | public void setUp() throws Exception { 32 | initMocks(this); 33 | PowerMockito.mockStatic(Overlap2DFacade.class); 34 | PowerMockito.when(Overlap2DFacade.getInstance()).thenReturn(overlap2DFacade); 35 | PowerMockito.whenNew(CursorManager.class).withNoArguments().thenReturn(cursorManager); 36 | bootstrapProxyCommand = new BootstrapProxyCommand(); 37 | } 38 | 39 | @Test 40 | public void shouldRegisterAllProxy() throws Exception { 41 | bootstrapProxyCommand.execute(new BaseNotification("baseNotification")); 42 | 43 | verify(overlap2DFacade, times(8)).registerProxy(any(Proxy.class)); 44 | } 45 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/event/ButtonToNotificationListenerTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.event; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.InputEvent; 4 | import com.uwsoft.editor.Overlap2DFacade; 5 | import org.junit.Before; 6 | import org.junit.Test; 7 | import org.junit.runner.RunWith; 8 | import org.mockito.Mock; 9 | import org.powermock.core.classloader.annotations.PrepareForTest; 10 | import org.powermock.modules.junit4.PowerMockRunner; 11 | 12 | import static org.mockito.Matchers.eq; 13 | import static org.mockito.Mockito.verify; 14 | import static org.mockito.MockitoAnnotations.initMocks; 15 | import static org.powermock.api.mockito.PowerMockito.mockStatic; 16 | import static org.powermock.api.mockito.PowerMockito.when; 17 | 18 | @RunWith(PowerMockRunner.class) 19 | @PrepareForTest(Overlap2DFacade.class) 20 | public class ButtonToNotificationListenerTest { 21 | private ButtonToNotificationListener buttonToNotificationListener; 22 | @Mock 23 | private Overlap2DFacade overlap2DFacade; 24 | 25 | @Before 26 | public void setUp() throws Exception { 27 | initMocks(this); 28 | mockStatic(Overlap2DFacade.class); 29 | when(Overlap2DFacade.getInstance()).thenReturn(overlap2DFacade); 30 | buttonToNotificationListener = new ButtonToNotificationListener("test"); 31 | } 32 | 33 | @Test 34 | public void shouldSendNotifyAfterButtonClicked() throws Exception { 35 | buttonToNotificationListener.touchUp(new InputEvent(), 0, 0, 0, 0); 36 | 37 | verify(overlap2DFacade).sendNotification(eq("test")); 38 | } 39 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/event/CheckBoxChangeListenerTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.event; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; 4 | import com.kotcrab.vis.ui.widget.VisCheckBox; 5 | import com.uwsoft.editor.Overlap2DFacade; 6 | import org.junit.Before; 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | import org.mockito.Mock; 10 | import org.powermock.core.classloader.annotations.PrepareForTest; 11 | import org.powermock.modules.junit4.PowerMockRunner; 12 | 13 | import static org.mockito.BDDMockito.given; 14 | import static org.mockito.Matchers.eq; 15 | import static org.mockito.Mockito.mock; 16 | import static org.mockito.Mockito.verify; 17 | import static org.mockito.MockitoAnnotations.initMocks; 18 | import static org.powermock.api.mockito.PowerMockito.mockStatic; 19 | import static org.powermock.api.mockito.PowerMockito.when; 20 | 21 | @RunWith(PowerMockRunner.class) 22 | @PrepareForTest(Overlap2DFacade.class) 23 | public class CheckBoxChangeListenerTest { 24 | @Mock 25 | private Overlap2DFacade overlap2DFacade; 26 | private CheckBoxChangeListener checkBoxChangeListener; 27 | 28 | @Before 29 | public void setUp() throws Exception { 30 | initMocks(this); 31 | mockStatic(Overlap2DFacade.class); 32 | when(Overlap2DFacade.getInstance()).thenReturn(overlap2DFacade); 33 | checkBoxChangeListener = new CheckBoxChangeListener("test"); 34 | } 35 | 36 | @Test 37 | public void shouldSendCheckBoxStatus() throws Exception { 38 | VisCheckBox visCheckBox = mock(VisCheckBox.class); 39 | given(visCheckBox.isChecked()).willReturn(true); 40 | checkBoxChangeListener.changed(mock(ChangeListener.ChangeEvent.class), visCheckBox); 41 | 42 | verify(overlap2DFacade).sendNotification(eq("test"), eq(true)); 43 | } 44 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/event/ClickNotifierTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.event; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.InputEvent; 4 | import com.uwsoft.editor.Overlap2DFacade; 5 | import org.junit.Before; 6 | import org.junit.Test; 7 | import org.junit.runner.RunWith; 8 | import org.mockito.Mock; 9 | import org.powermock.api.mockito.PowerMockito; 10 | import org.powermock.core.classloader.annotations.PrepareForTest; 11 | import org.powermock.modules.junit4.PowerMockRunner; 12 | 13 | import static org.mockito.Matchers.eq; 14 | import static org.mockito.Mockito.verify; 15 | 16 | @RunWith(PowerMockRunner.class) 17 | @PrepareForTest(Overlap2DFacade.class) 18 | public class ClickNotifierTest { 19 | private ClickNotifier clickNotifier; 20 | @Mock 21 | private Overlap2DFacade overlap2DFacade; 22 | 23 | @Before 24 | public void setUp() throws Exception { 25 | PowerMockito.mockStatic(Overlap2DFacade.class); 26 | PowerMockito.when(Overlap2DFacade.getInstance()).thenReturn(overlap2DFacade); 27 | clickNotifier = new ClickNotifier("event"); 28 | } 29 | 30 | @Test 31 | public void shouldSendNotification() throws Exception { 32 | clickNotifier.clicked(new InputEvent(), 0, 0); 33 | 34 | verify(overlap2DFacade).sendNotification(eq("event")); 35 | } 36 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/event/EditableSelectBoxChangeListenerTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.event; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; 4 | import com.uwsoft.editor.view.ui.widget.EditableSelectBox; 5 | import org.junit.Before; 6 | import org.junit.Test; 7 | import org.mockito.internal.util.reflection.Whitebox; 8 | 9 | import static org.hamcrest.CoreMatchers.is; 10 | import static org.junit.Assert.assertThat; 11 | import static org.mockito.BDDMockito.given; 12 | import static org.mockito.Mockito.mock; 13 | 14 | public class EditableSelectBoxChangeListenerTest { 15 | 16 | private EditableSelectBoxChangeListener editableSelectBoxChangeListener; 17 | 18 | @Before 19 | public void setUp() throws Exception { 20 | editableSelectBoxChangeListener = new EditableSelectBoxChangeListener("test"); 21 | } 22 | 23 | @Test 24 | public void shouldUpdateLastValue() throws Exception { 25 | EditableSelectBox editableSelectBox = mock(EditableSelectBox.class); 26 | given(editableSelectBox.getSelected()).willReturn("last-value"); 27 | editableSelectBoxChangeListener.changed(mock(ChangeListener.ChangeEvent.class), editableSelectBox); 28 | 29 | Object lastSelected = Whitebox.getInternalState(editableSelectBoxChangeListener, "lastSelected"); 30 | assertThat(lastSelected, is("last-value")); 31 | } 32 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/event/NumberSelectorOverlapListenerTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.event; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; 4 | import com.badlogic.gdx.utils.Pools; 5 | import com.uwsoft.editor.Overlap2DFacade; 6 | import org.junit.Before; 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | import org.mockito.Mock; 10 | import org.powermock.api.mockito.PowerMockito; 11 | import org.powermock.core.classloader.annotations.PrepareForTest; 12 | import org.powermock.modules.junit4.PowerMockRunner; 13 | 14 | import static org.mockito.Matchers.eq; 15 | import static org.mockito.Mockito.verify; 16 | 17 | @RunWith(PowerMockRunner.class) 18 | @PrepareForTest(Overlap2DFacade.class) 19 | public class NumberSelectorOverlapListenerTest { 20 | @Mock 21 | private Overlap2DFacade overlap2DFacade; 22 | private NumberSelectorOverlapListener numberSelectorOverlapListener; 23 | 24 | @Before 25 | public void setUp() throws Exception { 26 | PowerMockito.mockStatic(Overlap2DFacade.class); 27 | PowerMockito.when(Overlap2DFacade.getInstance()).thenReturn(overlap2DFacade); 28 | numberSelectorOverlapListener = new NumberSelectorOverlapListener("test"); 29 | } 30 | 31 | @Test 32 | public void shouldSendNumber() throws Exception { 33 | //FIXME 34 | // ChangeListener.ChangeEvent changeEvent = 35 | // Pools.obtain(ChangeListener.ChangeEvent.class); 36 | // numberSelectorOverlapListener.changed(changeEvent, ); 37 | 38 | // verify(overlap2DFacade).sendNotification(eq("test"), eq(1f)); 39 | } 40 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/event/SelectBoxChangeListenerTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.event; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.ChangeEvent; 4 | import com.kotcrab.vis.ui.widget.VisSelectBox; 5 | import org.junit.Before; 6 | import org.junit.Test; 7 | import org.mockito.internal.util.reflection.Whitebox; 8 | 9 | import static org.hamcrest.CoreMatchers.is; 10 | import static org.junit.Assert.assertThat; 11 | import static org.mockito.BDDMockito.given; 12 | import static org.mockito.Mockito.mock; 13 | 14 | public class SelectBoxChangeListenerTest { 15 | 16 | private SelectBoxChangeListener selectBoxChangeListener; 17 | 18 | @Before 19 | public void setUp() throws Exception { 20 | selectBoxChangeListener = new SelectBoxChangeListener("test"); 21 | } 22 | 23 | @Test 24 | public void shouldUpdateSelectedValueWhenSelectBoxChanged() throws Exception { 25 | ChangeEvent changeEvent = mock(ChangeEvent.class); 26 | VisSelectBox visSelectBox = mock(VisSelectBox.class); 27 | given(visSelectBox.getSelected()).willReturn("new-selected"); 28 | selectBoxChangeListener.changed(changeEvent, visSelectBox); 29 | 30 | Object lastSelected = Whitebox.getInternalState(selectBoxChangeListener, "lastSelected"); 31 | assertThat(lastSelected, is("new-selected")); 32 | } 33 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/proxy/FontManagerTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.proxy; 2 | 3 | import com.badlogic.gdx.utils.Array; 4 | import com.runner.LibgdxRunner; 5 | import org.junit.Before; 6 | import org.junit.Test; 7 | import org.junit.runner.RunWith; 8 | 9 | import java.io.File; 10 | import java.util.HashMap; 11 | 12 | import static org.hamcrest.CoreMatchers.is; 13 | import static org.hamcrest.Matchers.greaterThanOrEqualTo; 14 | import static org.junit.Assert.assertThat; 15 | 16 | @RunWith(LibgdxRunner.class) 17 | public class FontManagerTest { 18 | private FontManager fontManager; 19 | 20 | @Before 21 | public void setUp() throws Exception { 22 | fontManager = new FontManager(); 23 | fontManager.onRegister(); 24 | } 25 | 26 | @Test 27 | public void shouldValidGetFontPath() throws Exception { 28 | Array fontNames = fontManager.getFontNamesFromMap(); 29 | 30 | assertThat(fontNames.size, greaterThanOrEqualTo(0)); 31 | 32 | if (fontNames.size > 0) { 33 | String fontFilePath = fontManager.getFontFilePath(fontNames.random()); 34 | assertThat(new File(fontFilePath).exists(), is(true)); 35 | } 36 | } 37 | 38 | @Test 39 | public void shouldFontMap() throws Exception { 40 | HashMap fontNamesFromMap = fontManager.getFontsMap(); 41 | 42 | assertThat(fontNamesFromMap.size(), greaterThanOrEqualTo(0)); 43 | } 44 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/utils/AppConfigTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.utils; 2 | 3 | import com.google.common.base.Charsets; 4 | import com.google.common.io.Files; 5 | import org.apache.commons.lang3.StringUtils; 6 | import org.junit.Before; 7 | import org.junit.Test; 8 | 9 | import java.io.File; 10 | import java.util.regex.Matcher; 11 | import java.util.regex.Pattern; 12 | 13 | import static org.hamcrest.CoreMatchers.is; 14 | import static org.junit.Assert.assertThat; 15 | 16 | public class AppConfigTest { 17 | private AppConfig appConfig; 18 | 19 | @Before 20 | public void setUp() throws Exception { 21 | appConfig = AppConfig.getInstance(); 22 | } 23 | 24 | @Test 25 | public void shouldGetRightVersion() throws Exception { 26 | String expectedVersion = StringUtils.EMPTY; 27 | String build = Files.toString(new File("build.gradle"), Charsets.UTF_8); 28 | Pattern pattern = Pattern.compile("version( {0,})=( {0,})'(\\d.\\d.\\d)'"); 29 | Matcher matcher = pattern.matcher(build); 30 | if (matcher.find()) { 31 | expectedVersion = matcher.group(3); 32 | } 33 | assertThat(appConfig.version, is(expectedVersion)); 34 | } 35 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/utils/poly/PolygonUtilsTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.utils.poly; 2 | 3 | import com.badlogic.gdx.math.Vector2; 4 | import org.junit.Test; 5 | 6 | import static org.hamcrest.CoreMatchers.is; 7 | import static org.junit.Assert.assertThat; 8 | 9 | public class PolygonUtilsTest { 10 | @Test 11 | public void shouldGetCorrectSignedArea() throws Exception { 12 | Vector2[] vector2s = {new Vector2(0, 0), new Vector2(1, 0), new Vector2(0, 1)}; 13 | float polygonSignedArea = PolygonUtils.getPolygonSignedArea(vector2s); 14 | 15 | assertThat(polygonSignedArea, is(0.5f)); 16 | } 17 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/utils/runtime/ComponentClonerTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.utils.runtime; 2 | 3 | import com.badlogic.ashley.core.Component; 4 | import com.google.common.collect.Lists; 5 | import org.junit.Test; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | import static org.hamcrest.CoreMatchers.is; 11 | import static org.junit.Assert.assertThat; 12 | 13 | public class ComponentClonerTest { 14 | @Test 15 | public void shouldCloneWithDifferentTypeField() throws Exception { 16 | TestComponent testComponent = new TestComponent(); 17 | testComponent.i = 10; 18 | testComponent.s = "Text"; 19 | testComponent.lb = Lists.newArrayList(false, true); 20 | 21 | TestComponent clone = ComponentCloner.get(testComponent); 22 | 23 | assertThat(clone.i, is(10)); 24 | assertThat(clone.s, is("Text")); 25 | assertThat(clone.lb, is(Lists.newArrayList(false, true))); 26 | } 27 | 28 | private static class TestComponent implements Component { 29 | public int i; 30 | public String s; 31 | public List lb; 32 | 33 | public TestComponent() { 34 | lb = new ArrayList<>(); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/view/ui/dialog/CustomVariablesDialogMediatorTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.dialog; 2 | 3 | import com.badlogic.gdx.Gdx; 4 | import com.kotcrab.vis.ui.VisUI; 5 | import com.runner.LibgdxRunner; 6 | import com.runner.NeedGL; 7 | import org.junit.Before; 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.hamcrest.CoreMatchers.is; 12 | import static org.junit.Assert.assertThat; 13 | 14 | @RunWith(LibgdxRunner.class) 15 | public class CustomVariablesDialogMediatorTest { 16 | private CustomVariablesDialogMediator customVariablesDialogMediator; 17 | 18 | @Before 19 | public void setUp() throws Exception { 20 | customVariablesDialogMediator = new CustomVariablesDialogMediator(); 21 | customVariablesDialogMediator.onRegister(); 22 | } 23 | 24 | @Test 25 | @NeedGL 26 | public void shouldHaveSixListNotificationInterests() throws Exception { 27 | String[] listNotificationInterests = customVariablesDialogMediator.listNotificationInterests(); 28 | 29 | // Seriously why are we testing for notification count, what kind of bug can this prevent? 30 | //assertThat(listNotificationInterests.length, is(6)); 31 | } 32 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/view/ui/dialog/ImportDialogMediatorTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.dialog; 2 | 3 | import com.runner.LibgdxRunner; 4 | import org.junit.Before; 5 | import org.junit.Test; 6 | import org.junit.runner.RunWith; 7 | 8 | import static org.hamcrest.CoreMatchers.is; 9 | import static org.junit.Assert.assertThat; 10 | 11 | @RunWith(LibgdxRunner.class) 12 | public class ImportDialogMediatorTest { 13 | private ImportDialogMediator importDialogMediator; 14 | 15 | @Before 16 | public void setUp() throws Exception { 17 | importDialogMediator = new ImportDialogMediator(); 18 | } 19 | 20 | @Test 21 | public void shouldHaveEightNotificationInterests() throws Exception { 22 | String[] listNotificationInterests = importDialogMediator.listNotificationInterests(); 23 | 24 | assertThat(listNotificationInterests.length, is(8)); 25 | } 26 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/view/ui/dialog/ImportDialogTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.dialog; 2 | 3 | import com.badlogic.gdx.Gdx; 4 | import com.kotcrab.vis.ui.VisUI; 5 | import com.runner.LibgdxRunner; 6 | import com.runner.NeedGL; 7 | import org.junit.Before; 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | import org.mockito.internal.util.reflection.Whitebox; 11 | 12 | import java.util.HashMap; 13 | 14 | import static org.hamcrest.CoreMatchers.is; 15 | import static org.junit.Assert.assertThat; 16 | 17 | @RunWith(LibgdxRunner.class) 18 | public class ImportDialogTest { 19 | private ImportDialog importDialog; 20 | 21 | @Before 22 | public void setUp() throws Exception { 23 | importDialog = new ImportDialog(); 24 | } 25 | 26 | @Test 27 | @NeedGL 28 | public void shouldFillTypeNames() throws Exception { 29 | HashMap typeNames = (HashMap) Whitebox.getInternalState(importDialog, "typeNames"); 30 | 31 | assertThat(typeNames.size(), is(9)); 32 | assertThat(typeNames.get(1), is("Texture")); 33 | assertThat(typeNames.get(9), is("Texture Atlas")); 34 | } 35 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/view/ui/dialog/NewProjectDialogTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.dialog; 2 | 3 | import com.badlogic.gdx.Gdx; 4 | import com.kotcrab.vis.ui.VisUI; 5 | import com.runner.LibgdxRunner; 6 | import com.runner.NeedGL; 7 | import org.junit.Before; 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.hamcrest.CoreMatchers.containsString; 12 | import static org.hamcrest.CoreMatchers.is; 13 | import static org.junit.Assert.assertThat; 14 | 15 | @RunWith(LibgdxRunner.class) 16 | public class NewProjectDialogTest { 17 | private NewProjectDialog newProjectDialog; 18 | 19 | @Before 20 | public void setUp() throws Exception { 21 | newProjectDialog = new NewProjectDialog(); 22 | } 23 | 24 | @Test 25 | @NeedGL 26 | public void shouldFillDifferentValue() throws Exception { 27 | assertThat(newProjectDialog.getTitleLabel().getText().toString(), is("Create New Project")); 28 | assertThat(newProjectDialog.getOriginWidth(), is("1920")); 29 | assertThat(newProjectDialog.getOriginHeight(), is("1200")); 30 | assertThat(newProjectDialog.getPixelPerWorldUnit(), is("80")); 31 | } 32 | } -------------------------------------------------------------------------------- /overlap2d/test/java/com/uwsoft/editor/view/ui/widget/O2DLogoTest.java: -------------------------------------------------------------------------------- 1 | package com.uwsoft.editor.view.ui.widget; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.Actor; 4 | import com.runner.LibgdxRunner; 5 | import com.runner.NeedGL; 6 | import com.runner.util.UIHelper; 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import java.util.List; 11 | 12 | import static org.hamcrest.CoreMatchers.not; 13 | import static org.hamcrest.CoreMatchers.nullValue; 14 | import static org.hamcrest.Matchers.hasSize; 15 | import static org.junit.Assert.assertThat; 16 | 17 | @RunWith(LibgdxRunner.class) 18 | public class O2DLogoTest { 19 | @Test 20 | @NeedGL 21 | public void shouldAbleToGetLogo() throws Exception { 22 | O2DLogo logo = new O2DLogo(); 23 | 24 | List allActors = UIHelper.getAllActors(logo); 25 | 26 | assertThat(logo, not(nullValue())); 27 | assertThat(allActors, hasSize(1)); 28 | } 29 | } -------------------------------------------------------------------------------- /overlap2d/test/resources/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/overlap2d/test/resources/images/logo.png -------------------------------------------------------------------------------- /plugins/nine-patch/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/nine-patch/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /plugins/nine-patch/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Oct 23 12:16:47 AMT 2015 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-bin.zip 7 | -------------------------------------------------------------------------------- /plugins/nine-patch/settings.gradle: -------------------------------------------------------------------------------- 1 | include 'overlap2d-common-api' 2 | project(':overlap2d-common-api').projectDir = new File(settingsDir, '../../overlap2d-common-api') -------------------------------------------------------------------------------- /plugins/performance/.gitignore: -------------------------------------------------------------------------------- 1 | ## Java 2 | 3 | *.class 4 | *.war 5 | *.ear 6 | hs_err_pid* 7 | *.pit 8 | 9 | 10 | ## Android Studio and Intellij and Android in general 11 | android/libs/armeabi/ 12 | android/libs/armeabi-v7a/ 13 | android/libs/x86/ 14 | android/gen/ 15 | .idea/ 16 | *.ipr 17 | *.iws 18 | *.iml 19 | out/ 20 | com_crashlytics_export_strings.xml 21 | 22 | ## Eclipse 23 | .classpath 24 | .project 25 | .metadata 26 | **/bin/ 27 | tmp/ 28 | *.tmp 29 | *.bak 30 | *.swp 31 | *~.nib 32 | local.properties 33 | .settings/ 34 | .loadpath 35 | .externalToolBuilders/ 36 | *.launch 37 | 38 | ## NetBeans 39 | **/nbproject/private/ 40 | build/ 41 | nbbuild/ 42 | dist/ 43 | nbdist/ 44 | nbactions.xml 45 | nb-configuration.xml 46 | 47 | ## Gradle 48 | 49 | .gradle 50 | build/ 51 | gradle/ 52 | 53 | 54 | ## OS Specific 55 | .DS_Store 56 | /local 57 | /bin/ -------------------------------------------------------------------------------- /plugins/performance/settings.gradle: -------------------------------------------------------------------------------- 1 | include 'overlap2d-common-api' 2 | project(':overlap2d-common-api').projectDir = new File(settingsDir, '../../overlap2d-common-api') -------------------------------------------------------------------------------- /plugins/tiled/.gitignore: -------------------------------------------------------------------------------- 1 | ## Java 2 | 3 | *.class 4 | *.war 5 | *.ear 6 | hs_err_pid* 7 | *.pit 8 | 9 | 10 | ## Android Studio and Intellij and Android in general 11 | android/libs/armeabi/ 12 | android/libs/armeabi-v7a/ 13 | android/libs/x86/ 14 | android/gen/ 15 | .idea/ 16 | *.ipr 17 | *.iws 18 | *.iml 19 | out/ 20 | com_crashlytics_export_strings.xml 21 | 22 | ## Eclipse 23 | .classpath 24 | .project 25 | .metadata 26 | **/bin/ 27 | tmp/ 28 | *.tmp 29 | *.bak 30 | *.swp 31 | *~.nib 32 | local.properties 33 | .settings/ 34 | .loadpath 35 | .externalToolBuilders/ 36 | *.launch 37 | 38 | ## NetBeans 39 | **/nbproject/private/ 40 | build/ 41 | nbbuild/ 42 | dist/ 43 | nbdist/ 44 | nbactions.xml 45 | nb-configuration.xml 46 | 47 | ## Gradle 48 | 49 | .gradle 50 | build/ 51 | gradle/ 52 | 53 | 54 | ## OS Specific 55 | .DS_Store 56 | /local 57 | /bin/ -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/image-Box-active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/image-Box-active.9.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/image-Box-inactive.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/image-Box-inactive.9.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/plugin-tab-active.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/plugin-tab-active.9.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/plugin-tab-inactive.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/plugin-tab-inactive.9.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/tab-back-line.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/tab-back-line.9.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/tile-eraser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/tile-eraser.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/tile.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/tiles-drop-here-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/tiles-drop-here-normal.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/tiles-drop-here-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/tiles-drop-here-over.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/tool-tilebrush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/tool-tilebrush.png -------------------------------------------------------------------------------- /plugins/tiled/assets/textures/tool-tileeraser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnderwaterApps/overlap2d/ce6d7513d5c50bffe70386d7407a1a07512015e6/plugins/tiled/assets/textures/tool-tileeraser.png -------------------------------------------------------------------------------- /plugins/tiled/settings.gradle: -------------------------------------------------------------------------------- 1 | include 'overlap2d-common-api' 2 | project(':overlap2d-common-api').projectDir = new File(settingsDir, '../../overlap2d-common-api') -------------------------------------------------------------------------------- /plugins/tiled/src/com/overlap2d/plugins/tiled/data/AttributeVO.java: -------------------------------------------------------------------------------- 1 | package com.overlap2d.plugins.tiled.data; 2 | 3 | /** 4 | * Created by mariam on 3/31/16. 5 | */ 6 | public class AttributeVO { 7 | 8 | public String title; 9 | public float value; 10 | public boolean acceptNegativeValues; 11 | 12 | public AttributeVO() { 13 | } 14 | 15 | public AttributeVO(String title) { 16 | this.title = title+": "; 17 | } 18 | 19 | public AttributeVO(String title, boolean acceptNegativeValues) { 20 | this.title = title+": "; 21 | this.acceptNegativeValues = acceptNegativeValues; 22 | } 23 | 24 | public AttributeVO(String title, float value) { 25 | this.value = value; 26 | this.title = title+": "; 27 | } 28 | 29 | public AttributeVO(String title, float value, boolean acceptNegativeValues) { 30 | this.title = title+": "; 31 | this.value = value; 32 | this.acceptNegativeValues = acceptNegativeValues; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugins/tiled/src/com/overlap2d/plugins/tiled/data/CategoryVO.java: -------------------------------------------------------------------------------- 1 | package com.overlap2d.plugins.tiled.data; 2 | 3 | import com.badlogic.gdx.utils.Array; 4 | 5 | /** 6 | * Created by mariam on 2/5/16. 7 | */ 8 | public class CategoryVO { 9 | 10 | public String title = "size"; 11 | public Array attributes; 12 | 13 | public CategoryVO(String title, Array attributes) { 14 | this.title = title; 15 | this.attributes = attributes; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /plugins/tiled/src/com/overlap2d/plugins/tiled/data/ParameterVO.java: -------------------------------------------------------------------------------- 1 | package com.overlap2d.plugins.tiled.data; 2 | 3 | /** 4 | * Created by mariam on 3/31/16. 5 | */ 6 | public class ParameterVO { 7 | 8 | public float gridWidth; //in world units 9 | public float gridHeight; //in world units 10 | 11 | public ParameterVO() { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /plugins/tiled/src/com/overlap2d/plugins/tiled/data/TileVO.java: -------------------------------------------------------------------------------- 1 | package com.overlap2d.plugins.tiled.data; 2 | 3 | import com.badlogic.gdx.math.Vector2; 4 | 5 | /** 6 | * Created by mariam on 5/13/16. 7 | */ 8 | public class TileVO { 9 | 10 | public String regionName = ""; 11 | public Vector2 gridOffset; 12 | 13 | public TileVO() { 14 | gridOffset = new Vector2(); 15 | } 16 | 17 | public TileVO(String regionName) { 18 | this.regionName = regionName; 19 | gridOffset = new Vector2(); 20 | } 21 | 22 | public TileVO(String regionName, Vector2 offset) { 23 | this.regionName = regionName; 24 | this.gridOffset = offset; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /plugins/tiled/src/com/overlap2d/plugins/tiled/save/SaveDataManager.java: -------------------------------------------------------------------------------- 1 | package com.overlap2d.plugins.tiled.save; 2 | 3 | import com.badlogic.gdx.Gdx; 4 | import com.badlogic.gdx.files.FileHandle; 5 | import com.badlogic.gdx.utils.Json; 6 | 7 | /** 8 | * Created by mariam on 3/24/16. 9 | */ 10 | public class SaveDataManager { 11 | 12 | public DataToSave dataToSave; 13 | 14 | private Json json; 15 | private FileHandle fileHandle; 16 | 17 | 18 | public SaveDataManager(String projectPath) { 19 | json = new Json(); 20 | fileHandle = Gdx.files.absolute(projectPath + "/tiled_plugin.dt"); 21 | load(); 22 | } 23 | 24 | private void load() { 25 | if (!fileHandle.exists()) { 26 | dataToSave = new DataToSave(); 27 | return; 28 | } 29 | 30 | String jsonString = fileHandle.readString(); 31 | dataToSave = json.fromJson(DataToSave.class, jsonString); 32 | } 33 | 34 | public void save() { 35 | String dataString = json.toJson(dataToSave); 36 | fileHandle.writeString(dataString, false); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /plugins/tiled/src/com/overlap2d/plugins/tiled/view/Attribute.java: -------------------------------------------------------------------------------- 1 | package com.overlap2d.plugins.tiled.view; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.ui.Table; 4 | import com.kotcrab.vis.ui.util.FloatDigitsOnlyFilter; 5 | import com.kotcrab.vis.ui.widget.VisLabel; 6 | import com.kotcrab.vis.ui.widget.VisTextField; 7 | import com.overlap2d.plugins.tiled.data.AttributeVO; 8 | 9 | /** 10 | * Created by mariam on 2/5/16. 11 | */ 12 | public class Attribute extends Table { 13 | 14 | public Attribute(AttributeVO attributeVO) { 15 | add(new VisLabel(attributeVO.title)); 16 | VisTextField visTextField = new VisTextField(); 17 | visTextField.setTextFieldFilter(new FloatDigitsOnlyFilter(attributeVO.acceptNegativeValues)); 18 | visTextField.setMaxLength(5); 19 | visTextField.setText(attributeVO.value+""); 20 | visTextField.setTextFieldListener((VisTextField textField, char c) -> { 21 | if (!textField.getText().equals("")) { 22 | attributeVO.value = Float.parseFloat(textField.getText()); 23 | } 24 | }); 25 | add(visTextField) 26 | .width(50) 27 | .padLeft(5); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /plugins/tiled/src/com/overlap2d/plugins/tiled/view/Category.java: -------------------------------------------------------------------------------- 1 | package com.overlap2d.plugins.tiled.view; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.ui.Table; 4 | import com.badlogic.gdx.utils.Array; 5 | import com.kotcrab.vis.ui.widget.VisLabel; 6 | import com.overlap2d.plugins.tiled.data.AttributeVO; 7 | import com.overlap2d.plugins.tiled.data.CategoryVO; 8 | 9 | /** 10 | * Created by mariam on 2/5/16. 11 | */ 12 | public class Category extends Table { 13 | 14 | private CategoryVO categoryVO; 15 | private Array attributes; 16 | private Table attrTable; 17 | 18 | public Category(CategoryVO categoryVO) { 19 | this.categoryVO = categoryVO; 20 | 21 | attributes = categoryVO.attributes; 22 | 23 | // setDebug(true); 24 | 25 | VisLabel title = new VisLabel(categoryVO.title); 26 | add(title) 27 | .padTop(2) 28 | .left() 29 | .top(); 30 | 31 | attrTable = new Table(); 32 | add(attrTable) 33 | .padLeft(5); 34 | 35 | attributes.forEach(attributeVO -> addAttribute(attributeVO)); 36 | } 37 | 38 | public void reInitView(Array attributes) { 39 | attrTable.clear(); 40 | this.attributes = attributes; 41 | attributes.forEach(attributeVO -> addAttribute(attributeVO)); 42 | attrTable.pack(); 43 | } 44 | 45 | private void addAttribute(AttributeVO attributeVO) { 46 | Attribute attr = new Attribute(attributeVO); 47 | attrTable.add(attr) 48 | .top() 49 | .right() 50 | .padBottom(5) 51 | .row(); 52 | } 53 | 54 | public AttributeVO getAttributeVO(String title) { 55 | for (AttributeVO attributeVO : attributes) { 56 | if (attributeVO.title.equals(title)) { 57 | return attributeVO; 58 | } 59 | } 60 | return new AttributeVO(); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /plugins/tiled/src/com/overlap2d/plugins/tiled/view/tabs/DefaultTab.java: -------------------------------------------------------------------------------- 1 | package com.overlap2d.plugins.tiled.view.tabs; 2 | 3 | import com.badlogic.gdx.scenes.scene2d.ui.Table; 4 | import com.kotcrab.vis.ui.widget.VisLabel; 5 | import com.kotcrab.vis.ui.widget.tabbedpane.Tab; 6 | import com.overlap2d.plugins.tiled.TiledPanel; 7 | 8 | /** 9 | * Created by mariam on 10/30/15. 10 | */ 11 | public class DefaultTab extends Tab { 12 | 13 | protected TiledPanel panel; 14 | protected int tabIndex; 15 | protected Table content = new Table(); 16 | protected String tabTitle = ""; 17 | 18 | public DefaultTab(TiledPanel panel, String tabTitle, int tabIndex) { 19 | super(false, false); //tab is not savable, tab is not closeable by user 20 | this.panel = panel; 21 | this.tabTitle = tabTitle; 22 | this.tabIndex = tabIndex; 23 | 24 | // content.setDebug(true); 25 | } 26 | 27 | public void initView() { 28 | content.add(new VisLabel(tabTitle+" example")); 29 | } 30 | 31 | @Override 32 | public String getTabTitle () { 33 | return tabTitle; 34 | } 35 | 36 | @Override 37 | public Table getContentTable () { 38 | return content; 39 | } 40 | 41 | public int getTabIndex() { 42 | return tabIndex; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include 'spine-runtime-libgdx' 2 | include 'spine-o2d-extension' 3 | include 'overlap2d-runtime-libgdx' 4 | include 'overlap2d-common-api' 5 | project(':spine-runtime-libgdx').projectDir = new File(settingsDir, 'spine-runtimes/spine-libgdx/spine-libgdx') 6 | project(':overlap2d-runtime-libgdx').projectDir = new File(settingsDir, 'overlap2d-runtime-libgdx') 7 | project(':spine-o2d-extension').projectDir = new File(settingsDir, 'overlap2d-runtime-libgdx/extensions/spine') 8 | project(':overlap2d-common-api').projectDir = new File(settingsDir, 'overlap2d-common-api') 9 | --------------------------------------------------------------------------------