package org.andengine.extension.scripting.entity.primitive; import org.andengine.entity.IEntity; import org.andengine.entity.IEntity; import org.andengine.entity.IEntity; import org.andengine.entity.IEntity; import org.andengine.entity.IEntity; import org.andengine.entity.IEntity; import org.andengine.entity.IEntity; import org.andengine.entity.IEntity; import org.andengine.entity.IEntityMatcher; import org.andengine.entity.IEntityMatcher; import org.andengine.entity.primitive.Rectangle; import org.andengine.entity.primitive.vbo.IRectangleVertexBufferObject; import org.andengine.input.touch.TouchEvent; import org.andengine.opengl.vbo.DrawType; import org.andengine.opengl.vbo.VertexBufferObjectManager; import org.andengine.opengl.vbo.VertexBufferObjectManager; import org.andengine.opengl.vbo.VertexBufferObjectManager; import org.andengine.util.color.Color; import org.andengine.util.color.Color; public class RectangleProxy extends Rectangle { private final long mAddress; public RectangleProxy(final long pAddress, final float pX, final float pY, final float pWidth, final float pHeight, final VertexBufferObjectManager pVertexBufferObjectManager) { super(pX, pY, pWidth, pHeight, pVertexBufferObjectManager); this.mAddress = pAddress; } public RectangleProxy(final long pAddress, final float pX, final float pY, final float pWidth, final float pHeight, final VertexBufferObjectManager pVertexBufferObjectManager, final DrawType pDrawType) { super(pX, pY, pWidth, pHeight, pVertexBufferObjectManager, pDrawType); this.mAddress = pAddress; } public RectangleProxy(final long pAddress, final float pX, final float pY, final float pWidth, final float pHeight, final IRectangleVertexBufferObject pRectangleVertexBufferObject) { super(pX, pY, pWidth, pHeight, pRectangleVertexBufferObject); this.mAddress = pAddress; } public static native void nativeInitClass(); @Override public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) { final boolean handledNative = this.nativeOnAreaTouched(this.mAddress, pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY); if (handledNative) { return true; } else { return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY); } } private native boolean nativeOnAreaTouched(final long pAddress, final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY); @Override public void onAttached() { if (!this.nativeOnAttached(this.mAddress)) { super.onAttached(); } } private native boolean nativeOnAttached(final long pAddress); @Override public void onDetached() { if (!this.nativeOnDetached(this.mAddress)) { super.onDetached(); } } private native boolean nativeOnDetached(final long pAddress); }