6 #ifndef JUGIMAP_NCINE_H
7 #define JUGIMAP_NCINE_H
9 #include <ncine/imgui.h>
10 #include <ncine/Texture.h>
11 #include <ncine/Sprite.h>
12 #include <ncine/DrawableNode.h>
13 #include <ncine/SceneNode.h>
14 #include <ncine/TextNode.h>
15 #include <ncine/Font.h>
16 #include <ncine/IFile.h>
17 #include "../jugimap/jugimap.h"
19 #if defined(__ANDROID__)
20 #include <ncine/AssetFile.h>
31 #if defined(__ANDROID__)
34 class AndroidBinaryFileStreamReaderNC :
public BinaryStreamReader
38 AndroidBinaryFileStreamReaderNC(
const std::string &fileName)
40 ncIFile =
new ncine::AssetFile(fileName.c_str());
41 ncIFile->open(ncine::IFile::OpenMode::READ | ncine::IFile::OpenMode::BINARY);
44 ~AndroidBinaryFileStreamReaderNC(){
if(ncIFile)
delete ncIFile; }
47 bool IsOpen()
override {
return ncIFile->isOpened();}
48 int Pos()
override {
return ncIFile->tell();}
49 void Seek(
int _pos)
override {ncIFile->seek(_pos, SEEK_SET);}
50 int Size()
override {
return ncIFile->size();}
53 unsigned char ReadByte()
override
56 ncIFile->read(reinterpret_cast<char*>(&value), 1);
60 int ReadInt()
override
63 ncIFile->read(reinterpret_cast<char*>(&value), 4);
67 float ReadFloat()
override
70 ncIFile->read(reinterpret_cast<char*>(&value), 4);
75 std::string ReadString()
override
77 int length = ReadInt();
78 char *buf =
new char[length];
79 ncIFile->read(buf, length);
80 std::string value(buf, length);
87 ncine::IFile *ncIFile =
nullptr;
103 virtual void Init()
override;
109 ncine::Texture *ncTexture =
nullptr;
136 ncine::Sprite *ncSprite =
nullptr;
138 void ManageShaders_OverlayColor();
165 ncine::TextNode* ncTextNode =
nullptr;
166 bool emptyString =
false;
194 FontNC(
const std::string &_relativeFilePath,
int _size,
FontKind _kind);
200 virtual int GetPixelWidth(
const std::string &s)
override;
201 virtual int GetPixelHeight(
const std::string &s)
override;
202 virtual Vec2f GetPixelSize(
const std::string &s)
override;
205 ncine::Font* ncFont =
nullptr;
206 ncine::TextNode* ncTextNode =
nullptr;
208 ncine::SceneNode *dummySceneNode =
nullptr;
264 virtual void Clear()
override;
277 ImDrawList* drawList =
nullptr;
278 ImColor outlineColor;
294 virtual void visit(ncine::RenderQueue &renderQueue)
override;
297 MapNC * map =
nullptr;
311 MapNC(
int _zOrderStart) :
Map(_zOrderStart){}
314 virtual void SetVisible(
bool _visible)
override;
331 class EngineSceneNC :
public EngineScene
335 EngineSceneNC(Scene *_scene);
336 void PostInit()
override;
339 ncine::SceneNode* GetEngineNode(){
return ncNode; }
342 ncine::SceneNode *ncNode =
nullptr;
388 class EngineAppNC :
public EngineApp
392 EngineAppNC(App *_app);
393 void PostInit()
override;
394 void SetSystemMouseCursorVisible(
bool _visible)
override;
395 ncine::SceneNode * GetAppNode(){
return appNCNode; }
399 ncine::SceneNode * appNCNode =
nullptr;
400 ncine::TextNode *errorMessageLabel =
nullptr;
429 #if defined(__ANDROID__)
430 virtual BinaryStreamReader* NewBinaryFileStreamReader(
const std::string &fileName)
override
432 return new AndroidBinaryFileStreamReaderNC(fileName);
439 virtual Map*
NewMap(
int _zOrderStart)
override {
return new MapNC(_zOrderStart); }
453 return new FontNC(_relativeFilePath, _size, _fontKind);
469 extern ncine::TextNode * errorMessageLabel;
ncine::TextNode * GetNCTextNode()
Returns the nCine text node.
Definition: jmNCine.h:161
Extended StandardSprite class for nCine.
Definition: jmNCine.h:118
virtual void InitEngineDrawer() override
Initialize engine objects related to this drawer.
Definition: jmNCine.cpp:668
virtual void SetActiveImage(GraphicItem *_image) override
Set the active image to the given *_image*.
Definition: jmNCine.cpp:99
virtual void SetVisible(bool _visible) override
Set the visibility of this map.
Definition: jmNCine.cpp:797
virtual void InitEngineObjects() override
Initialize the engine sprite.
Definition: jmNCine.cpp:63
virtual void Line(Vec2f p1, Vec2f p2) override
Draw a line from the given position p1 to p2.
Definition: jmNCine.cpp:707
virtual EngineApp * NewEngineApp(App *_app) override
Returns a new map object.
Definition: jmNCine.h:436
Extended SpriteLayer class for nCine.
Definition: jmNCine.h:176
Extended Font class for nCine.
Definition: jmNCine.h:190
Color in RGBA color space - integer variant.
Definition: jmColor.h:15
The EngineScene class defines engine specific scene properties.
Definition: jmScene.h:109
The App is the base class of the application.
Definition: jmApp.h:22
virtual StandardSprite * NewStandardSprite() override
Returns a new standard sprite object.
Definition: jmNCine.h:441
virtual Map * NewMap(int _zOrderStart) override
Returns a new map object.
Definition: jmNCine.h:439
The Scene class is the base class for the application scenes.
Definition: jmScene.h:23
virtual void RectangleOutline(const Rectf &rect) override
Draw the outline of the given rectangle rect.
Definition: jmNCine.cpp:720
virtual Font * NewFont(const std::string &_relativeFilePath, int _size=-1, FontKind _fontKind=FontKind::NOT_DEFINED) override
Returns a new text object.
Definition: jmNCine.h:451
The GraphicItem class defines the equivalent object from JugiMap Editor.
Definition: jmSourceGraphics.h:34
The EngineApp class defines engine specific application properties.
Definition: jmApp.h:115
Extended GraphicFile class for nCine.
Definition: jmNCine.h:96
virtual void UpdateEngineObjects() override
Update the engine sprite.
Definition: jmNCine.cpp:131
Extended Drawer class for Cocos2d-x.
Definition: jmNCine.h:257
The base abstract class for reading binary streams.
Definition: jmStreams.h:33
virtual GraphicFile * NewFile() override
Returns a new graphic file object.
Definition: jmNCine.h:438
Map()
Constructor.
Definition: jmMap.h:34
The StandardSprite class defines the sprite from JugiMap Editor.
Definition: jmSprites.h:787
virtual bool IsEngineSpriteInitialized() override
Returns true if the engine sprite of this sprite has been initialized; otherwise returns false.
Definition: jmNCine.h:157
virtual void InitEngineObjects(MapType _mapType) override
Initialize the engine map objects.
Definition: jmNCine.cpp:775
virtual void Clear() override
Clear this drawer (required by some engines).
Definition: jmNCine.cpp:694
Extended ncine::SceneNode class for use with MapNC objects.
Definition: jmNCine.h:289
virtual void EllipseOutline(Vec2f c, Vec2f r) override
Draw the outline of an ellipse defined by the given center point c and radius r.
Definition: jmNCine.cpp:731
The Sprite is the base sprite class.
Definition: jmSprites.h:32
virtual SpriteLayer * NewSpriteLayer() override
Returns a new sprite layer object.
Definition: jmNCine.h:440
FontKind
The kinds of font.
Definition: jmGlobal.h:124
MapNCNode * GetMapNCNode()
Returns the MapNCNode object.
Definition: jmNCine.h:317
virtual void UpdateEngineDrawer() override
Update engine objects related to this drawer.
Definition: jmNCine.cpp:675
The GraphicFile class defines the equivalent object from JugiMap Editor.
Definition: jmSourceGraphics.h:148
Extended Map class for nCine.
Definition: jmNCine.h:307
The Drawer is the base drawer class.
Definition: jmDrawing.h:20
Extended ObjectFactory class for nCine.
Definition: jmNCine.h:424
virtual Drawer * NewDrawer() override
Returns a new drawer object.
Definition: jmNCine.h:455
MapType
The types of map.
Definition: jmGlobal.h:42
ncine::Texture * GetNCTexture()
Returns the nCine texture object.
Definition: jmNCine.h:106
virtual void Init() override
Initialize this GraphicFile.
Definition: jmNCine.cpp:26
virtual TextSprite * NewTextSprite() override
Returns a new standard sprite object.
Definition: jmNCine.h:446
virtual EngineScene * NewEngineScene(Scene *_scene) override
Returns a new map object.
Definition: jmNCine.h:437
virtual void Dot(Vec2f p) override
Draw a dot at the given position p.
Definition: jmNCine.cpp:753
The Font class defines fonts used in TextSprite objects.
Definition: jmFont.h:16
virtual void RemoveAndDeleteSprite(Sprite *_sprite) override
Remove and delete the given sprite *_sprite* from this sprite layer.
Definition: jmNCine.cpp:497
The ObjectFactory is the base class for engine specific object factories.
Definition: jmObjectFactory.h:48
virtual void InitEngineObjects() override
Initialize the engine sprite.
Definition: jmNCine.cpp:310
2d vector.
Definition: jmCommon.h:23
ncine::Sprite * GetNCSprite()
Returns the nCine sprite object.
Definition: jmNCine.h:132
Extended TextSprite class for Cocos2d-x.
Definition: jmNCine.h:148
ncine::Font * GetNCFont()
Returns the nCine font object.
Definition: jmNCine.h:198
virtual void SetOutlineColor(ColorRGBA _outlineColor) override
Set outline color to the given *_outlineColor*.
Definition: jmNCine.cpp:701
The TextSprite class defines the text sprite from JugiMap Editor.
Definition: jmSprites.h:889
virtual void UpdateEngineObjects() override
Update the engine sprite.
Definition: jmNCine.cpp:397
The Map class defines the map element from JugiMap Editor.
Definition: jmMap.h:26
virtual void UpdateEngineObjects() override
Update the engine map objects.
Definition: jmNCine.cpp:785
virtual bool IsEngineSpriteInitialized() override
Returns true if the engine sprite of this sprite has been initialized; otherwise returns false.
Definition: jmNCine.h:129
The SpriteLayer class defines the sprite and tile layers from JugiMap Editor.
Definition: jmLayers.h:303
The font kind not defined.