Rev 1822 |
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 System.IO;
using BurutaruEditor.file;
using BauzoidNET.parser;
using BauzoidNET.math;
using BurutaruEditor.view;
using BauzoidNET.graphics.sprite;
namespace BurutaruEditor
.file.conditions
{
public class BaseCondition
: LevelObject
{
public const float CONDITION_SIZE
= 32;
public Vector2 Position
{ get
{ return mPosition
; } }
private Vector2 mPosition
= new Vector2
();
public BaseCondition
(Document doc,
string name
)
: base(doc, name
)
{
}
public override void WriteData
(TextWriter tw
)
{
/*
LevelUtil.WriteProperty(tw, "position", Position, 1);
LevelUtil.WriteProperty(tw, "freeScroll", FreeScroll, 1);
LevelUtil.WriteProperty(tw, "continueCondition", ContinueCondition, 1);
LevelUtil.WriteProperty(tw, "scrollSpeed", ScrollSpeed, 1);
LevelUtil.WriteProperty(tw, "starFieldStatus", (int)StarFieldStatus, 1);
LevelUtil.WriteProperty(tw, "starFieldStatusSwitchTime", StarFieldStatusSwitchTime, 1);*/
}
public override void WriteData
(Serializer s
)
{
/*s.Write("position"); s.Write(Position);
s.Write("freeScroll"); s.Write(FreeScroll);
s.Write("continueCondition"); s.Write(ContinueCondition);
s.Write("scrollSpeed"); s.Write(ScrollSpeed);
s.Write("starFieldStatus"); s.Write((int)StarFieldStatus);
s.Write("starFieldStatusSwitchTime"); s.Write(StarFieldStatusSwitchTime);*/
}
public override bool ReadParameter
(Tokenizer t,
string id
)
{
/* if (id.Equals("position", StringComparison.OrdinalIgnoreCase))
{
Position = ParseUtil.readVector2(t);
}
else if (id.Equals("freeScroll", StringComparison.OrdinalIgnoreCase))
{
FreeScroll = ParseUtil.readVector2(t);
}
else if (id.Equals("continueCondition", StringComparison.OrdinalIgnoreCase))
{
ContinueCondition = t.readString();
}
else if (id.Equals("scrollSpeed", StringComparison.OrdinalIgnoreCase))
{
ScrollSpeed = t.readNumber();
}
else if (id.Equals("starFieldStatus", StringComparison.OrdinalIgnoreCase))
{
int status = (int)t.readNumber();
StarFieldStatus = (StarFieldControlStatus)status;
}
else if (id.Equals("starFieldStatusSwitchTime", StringComparison.OrdinalIgnoreCase))
{
StarFieldStatusSwitchTime = t.readNumber();
}
else*/
{
return base.ReadParameter(t, id
);
}
t
.readToken(";");
return true;
}
public virtual void Render
()
{
SpriteTransform t
= DocumentView
.Resources.ScriptingSprite.getSpriteTransform();
t
.x = Position
.x + Doc
.View.CurrentPosition.x;
t
.y = Position
.y + Doc
.View.CurrentPosition.y;
t
.w = CONDITION_SIZE
;
t
.h = CONDITION_SIZE
;
t
.centerPivot();
DocumentView
.Resources.ScriptingSprite.render();
float w
= MainForm
.App.getGraphics().getFont().getTextWidth(this.Name, Document
.TEXT_SCALE);
MainForm
.App.getGraphics().getFont().drawTextDirect(this.Name, t
.x - w
/ 2, t
.y + CONDITION_SIZE
/ 2, Document
.TEXT_COLOR, Document
.TEXT_SCALE);
}
public override void RenderSelected
(int selectedPart,
bool forHover
)
{
float triggerX
= Position
.x + Doc
.View.CurrentPosition.x;
float triggerY
= Position
.y + Doc
.View.CurrentPosition.y;
float halfSize
= (CONDITION_SIZE
/ 2 + DocumentView
.SELECTION_FRAME_OFFSET);
if (forHover
)
Doc
.View.RenderSelectionFrame(triggerX
- halfSize, triggerY
- halfSize, triggerX
+ halfSize, triggerY
+ halfSize, DocumentView
.SELECTION_FRAME_HOVER_ALPHA);
else
Doc
.View.RenderSelectionFrame(triggerX
- halfSize, triggerY
- halfSize, triggerX
+ halfSize, triggerY
+ halfSize
);
}
public override bool IsInside
(float x,
float y,
out int selectedPart
)
{
selectedPart
= -1;
float px
= Position
.x + Doc
.View.CurrentPosition.x;
float py
= Position
.y + Doc
.View.CurrentPosition.y;
if ((Math
.Abs(px
- x
) <= (CONDITION_SIZE
/ 2)) && (Math
.Abs(py
- y
) < (CONDITION_SIZE
/ 2)))
{
return true;
}
return false;
}
public override void MoveBy
(float dx,
float dy,
int selectedPart
)
{
Position
.x += (dx
/ Doc
.View.ZoomFactor);
Position
.y += (dy
/ Doc
.View.ZoomFactor);
}
}
}