Rev 1310 |
Rev 1436 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BauzoidNET.parser;
using BauzoidNET.graphics.sprite;
using BauzoidNET.math;
namespace BurutaruEditor.file.elements
{
public abstract class LevelElement
{
private float mSpawnAt = 0.0f;
private int mLayer = 0;
public LevelElement()
{
}
public virtual bool ReadParameter(Tokenizer t, String id)
{
if (id.Equals("spawnAt", StringComparison.OrdinalIgnoreCase))
{
mSpawnAt = t.readNumber();
}
else
{
return false;
}
t.readToken(";");
return true;
}
/** Parse sprite transform parameters (position, size, etc.), returns true if id is a sprite transform parameter. */
public bool parseSpriteTransform(Tokenizer t, String id, SpriteTransform transform)
{
if (id.Equals("position", StringComparison.OrdinalIgnoreCase))
{
Vector2 position = ParseUtil.readVector2(t);
transform.x = position.x;
transform.y = position.y;
}
// scale
else if (id.Equals("size", StringComparison.OrdinalIgnoreCase))
{
Vector2 size = ParseUtil.readVector2(t);
transform.w = size.x;
transform.h = size.y;
}
// angle
else if (id.Equals("angle", StringComparison.OrdinalIgnoreCase))
{
transform.angle = t.readNumber();
}
// pivot
else if (id.Equals("pivot", StringComparison.OrdinalIgnoreCase))
{
Vector2 pivot = ParseUtil.readVector2(t);
transform.pivotX = pivot.x;
transform.pivotY = pivot.y;
}
// layer
else if (id.Equals("layer", StringComparison.OrdinalIgnoreCase))
{
mLayer = (int)t.readNumber();
}
else
{
// unknown id
return false;
}
return true;
}
}
}