Added java and c# like access modifier support because why not.

This commit is contained in:
Relintai 2022-04-27 18:05:21 +02:00
parent 50fb328975
commit f487889607
2 changed files with 142 additions and 6 deletions

View File

@ -18,6 +18,12 @@ enum AccessModifierState {
ACCESS_MODIFIER_PUBLIC
};
enum AccessModifierParseType {
ACCESS_MODIFIER_PARSE_TYPE_GROUPED = 0,
ACCESS_MODIFIER_PARSE_TYPE_INDIVIDUAL = 1,
ACCESS_MODIFIER_PARSE_TYPE_IGNORE = 2,
};
var _content_container : Control
var _files : PoolStringArray
var _error_files : PoolStringArray
@ -87,8 +93,10 @@ func _process_state_next(delta):
var in_class : bool = false
var current_class_access_modifier : int = AccessModifierState.ACCESS_MODIFIER_PRIVATE
var current_access_modifier_parse_type : int = AccessModifierParseType.ACCESS_MODIFIER_PARSE_TYPE_GROUPED
var class_control : Control = null
for i in range(lines.size()):
var l : String = lines[i]
l = l.strip_edges()
@ -99,6 +107,19 @@ func _process_state_next(delta):
if l[0] == "#":
continue
if l.begins_with("access_modifier_parse_type "):
var t : String = l.trim_prefix("access_modifier_parse_type ")
if t == "GROUPED" || t == "ACCESS_MODIFIER_PARSE_TYPE_GROUPED" || t == "0":
current_access_modifier_parse_type = AccessModifierParseType.ACCESS_MODIFIER_PARSE_TYPE_GROUPED
elif t == "INDIVIDUAL" || t == "ACCESS_MODIFIER_PARSE_TYPE_INDIVIDUAL" || t == "1":
current_access_modifier_parse_type = AccessModifierParseType.ACCESS_MODIFIER_PARSE_TYPE_INDIVIDUAL
elif t == "IGNORE" || t == "ACCESS_MODIFIER_PARSE_TYPE_IGNORE" || t == "2":
current_access_modifier_parse_type = AccessModifierParseType.ACCESS_MODIFIER_PARSE_TYPE_IGNORE
continue
if l.begins_with("new_column"):
current_content_container = create_sub_content_container()
continue
@ -144,12 +165,27 @@ func _process_state_next(delta):
l = l.replace(";", "")
if current_class_access_modifier == AccessModifierState.ACCESS_MODIFIER_PUBLIC:
l = "+ " + l
elif current_class_access_modifier == AccessModifierState.ACCESS_MODIFIER_PROTECTED:
l = "# " + l
elif current_class_access_modifier == AccessModifierState.ACCESS_MODIFIER_PRIVATE:
l = "- " + l
if current_access_modifier_parse_type == AccessModifierParseType.ACCESS_MODIFIER_PARSE_TYPE_GROUPED:
if current_class_access_modifier == AccessModifierState.ACCESS_MODIFIER_PUBLIC:
l = "+ " + l
elif current_class_access_modifier == AccessModifierState.ACCESS_MODIFIER_PROTECTED:
l = "# " + l
elif current_class_access_modifier == AccessModifierState.ACCESS_MODIFIER_PRIVATE:
l = "- " + l
elif current_access_modifier_parse_type == AccessModifierParseType.ACCESS_MODIFIER_PARSE_TYPE_INDIVIDUAL:
if l.find("public ") != -1:
l = l.replace("public ", "+ ")
elif l.find("protected ") != -1:
l = l.replace("protected ", "# ")
elif l.find("private ") != -1:
l = l.replace("private ", "- ")
else:
l = "- " + l
elif current_access_modifier_parse_type == AccessModifierParseType.ACCESS_MODIFIER_PARSE_TYPE_IGNORE:
#ignore
pass
class_control.add_line(l)

View File

@ -0,0 +1,100 @@
access_modifier_parse_type INDIVIDUAL
class Widget
inherit
class PlayField
private final Circle knobBounds = new Circle(0, 0, 0);
private final Circle deadzoneBounds = new Circle(0, 0, 0);
private final Vector2 knobPosition = new Vector2();
private final Vector2 knobPercent = new Vector2();
--
private GameData gameData;
private Player player;
private PlayFieldStyle style;
--
boolean touched;
private final Rectangle bounds = new Rectangle();
private final Vector2 selectedGem = new Vector2();
private final Vector2 selectedMoveTo = new Vector2();
private boolean isGemSelected = false;
private boolean isGemMoving = false;
private boolean isGemReturning = false;
private boolean isGemFalling = false;
private boolean isGemFallingFromTop = false;
private boolean isGemMissing = false;
private float timeSinceLastMove = 0;
private int[] playerDestroyed;
private int playerTouchColor;
private float fallSpeed;
private float moveSpeed;
--
private GemHelper[][] gems;
--
public PlayField (Skin skin, GameData gameData, Player player);
public PlayField (Skin skin, String styleName, GameData gameData, Player player);
public PlayField (PlayFieldStyle style, GameData gameData, Player player);
void calculatePositionAndValue (float x, float y, boolean isTouchUp);
--
public void swapGems(int i, int j);
public void setStyle (PlayFieldStyle style);
public PlayFieldStyle getStyle ();
public Actor hit (float x, float y, boolean touchable);
--
public void layout ();
public void draw (SpriteBatch batch, float parentAlpha);
public float getPrefWidth ();
public float getPrefHeight ();
public boolean isTouched ();
public void act (float delta);
--
public void setGemFalling(int i, int fromJ, int toJ, boolean fromTop);
protected void checkFalling();
public void setGemMissing();
public void setPlayerDestroyed(int[] dest);
public void reShuffle();
new_column
class PlayFieldStyle
public Drawable gemRed;
public Drawable gemViolet;
public Drawable gemGreen;
public Drawable gemYellow;
public Drawable gemBlue;
public Drawable background;
public PlayFieldStyle ();
public PlayFieldStyle (Drawable gemRed, Drawable gemViolet, Drawable gemGreen, Drawable gemYellow, Drawable gemBlue, Drawable background);
public PlayFieldStyle (PlayFieldStyle style);
public static class GemHelper
public Rectangle bounds;
public boolean falling;
public float fallY;
public boolean movingX;
public boolean movingY;
public float moveToX;
public float moveToY;
public int directionFactor;
public GemHelper();
public GemHelper(Rectangle bounds);