Hi The problem is.
After I create a Button on Overlap2d tool. In code, I add ButtonComponent to Entity.
After Debug. I can see the ButtonSystem is updating the button.
if(childZComponent.layerName.equals("normal")) {
childMainItemComponent.visible = true;
}
if(childZComponent.layerName.equals("pressed")) {
childMainItemComponent.visible = false;
}
But LayerSystem is updating the button too. in method updateLayers()
if(layerMapComponent.getLayer(zindexComponent.layerName) != null) {
mainItemComponent.visible = layerMapComponent.getLayer(zindexComponent.layerName).isVisible;
}
I think it is because the Button I created has CompositeTransformComponent too.
And I check the Engine systems.
The update order is like this
LayerSystem -> Overlap2dRender -> ButtonSystem.
So result is ButtonSystem is override by LayerSystem before Render.
To fix this. I can update the EntitySystem property priority. but Engine does not update order by calling
systems.sort(systemComparator);
and getSystems return ImmutableArray, so I can not update order.
QuickFix:
sceneLoader.getEngine().getSystem(Overlap2dRenderer.class).priority = 1;
sceneLoader.getEngine().addSystem(new ButtonSystem());
to update the order.
PS. English is not my strong suit. Sorry...
Hi The problem is.
After I create a Button on Overlap2d tool. In code, I add ButtonComponent to Entity.
After Debug. I can see the ButtonSystem is updating the button.
But LayerSystem is updating the button too. in method updateLayers()
I think it is because the Button I created has CompositeTransformComponent too.
And I check the Engine systems.
The update order is like this
LayerSystem -> Overlap2dRender -> ButtonSystem.
So result is ButtonSystem is override by LayerSystem before Render.
To fix this. I can update the EntitySystem property priority. but Engine does not update order by calling
systems.sort(systemComparator);
and getSystems return ImmutableArray, so I can not update order.
QuickFix:
PS. English is not my strong suit. Sorry...