From abdbc82e300211f83e3a0a33a65f8a66b3e3de34 Mon Sep 17 00:00:00 2001 From: taluks Date: Fri, 8 Feb 2019 19:17:46 +0300 Subject: [PATCH 1/5] upgdade gdx version to 1.9.8 and ashley version to 1.7.3 --- build.gradle | 4 ++-- .../sprite/SpriteAnimationStateComponent.java | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index bc99f834..fc56aacb 100644 --- a/build.gradle +++ b/build.gradle @@ -5,9 +5,9 @@ sourceCompatibility = 1.6 sourceSets.main.java.srcDirs = [ "src/" ] ext { - gdxVersion = '1.7.1' + gdxVersion = '1.9.8' box2dlightsVersion = '1.4' - ashleyVersion = '1.6.1-SNAPSHOT' + ashleyVersion = '1.7.3' } dependencies { diff --git a/src/com/uwsoft/editor/renderer/components/sprite/SpriteAnimationStateComponent.java b/src/com/uwsoft/editor/renderer/components/sprite/SpriteAnimationStateComponent.java index d7f27dfb..a3f579f8 100644 --- a/src/com/uwsoft/editor/renderer/components/sprite/SpriteAnimationStateComponent.java +++ b/src/com/uwsoft/editor/renderer/components/sprite/SpriteAnimationStateComponent.java @@ -1,19 +1,19 @@ package com.uwsoft.editor.renderer.components.sprite; +import java.util.Comparator; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + import com.badlogic.ashley.core.Component; import com.badlogic.gdx.graphics.g2d.Animation; import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion; import com.badlogic.gdx.utils.Array; import com.uwsoft.editor.renderer.data.FrameRange; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - public class SpriteAnimationStateComponent implements Component { public Array allRegions; - public Animation currentAnimation; + public Animation currentAnimation; public float time = 0.0f; public boolean paused = false; @@ -22,7 +22,7 @@ public SpriteAnimationStateComponent(Array allRegions) this.allRegions = sortAndGetRegions(allRegions); } - public Animation get() { + public Animation get() { return currentAnimation; } @@ -35,7 +35,7 @@ public void set(FrameRange range, int fps, Animation.PlayMode playMode) { for (int r = range.startFrame; r <= range.endFrame; r++) { textureRegions.add(allRegions.get(r)); } - currentAnimation = new Animation(1f/fps, textureRegions, playMode); + currentAnimation = new Animation(1f/fps, textureRegions, playMode); time = 0.0f; } From d6b5b161086cd4b31c8652983cf3e2d56adeeac3 Mon Sep 17 00:00:00 2001 From: taluks Date: Wed, 6 Nov 2019 19:06:42 +0300 Subject: [PATCH 2/5] disable custom viewport --- src/com/uwsoft/editor/renderer/SceneLoader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/uwsoft/editor/renderer/SceneLoader.java b/src/com/uwsoft/editor/renderer/SceneLoader.java index 4ba41cfc..5dadd04c 100644 --- a/src/com/uwsoft/editor/renderer/SceneLoader.java +++ b/src/com/uwsoft/editor/renderer/SceneLoader.java @@ -147,7 +147,7 @@ public SceneVO loadScene(String sceneName, Viewport viewport, boolean customLigh if (!customLight) { setAmbienceInfo(sceneVO); } - rayHandler.useCustomViewport(viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); + //rayHandler.useCustomViewport(viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); return sceneVO; } From eed5bb82e8f762cd14c79f1f8783b9d7c17a1da1 Mon Sep 17 00:00:00 2001 From: taluks Date: Fri, 8 Nov 2019 18:31:48 +0300 Subject: [PATCH 3/5] fix render bug https://github.com/UnderwaterApps/overlap2d/issues/223 --- .../uwsoft/editor/renderer/SceneLoader.java | 29 ++++++++++++++----- .../systems/render/Overlap2dRenderer.java | 27 ++++++++++++++--- 2 files changed, 45 insertions(+), 11 deletions(-) diff --git a/src/com/uwsoft/editor/renderer/SceneLoader.java b/src/com/uwsoft/editor/renderer/SceneLoader.java index 5dadd04c..4b6a308c 100644 --- a/src/com/uwsoft/editor/renderer/SceneLoader.java +++ b/src/com/uwsoft/editor/renderer/SceneLoader.java @@ -1,12 +1,11 @@ package com.uwsoft.editor.renderer; -import box2dLight.RayHandler; - import com.badlogic.ashley.core.Component; import com.badlogic.ashley.core.Engine; import com.badlogic.ashley.core.Entity; import com.badlogic.ashley.core.EntityListener; import com.badlogic.ashley.utils.ImmutableArray; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.Batch; @@ -20,20 +19,37 @@ import com.badlogic.gdx.utils.viewport.ScalingViewport; import com.badlogic.gdx.utils.viewport.Viewport; import com.uwsoft.editor.renderer.commons.IExternalItemType; -import com.uwsoft.editor.renderer.components.*; +import com.uwsoft.editor.renderer.components.MainItemComponent; +import com.uwsoft.editor.renderer.components.NodeComponent; +import com.uwsoft.editor.renderer.components.ParentNodeComponent; +import com.uwsoft.editor.renderer.components.ScriptComponent; import com.uwsoft.editor.renderer.components.light.LightObjectComponent; import com.uwsoft.editor.renderer.components.physics.PhysicsBodyComponent; -import com.uwsoft.editor.renderer.data.*; +import com.uwsoft.editor.renderer.data.CompositeItemVO; +import com.uwsoft.editor.renderer.data.CompositeVO; +import com.uwsoft.editor.renderer.data.ProjectInfoVO; +import com.uwsoft.editor.renderer.data.ResolutionEntryVO; +import com.uwsoft.editor.renderer.data.SceneVO; import com.uwsoft.editor.renderer.factory.EntityFactory; import com.uwsoft.editor.renderer.physics.PhysicsBodyLoader; import com.uwsoft.editor.renderer.resources.IResourceRetriever; import com.uwsoft.editor.renderer.resources.ResourceManager; import com.uwsoft.editor.renderer.scripts.IScript; -import com.uwsoft.editor.renderer.systems.*; +import com.uwsoft.editor.renderer.systems.ButtonSystem; +import com.uwsoft.editor.renderer.systems.CompositeSystem; +import com.uwsoft.editor.renderer.systems.LabelSystem; +import com.uwsoft.editor.renderer.systems.LayerSystem; +import com.uwsoft.editor.renderer.systems.LightSystem; +import com.uwsoft.editor.renderer.systems.ParticleSystem; +import com.uwsoft.editor.renderer.systems.PhysicsSystem; +import com.uwsoft.editor.renderer.systems.ScriptSystem; +import com.uwsoft.editor.renderer.systems.SpriteAnimationSystem; import com.uwsoft.editor.renderer.systems.action.ActionSystem; import com.uwsoft.editor.renderer.systems.render.Overlap2dRenderer; import com.uwsoft.editor.renderer.utils.ComponentRetriever; +import box2dLight.RayHandler; + /** * SceneLoader is important part of runtime that utilizes provided * IResourceRetriever (or creates default one shipped with runtime) in order to @@ -147,8 +163,7 @@ public SceneVO loadScene(String sceneName, Viewport viewport, boolean customLigh if (!customLight) { setAmbienceInfo(sceneVO); } - //rayHandler.useCustomViewport(viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); - + return sceneVO; } diff --git a/src/com/uwsoft/editor/renderer/systems/render/Overlap2dRenderer.java b/src/com/uwsoft/editor/renderer/systems/render/Overlap2dRenderer.java index 3ebafd98..7d61469a 100644 --- a/src/com/uwsoft/editor/renderer/systems/render/Overlap2dRenderer.java +++ b/src/com/uwsoft/editor/renderer/systems/render/Overlap2dRenderer.java @@ -1,22 +1,33 @@ package com.uwsoft.editor.renderer.systems.render; -import box2dLight.RayHandler; import com.badlogic.ashley.core.ComponentMapper; import com.badlogic.ashley.core.Entity; import com.badlogic.ashley.core.Family; import com.badlogic.ashley.systems.IteratingSystem; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Camera; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.math.Affine2; import com.badlogic.gdx.math.Matrix4; -import com.badlogic.gdx.physics.box2d.World; +import com.badlogic.gdx.utils.viewport.Viewport; import com.uwsoft.editor.renderer.commons.IExternalItemType; -import com.uwsoft.editor.renderer.components.*; +import com.uwsoft.editor.renderer.components.CompositeTransformComponent; +import com.uwsoft.editor.renderer.components.LayerMapComponent; +import com.uwsoft.editor.renderer.components.MainItemComponent; +import com.uwsoft.editor.renderer.components.NodeComponent; +import com.uwsoft.editor.renderer.components.ParentNodeComponent; +import com.uwsoft.editor.renderer.components.ShaderComponent; +import com.uwsoft.editor.renderer.components.TintComponent; +import com.uwsoft.editor.renderer.components.TransformComponent; +import com.uwsoft.editor.renderer.components.ViewPortComponent; +import com.uwsoft.editor.renderer.components.ZIndexComponent; import com.uwsoft.editor.renderer.physics.PhysicsBodyLoader; import com.uwsoft.editor.renderer.systems.render.logic.DrawableLogicMapper; import com.uwsoft.editor.renderer.utils.ComponentRetriever; +import box2dLight.RayHandler; + public class Overlap2dRenderer extends IteratingSystem { private final float TIME_STEP = 1f/60; @@ -54,7 +65,8 @@ public void processEntity(Entity entity, float deltaTime) { timeRunning+=deltaTime; ViewPortComponent ViewPortComponent = viewPortMapper.get(entity); - Camera camera = ViewPortComponent.viewPort.getCamera(); + Viewport viewport = ViewPortComponent.viewPort; + Camera camera = viewport.getCamera(); camera.update(); batch.setProjectionMatrix(camera.combined); batch.begin(); @@ -66,6 +78,13 @@ public void processEntity(Entity entity, float deltaTime) { rayHandler.setCulling(false); OrthographicCamera orthoCamera = (OrthographicCamera) camera; camera.combined.scl(1f / PhysicsBodyLoader.getScale()); + // fix box2dlights viewport + int gutterW = viewport.getLeftGutterWidth(); + int gutterH = viewport.getTopGutterHeight(); + int rhWidth = Gdx.graphics.getWidth() - (2 * gutterW); + int rhHeight = Gdx.graphics.getHeight() - (2 * gutterH); + rayHandler.useCustomViewport(gutterW, gutterH, rhWidth, rhHeight); + // rayHandler.setCombinedMatrix(orthoCamera); rayHandler.updateAndRender(); } From 2bd62f5533a0e01d8a08db5986fd762aa0f74eb9 Mon Sep 17 00:00:00 2001 From: taluks Date: Fri, 8 Nov 2019 18:52:38 +0300 Subject: [PATCH 4/5] refactoring --- .../editor/renderer/systems/render/Overlap2dRenderer.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/com/uwsoft/editor/renderer/systems/render/Overlap2dRenderer.java b/src/com/uwsoft/editor/renderer/systems/render/Overlap2dRenderer.java index 7d61469a..2a03739b 100644 --- a/src/com/uwsoft/editor/renderer/systems/render/Overlap2dRenderer.java +++ b/src/com/uwsoft/editor/renderer/systems/render/Overlap2dRenderer.java @@ -78,13 +78,7 @@ public void processEntity(Entity entity, float deltaTime) { rayHandler.setCulling(false); OrthographicCamera orthoCamera = (OrthographicCamera) camera; camera.combined.scl(1f / PhysicsBodyLoader.getScale()); - // fix box2dlights viewport - int gutterW = viewport.getLeftGutterWidth(); - int gutterH = viewport.getTopGutterHeight(); - int rhWidth = Gdx.graphics.getWidth() - (2 * gutterW); - int rhHeight = Gdx.graphics.getHeight() - (2 * gutterH); - rayHandler.useCustomViewport(gutterW, gutterH, rhWidth, rhHeight); - // + rayHandler.useCustomViewport(viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); rayHandler.setCombinedMatrix(orthoCamera); rayHandler.updateAndRender(); } From fb29ec326c0f01742e6d453901bbc53907bfd527 Mon Sep 17 00:00:00 2001 From: taluks Date: Fri, 17 Jan 2020 17:24:50 +0300 Subject: [PATCH 5/5] fix crash when add sprite animation --- .../component/SpriteComponentFactory.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/com/uwsoft/editor/renderer/factory/component/SpriteComponentFactory.java b/src/com/uwsoft/editor/renderer/factory/component/SpriteComponentFactory.java index 9462645a..208c0ccd 100644 --- a/src/com/uwsoft/editor/renderer/factory/component/SpriteComponentFactory.java +++ b/src/com/uwsoft/editor/renderer/factory/component/SpriteComponentFactory.java @@ -125,14 +125,14 @@ protected SpriteAnimationComponent createSpriteAnimationDataComponent(Entity ent private Array getRegions(String filter) { // filtering regions by name - Array allRegions = rm.getSpriteAnimation(filter).getRegions(); - Array regions = new Array(); - for(TextureAtlas.AtlasRegion region: allRegions) { - if(region.name.contains(filter)) { - regions.add(region); - } - } - - return regions; + Array allRegions = rm.getSpriteAnimation(filter).getRegions(); + Array regions = new Array(); + for (TextureAtlas.AtlasRegion region : allRegions) { + if (filter.contains(region.name.replaceAll("\\d", ""))) { + regions.add(region); + } + } + + return allRegions; } }