commit c9cb61faa7c3200063da22a04c30523bd783588f Author: Jamal Millner II Date: Tue Sep 17 07:45:51 2024 -0400 Initial Commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/AI.gd b/AI.gd new file mode 100644 index 0000000..531d381 --- /dev/null +++ b/AI.gd @@ -0,0 +1,3 @@ +extends CharacterBody2D + +var int_value: int = 200 diff --git a/AI.tscn b/AI.tscn new file mode 100644 index 0000000..26c7636 --- /dev/null +++ b/AI.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://f7k4q00o2gnq"] + +[ext_resource type="Script" path="res://AI.gd" id="1_8upf1"] +[ext_resource type="Texture2D" uid="uid://bpuvmnj2uuavs" path="res://icon.svg" id="1_ckmxs"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_w7ywt"] +size = Vector2(16, 16) + +[node name="AI" type="CharacterBody2D"] +script = ExtResource("1_8upf1") + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(40, 40) +scale = Vector2(0.125, 0.125) +texture = ExtResource("1_ckmxs") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(40, 40) +shape = SubResource("RectangleShape2D_w7ywt") diff --git a/Brown.png b/Brown.png new file mode 100644 index 0000000..4925f71 Binary files /dev/null and b/Brown.png differ diff --git a/Brown.png.import b/Brown.png.import new file mode 100644 index 0000000..a7f00a2 --- /dev/null +++ b/Brown.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://75ue47s4k2cg" +path="res://.godot/imported/Brown.png-150dcd85596b8e4cffe30274d1cab3fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Brown.png" +dest_files=["res://.godot/imported/Brown.png-150dcd85596b8e4cffe30274d1cab3fe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Data_Class.gd b/Data_Class.gd new file mode 100644 index 0000000..804e1f3 --- /dev/null +++ b/Data_Class.gd @@ -0,0 +1,74 @@ +extends Node + + +class_name Data + +#***** Gain Access to the Different Classes ***** + +var Right : bool +var Left : bool +var Up : bool +var Down : bool + +var Current_Position : Array + +# *****Data vars ****** + +#Arrays + +var ways = ["None", "Dead End", "Plain Path", "3 Way Intersection", "4 Way Intersection"] +var Cords = [[0,0]] + +#Dictionaries + +var Coordinate_Dict = {"Position": [0,0]} +var Detail_Dict = { "Type": "", + "Came_From": "", + "Been_There": false} + +#Single Vars + +var Traveled = false +var State = 0 + + + +#***** Functions ***** + +func _process(delta): + Mark() + IntersectionCounter() + Been_There() + + +func IntersectionCounter(): + + var WaysToGo = 0 + var Directions = [Right,Left,Down,Up] + for Direction in Directions: + if Direction == false: + WaysToGo += 1 + if Direction == true: + pass + return WaysToGo + + +func Mark(): + var response = ways[IntersectionCounter()] + Detail_Dict.Type = response + Detail_Dict.Came_From = "Hi"#Prev_dir + Detail_Dict.Been_There = Traveled + print(Current_Position) + + +func Been_There(): + + if Cords.find(Current_Position) == -1: + Cords.push_back(Current_Position) + var Cords_Copy = Cords.duplicate(true) + Cords = Cords_Copy + Traveled = false + else: + Traveled = true + + diff --git a/Forwardv.gd b/Forwardv.gd new file mode 100644 index 0000000..fc72dd4 --- /dev/null +++ b/Forwardv.gd @@ -0,0 +1,17 @@ +extends RayCast2D + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if is_colliding(): + #print("True") + var Forward: bool = true + + else: + #print("False") + var Forward: bool = false diff --git a/Jump (32x32).png b/Jump (32x32).png new file mode 100644 index 0000000..d7f69d4 Binary files /dev/null and b/Jump (32x32).png differ diff --git a/Jump (32x32).png.import b/Jump (32x32).png.import new file mode 100644 index 0000000..1920784 --- /dev/null +++ b/Jump (32x32).png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://crkasykc6x5i" +path="res://.godot/imported/Jump (32x32).png-91bf01789c567d31f5c28cd22911709b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Jump (32x32).png" +dest_files=["res://.godot/imported/Jump (32x32).png-91bf01789c567d31f5c28cd22911709b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Leftv.gd b/Leftv.gd new file mode 100644 index 0000000..12291f6 --- /dev/null +++ b/Leftv.gd @@ -0,0 +1,16 @@ +extends RayCast2D + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if is_colliding(): + #print("True") + var right: bool = true + + else: + #print("False") + var right: bool = false diff --git a/Main_player.tscn b/Main_player.tscn new file mode 100644 index 0000000..1c25365 --- /dev/null +++ b/Main_player.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://3iw0nxyxa7su"] + +[ext_resource type="Script" path="res://PlayerScript.gd" id="1_682sr"] +[ext_resource type="Texture2D" uid="uid://crkasykc6x5i" path="res://Jump (32x32).png" id="1_hfcsn"] + +[node name="Player" type="CharacterBody2D"] +script = ExtResource("1_682sr") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_hfcsn") diff --git a/Movement_Class.gd b/Movement_Class.gd new file mode 100644 index 0000000..9c4fe45 --- /dev/null +++ b/Movement_Class.gd @@ -0,0 +1,107 @@ +extends Node + + + + +class_name Movement + +#Setting up Other Classes +const Data = preload("res://Movement_Class.gd") + + +#Defining Raycasts + +var Right : bool +var Left : bool +var Up : bool +var Down : bool + +#External Data + +var Detail_Dict: Dictionary + + + +#Internal Data + +var Prev_dir = "" +var Prev_dir_Opp = "" + + + +var Current_Position = [0,0] + +# Misc +var move = 0 +var Move_Strength = 1 +var State = 0 + +func _process(delta): + + pass + +func goDown(): + var Data_Class = Data.new() + if Down == false: + Current_Position[1] -=1 + print(Current_Position) + Prev_dir = "D" + Prev_dir_Opp = "U" + move += Move_Strength + Data_Class.Current_Position = Current_Position + else: + move += Move_Strength + print("There is something below you") + +func goUp(): + var Data_Class = Data.new() + if Up == false: + Current_Position[1] +=1 + print(Current_Position) + Prev_dir = "U" + Prev_dir_Opp = "D" + move += Move_Strength + Data_Class.Current_Position = Current_Position + else: + move += Move_Strength + print("There is something above you") + +func goRight(): + var Data_Class = Data.new() + if Right == false: + Current_Position[0] +=1 + print(Current_Position) + Prev_dir = "R" + Prev_dir_Opp = "L" + move += Move_Strength + Data_Class.Current_Position = Current_Position + else: + move += Move_Strength + print("There is something to your right") + +func goLeft(): + var Data_Class = Data.new() + if Left == false: + Current_Position[0] -=1 + print(Current_Position) + Prev_dir = "L" + Prev_dir_Opp = "R" + move += Move_Strength + Data_Class.Current_Position = Current_Position + else: + move += Move_Strength + print("There is something to your left") + +func WhatMove(): + pass + if Detail_Dict.Been_There == true: + if State != 1: + Move_Strength = 0 + move = move - 1 + State = 1 + + if Detail_Dict.Been_There == false: + if State != 2: + Move_Strength = 1 + move = move + 1 + State = 2 diff --git a/PlayerScript.gd b/PlayerScript.gd new file mode 100644 index 0000000..236a83b --- /dev/null +++ b/PlayerScript.gd @@ -0,0 +1,581 @@ + +extends CharacterBody2D + +var Check = 0 + +var dir = Vector2.ZERO +var Current_Position = [0,0] +var Cords = [[0,0]] +var Cords_Copy = [] +var Intersections = [[]] +var Intersections_Copy = [] + +var Moves_From_Last_Intersection = [] +var Moves_From_Last_Intersection_Copy = [] +var Back_From_DeadEnd = [] +var Distance_From_Intersection = 0 +var Duplicates = {} +var Tree_Array = [ + +] +var Options = [] +var BackTrack_Array = [] + +var Traveled = false + +var Coordinate_Dict = {"Position": [0,0]} +var Detail_Dict = { "Type": "", + "Came_From": 0, + "Been_There": false} + +var Preffered_Choice = {"Up": "", + "Down": "", + "Left": "", + "Right": ""} + + +var Cords_Minus_Curr = [] +var Move_Strength = 1 +var HasPrinted = false +var cmd_state = 0 +var state = 0 +var state2 = 0 +var state3 = 0 +var state4 = 0 +var State = 0 +var Prev_dir = "" +var Prev_dir_Opp = "" +var Result = "" +var move = 0 +var move_check = 0 +var ways = ["None", "Dead End", "Plain Path", "3 Way Intersection", "4 Way Intersection"] +var Printer = -1 +var val = 0 +var ignore = false +var Command_Size = 0 +var Last_cmd +var Ordered_Commands_Forward = ["Start"] +var Ordered_Commands_Backward = [] +var Individual_Steps = [] +var Back_To_Start = [] +var Command = [] +var Couplets = [] +var Was_DeadEnd_Array = [] +var Tree_Intersection_Array = [] +var Deleted = false +var Travel_Check = 0 +var RebuildAfterDeadEnd = [] +var TakeOut = 0 +var SaveSize = 0 +var TrackBack = [] +var Been_There_Array = [] +var Move_Check2 = 0 +var Move_Check = 0 +var CircleState = 0 +var CirclingBack = false +var Temporary_Instructions = [] +var move_check2 = 0 +var Move_Check3 = 0 +var Been_There_Overide = false +var LogDump = [] +var IntersectionDump = [] +var move_check3 = 0 +var move_check4 = 0 +var move_check5 = 0 +var Move_Check6 = 0 +var Move_Check7 = 0 +var Cicling = false +var CircleInts = 0 +var LogDumpOrdered = [] +var Order = [] +var Intersections_from_root = [] +var TargetCord = [100,-10] +var CircleCompleted = null +var AutoBacktrack = false +var ChoiceFromInts = [] +var IntersectionDict = {"Cord": [], + "Data": [] } +var IntersectionDir = [] +var IntersectionMove = 0 +var IntOptions = [] + +func _input(event): + if Current_Position != TargetCord: + if event.is_action_pressed("ui_left"): + goLeft() + Been_There() + AutoBacktrack = false + #print(Current_Position) + elif event.is_action_pressed("ui_right"): + goRight() + Been_There() + AutoBacktrack = false + #print(Current_Position) + elif event.is_action_pressed("ui_up"): + goUp() + Been_There() + AutoBacktrack = false + #print(Current_Position) + elif event.is_action_pressed("ui_down"): + goDown() + Been_There() + AutoBacktrack = false + #print(Current_Position) + elif event.is_action_pressed("ui_accept"): + AutoSolve() + #Mark(Prev_dir) + #print(LogDump) + #print(BackTrack_Array) + #print(move - BackTrack_Array[-1]+1) + pass + +func _process(delta): + if Current_Position != TargetCord: + Mark(Prev_dir) + WhatMove() + BackTracking() + GiveOrder() + Intersection_Tree() + Circling() + CheckForTreeDeadEnds() + TravelLog() + DeadEndCircles() + CircleRootsAndInts() + SolvinCircleDeadEnds() + MoveAfterIntersection() + IntersectionWaysAvailable() + #BeenTheirFromPrevCord() + #print(AutoBacktrack)var IntersectionDict = { + #CircleComplete() + # CircleRootsAndInts() + #print(Cicling) + #print(LogDump) + #DeadEndMovement() + #print(Individual_Steps) + #print(Intersections_from_root) + #print(Tree_Array) + #print(Intersections) + #AutoSolve() + + else: + print("We Done!!!!!!!!!!!!!!!!!!!!!!!") + +func goDown(): + var D = $Forwardv + dir = Vector2.DOWN + if not D.is_colliding(): + self.global_position.y += 24 + Current_Position[1] -=1 + Prev_dir = "D" + Prev_dir_Opp = "U" + move += Move_Strength + Been_There_Overide = false + else: + Been_There_Overide = true + move += Move_Strength + print("There is something below you") + +func goUp(): + var U = $Backv + dir = Vector2.UP + if not U.is_colliding(): + self.global_position.y -= 24 + Current_Position[1] +=1 + Prev_dir = "U" + Prev_dir_Opp = "D" + move += Move_Strength + Been_There_Overide = false + else: + Been_There_Overide = true + move += Move_Strength + print("There is something above you") + #BeenTheirFromPrevCord() + +func goRight(): + var R = $Rightv + dir = Vector2.RIGHT + if not R.is_colliding(): + self.global_position.x += 24.4 + Current_Position[0] +=1 + Prev_dir = "R" + Prev_dir_Opp = "L" + move += Move_Strength + Been_There_Overide = false + else: + Been_There_Overide = true + move += Move_Strength + print("There is something to your right") + +func goLeft(): + var L = $Leftv + dir = Vector2.LEFT + if not L.is_colliding(): + self.global_position.x -= 24.4 + Current_Position[0] -=1 + Prev_dir = "L" + Prev_dir_Opp = "R" + move += Move_Strength + Been_There_Overide = false + else: + Been_There_Overide = true + move += Move_Strength + print("There is something to your left") + + +func Mark(Prev_Direction): + + var response = ways[IntersectionCounter()] + Detail_Dict.Type = response + Detail_Dict.Came_From = Prev_Direction + Detail_Dict.Been_There = Traveled + Detail_Dict.Move = move + Coordinate_Dict.Position = Current_Position + Coordinate_Dict.Details = Detail_Dict + var Coordinate_Dict_Copy = Coordinate_Dict.duplicate(true) + Coordinate_Dict = Coordinate_Dict_Copy + #print(Coordinate_Dict) + + +func WhatMove(): + + if Detail_Dict.Been_There == true: + if state4 != 1: + Move_Strength = 0 + move = move - 1 + state4 = 1 + if Detail_Dict.Been_There == false: + if state4 != 2: + Move_Strength = 1 + move = move + 1 + state4 = 2 + +func TravelLog(): + if Detail_Dict.Been_There == false: + if move_check3 != move: + LogDump.push_front(Prev_dir_Opp) + LogDumpOrdered.push_front(Prev_dir) + move_check3 = move + +func BackTracking(): + if Cicling == false: + if Detail_Dict.Type != "Plain Path" and Detail_Dict.Been_There == false: + if BackTrack_Array.find(move) == -1: + BackTrack_Array.push_back(move) + if Intersections.find(Current_Position) == -1 and Intersections.find(Current_Position) != Intersections.size() -1 and BackTrack_Array.size() >= 2: + TrackBack = GiveOrder() + Distance_From_Intersection = BackTrack_Array[-1] - BackTrack_Array[-2] + print("The distance from the last intersection is : ", Distance_From_Intersection) + print("To get to the last intersection follow these steps : ", TrackBack) + print(Individual_Steps) + if Detail_Dict.Type == "Dead End" and Current_Position != [0,0]: + GoBack(TrackBack) + pass + + +func Circling(): + if Been_There_Array.size() > 3: + if move_check5 != move: + if Intersections.find(Current_Position) != Intersections.size()-1 and Intersections.find(Current_Position) != -1 and Been_There_Array[-2] == false and Been_There_Array[-3] == false: + var holder = [] + for n in (move - BackTrack_Array[-1]): + holder.push_back(LogDump[n]) + holder.push_front(Prev_dir_Opp) + print("Circling") + Cicling = true + Individual_Steps.push_front(holder) + CircleRootsAndInts() + HowManyIntsInCircle() + FirstCirclePart() + move_check5 = move + +func HowManyIntsInCircle(): + CircleInts = Tree_Array.size() - Intersections.find(Current_Position)+1 + print(CircleInts) + + +func FirstCirclePart(): + var count = CircleInts + + if count == 0 and Current_Position == Intersections_from_root[0]: + Cicling = false + Intersection_Tree() + Ordered_Commands_Backward.clear() + print("Ignoreeeeeee") + for takeout in CircleInts + 1: + Individual_Steps.pop_front() + Tree_Array.pop_back() + print("Goin back") + print(Individual_Steps) + GoBack(Individual_Steps[0]) + CircleCompleted = true + #** Returning if it needs more work or not + return false + + elif count != 0 and Current_Position == Intersections_from_root[0]: + GoBack(Individual_Steps[0]) + Individual_Steps.pop_front() + print("Number Of Ints: ", CircleInts) + print(Individual_Steps) + #** Returning if it needs more work or not + return true + +func CircleRootsAndInts(): + if Cicling == true: + if Detail_Dict.Type != "Plain Path": + if Intersections_from_root.find(Current_Position) == -1: + Intersections_from_root.push_back(Current_Position) + var Duplicate = Intersections_from_root.duplicate(true) + Intersections_from_root = Duplicate + +func DeadEndCircles(): + if Cicling == true: + if Detail_Dict.Type == "Dead End": + if AutoBacktrack == true: + CircleIntSubtractor() + return true + else: + return false + +func SolvinCircleDeadEnds(): + if CircleManualDistance() != null: + for n in CircleManualDistance(): + GoBack(LogDump[n]) + +func CircleComplete(): + if CircleCompleted == true: + if Detail_Dict.Type != "Plain Path" and Detail_Dict.Been_There == false: + Individual_Steps.push_front(GiveOrder()) + print("Circle Complete") + print(Individual_Steps) + print(Tree_Array) + CircleCompleted = false + else: + pass + +func CircleIntSubtractor(): + CircleInts -= 1 + print(CircleInts) + +func Intersection_Tree(): + if Cicling == false: + if Detail_Dict.Been_There == false: + if Move_Check2 != move: + if Detail_Dict.Type == "3 Way Intersection" and Current_Position != [0,0]: + Tree_Array.push_back(2) + Individual_Steps.push_front(TrackBack) + print(Tree_Array) + print(Intersections) + if Detail_Dict.Type == "4 Way Intersection" and Current_Position != [0,0]: + Tree_Array.push_back(3) + Individual_Steps.push_front(TrackBack) + print(Tree_Array) + print(Intersections) + if Detail_Dict.Type == "Dead End" and Current_Position != [0,0]: + Tree_Array[-1] -= 1 + print(Tree_Array) + print(Intersections) + Move_Check2 = move + +func CheckForTreeDeadEnds(): + if Tree_Array.size() > 0: + if Tree_Array[-1] <= 0: + Tree_Array.pop_back() + Tree_Array[-1] -= 1 + print(Tree_Array) + GoBack(Individual_Steps[0]) + Individual_Steps.pop_front() + + else: + pass + +func CircleManualDistance(): + if DeadEndCircles() == true and Intersections_from_root.size() >= 2: + var Starting_Pos = Intersections_from_root[-2] + var Ending_Pos = Intersections_from_root[-1] + + var x = abs(Starting_Pos[0] - Ending_Pos[0]) + var y = abs(Starting_Pos[1] - Ending_Pos[1]) + return x+y + +func GiveOrder(): + Ordered_Commands_Backward.erase("") + if move_check != move: + TrackIntersections() + if Detail_Dict.Been_There == false: + Ordered_Commands_Backward.push_back(Prev_dir_Opp) + if Detail_Dict.Type != "Plain Path": + TakeOut = (Cords.size() - Cords.find(Intersections[-2])) + var test = Ordered_Commands_Backward.slice(0 , TakeOut) + test.reverse() + Ordered_Commands_Backward.clear() + return test + move_check = move + + +func TrackIntersections(): + if Intersections.find(Current_Position) == -1: + if Detail_Dict.Type != "Plain Path" and Detail_Dict.Type != "Dead End": + Intersections.push_back(Current_Position) + Intersections_Copy = Intersections.duplicate(true) + Intersections = Intersections_Copy + IntersectionMove = move + +func MoveAfterIntersection(): + if move == IntersectionMove+1: + if Move_Check6 != move: + if TrackBack.size() != 1: + IntersectionDir.push_back(LogDumpOrdered[0]) + else: + IntersectionDir.push_back(LogDump[0]) + print(Intersections) + print(IntersectionDir) + Move_Check6 = move + +func IntersectionWaysAvailable(): + var R: bool = $Rightv.is_colliding() + var L: bool = $Leftv.is_colliding() + var D: bool = $Forwardv.is_colliding() + var U: bool = $Backv.is_colliding() + + var Sender = [] + var Colliders = [R,L,U,D] + var DirArray = ["R","L","U","D"] + if Move_Check7 != move and Detail_Dict.Type != "Plain Path" and Detail_Dict.Type != "Dead End" and Detail_Dict.Been_There == false:# and Intersections.find(Current_Position) == -1: + for n in Colliders.size(): + if Colliders[n] == false: + Sender.push_back(DirArray[n]) + IntOptions.push_back(Sender) + print(IntOptions) + if Move_Check7 != move and Detail_Dict.Type != "Plain Path" and Detail_Dict.Type != "Dead End" and Detail_Dict.Been_There == true: + print(IntOptions) + Move_Check7 = move + + +func BackToStart(): + if Detail_Dict.Type == "Plain Path": + Individual_Steps.push_front(Ordered_Commands_Backward) + + +func Been_There(): + if Been_There_Overide == false: + if Cords.find(Current_Position) == -1: + Cords.push_back(Current_Position) + Cords_Copy = Cords.duplicate(true) + Cords = Cords_Copy + Traveled = false + + else: + Traveled = true + Been_There_Array.push_back(Traveled) + +func recall(): + print(Individual_Steps) + for Sections in Individual_Steps: + #print(Sections) + for Section in Sections: + #Move(Section) + pass + +func GoBack(Set): + AutoBacktrack = true + for n in Set: + Move(n) + + +func IntersectionCounter(): + var R: bool = $Rightv.is_colliding() + var L: bool = $Leftv.is_colliding() + var D: bool = $Forwardv.is_colliding() + var U: bool = $Backv.is_colliding() + var WaysToGo = 0 + var Directions = [R,L,D,U] + for Direction in Directions: + if Direction == false: + WaysToGo += 1 + if Direction == true: + pass + return WaysToGo + + + +func Move(SetDirection): + + if SetDirection == "R": + self.global_position.x += 24.4 + Current_Position[0] +=1 + Prev_dir = "R" + Prev_dir_Opp = "L" + move += Move_Strength + Been_There() + + if SetDirection == "L": + self.global_position.x -= 24.4 + Current_Position[0] -=1 + Prev_dir = "L" + Prev_dir_Opp = "R" + move += Move_Strength + Been_There() + if SetDirection == "D": + self.global_position.y += 24 + Current_Position[1] -=1 + Prev_dir = "D" + Prev_dir_Opp = "U" + move += Move_Strength + Been_There() + if SetDirection == "U": + self.global_position.y -= 24 + Current_Position[1] +=1 + Prev_dir = "U" + Prev_dir_Opp = "D" + move += Move_Strength + Been_There() + #print(Current_Position) + + +func AutoSolve(): + var R: bool = $Rightv.is_colliding() + var L: bool = $Leftv.is_colliding() + var D: bool = $Forwardv.is_colliding() + var U: bool = $Backv.is_colliding() + + var DirectionStrengths = [6,6,5,6] + var Colliders = [R,L,U,D] + var DirArray = ["R","L","U","D"] + var DumpDuplicate = LogDump + + + var cp = Current_Position + var OptionArrays = [[cp[0],cp[1]+1],[cp[0],cp[1]-1],[cp[0]+1,cp[1]],[cp[0]-1,cp[1]]] + + for n in DirectionStrengths.size(): + var MoveScore = DumpDuplicate.rfind(DirArray[n]) + if Colliders[n] == true: + DirectionStrengths[n] -= 1000 + if DirArray.find(Prev_dir_Opp) == n: + DirectionStrengths[n] -= 50 + if Individual_Steps.size() < 1 and Ordered_Commands_Backward.size() > 1: + if Ordered_Commands_Backward[0] == DirArray[n]: + DirectionStrengths[n] -= 25 + elif Individual_Steps.size() >= 1: + var Wayback = Individual_Steps[0] + if Wayback[0] == DirArray[n]: + DirectionStrengths[n] -= 25 + if MoveScore < 15: + DirectionStrengths[n] -= MoveScore + + for i in OptionArrays: + if Intersections.find(i) != -1: + DirectionStrengths[n] -= 100 + + + + + AutoBacktrack = false + var HighestPoints = DirectionStrengths.find(max(DirectionStrengths[0],DirectionStrengths[1],DirectionStrengths[2],DirectionStrengths[3])) + #print(DirArray[HighestPoints]) + Move(DirArray[HighestPoints]) + #print(DirectionStrengths) + #print(DirArray) + #print(Individual_Steps) + + diff --git a/Project_Forum_From_Home/.gitattributes b/Project_Forum_From_Home/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/Project_Forum_From_Home/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/Project_Forum_From_Home/.gitignore b/Project_Forum_From_Home/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/Project_Forum_From_Home/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/Project_Forum_From_Home/icon.svg b/Project_Forum_From_Home/icon.svg new file mode 100644 index 0000000..3fe4f4a --- /dev/null +++ b/Project_Forum_From_Home/icon.svg @@ -0,0 +1 @@ + diff --git a/Project_Forum_From_Home/icon.svg.import b/Project_Forum_From_Home/icon.svg.import new file mode 100644 index 0000000..7c65f45 --- /dev/null +++ b/Project_Forum_From_Home/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmy7a1rfp2p1v" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Project_Forum_From_Home/project.godot b/Project_Forum_From_Home/project.godot new file mode 100644 index 0000000..720928d --- /dev/null +++ b/Project_Forum_From_Home/project.godot @@ -0,0 +1,20 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Project_Forum_From_Home" +config/features=PackedStringArray("4.2", "GL Compatibility") +config/icon="res://icon.svg" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/Rightv.gd b/Rightv.gd new file mode 100644 index 0000000..6f10d04 --- /dev/null +++ b/Rightv.gd @@ -0,0 +1,20 @@ +extends RayCast2D + + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if is_colliding(): + #print("True") + var right: bool = true + + else: + #print("False") + var right: bool = false + + diff --git a/Terrain (16x16).png b/Terrain (16x16).png new file mode 100644 index 0000000..6674ca1 Binary files /dev/null and b/Terrain (16x16).png differ diff --git a/Terrain (16x16).png.import b/Terrain (16x16).png.import new file mode 100644 index 0000000..d14b20f --- /dev/null +++ b/Terrain (16x16).png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtx8kr48cia6x" +path="res://.godot/imported/Terrain (16x16).png-f072e8a5f99e915c05031c83401c87a9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Terrain (16x16).png" +dest_files=["res://.godot/imported/Terrain (16x16).png-f072e8a5f99e915c05031c83401c87a9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..3fe4f4a --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..7c44082 --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpuvmnj2uuavs" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/main.tscn b/main.tscn new file mode 100644 index 0000000..42b585a --- /dev/null +++ b/main.tscn @@ -0,0 +1,240 @@ +[gd_scene load_steps=11 format=3 uid="uid://3npln43bfsg1"] + +[ext_resource type="PackedScene" uid="uid://3iw0nxyxa7su" path="res://Main_player.tscn" id="1_3taq6"] +[ext_resource type="Texture2D" uid="uid://75ue47s4k2cg" path="res://Brown.png" id="1_bswhl"] +[ext_resource type="Script" path="res://Rightv.gd" id="3_jsckq"] +[ext_resource type="Texture2D" uid="uid://dtx8kr48cia6x" path="res://Terrain (16x16).png" id="3_w3ddf"] +[ext_resource type="Script" path="res://Leftv.gd" id="4_588ig"] +[ext_resource type="Script" path="res://Forwardv.gd" id="5_m3tpq"] + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_d6sbf"] +load_path = "res://.godot/imported/Terrain (16x16).png-f072e8a5f99e915c05031c83401c87a9.ctex" + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ux1mt"] +texture = SubResource("CompressedTexture2D_d6sbf") +18:5/0 = 0 +18:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_jnsen"] +texture = ExtResource("3_w3ddf") +0:0/0 = 0 +1:0/0 = 0 +2:0/0 = 0 +3:0/0 = 0 +4:0/0 = 0 +6:0/0 = 0 +7:0/0 = 0 +8:0/0 = 0 +9:0/0 = 0 +10:0/0 = 0 +12:0/0 = 0 +13:0/0 = 0 +14:0/0 = 0 +15:0/0 = 0 +17:0/0 = 0 +18:0/0 = 0 +19:0/0 = 0 +0:1/0 = 0 +1:1/0 = 0 +2:1/0 = 0 +3:1/0 = 0 +4:1/0 = 0 +6:1/0 = 0 +7:1/0 = 0 +8:1/0 = 0 +9:1/0 = 0 +10:1/0 = 0 +12:1/0 = 0 +13:1/0 = 0 +14:1/0 = 0 +15:1/0 = 0 +17:1/0 = 0 +18:1/0 = 0 +19:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +6:2/0 = 0 +7:2/0 = 0 +8:2/0 = 0 +13:2/0 = 0 +14:2/0 = 0 +15:2/0 = 0 +17:2/0 = 0 +18:2/0 = 0 +19:2/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +12:4/0 = 0 +13:4/0 = 0 +14:4/0 = 0 +15:4/0 = 0 +17:4/0 = 0 +17:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +18:4/0 = 0 +18:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +19:4/0 = 0 +19:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +20:4/0 = 0 +20:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +21:4/0 = 0 +21:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +12:5/0 = 0 +13:5/0 = 0 +14:5/0 = 0 +15:5/0 = 0 +17:5/0 = 0 +17:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +18:5/0 = 0 +18:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +19:5/0 = 0 +19:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +20:5/0 = 0 +20:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +21:5/0 = 0 +21:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:6/0 = 0 +1:6/0 = 0 +2:6/0 = 0 +6:6/0 = 0 +7:6/0 = 0 +8:6/0 = 0 +13:6/0 = 0 +14:6/0 = 0 +15:6/0 = 0 +17:6/0 = 0 +17:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +18:6/0 = 0 +18:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +19:6/0 = 0 +19:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:8/0 = 0 +1:8/0 = 0 +2:8/0 = 0 +3:8/0 = 0 +4:8/0 = 0 +6:8/0 = 0 +7:8/0 = 0 +8:8/0 = 0 +9:8/0 = 0 +10:8/0 = 0 +12:8/0 = 0 +13:8/0 = 0 +14:8/0 = 0 +15:8/0 = 0 +17:8/0 = 0 +17:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +18:8/0 = 0 +18:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +19:8/0 = 0 +19:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +20:8/0 = 0 +20:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:9/0 = 0 +1:9/0 = 0 +2:9/0 = 0 +3:9/0 = 0 +4:9/0 = 0 +6:9/0 = 0 +7:9/0 = 0 +8:9/0 = 0 +9:9/0 = 0 +10:9/0 = 0 +12:9/0 = 0 +13:9/0 = 0 +14:9/0 = 0 +15:9/0 = 0 +17:9/0 = 0 +17:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +18:9/0 = 0 +18:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +19:9/0 = 0 +19:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +20:9/0 = 0 +20:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:10/0 = 0 +1:10/0 = 0 +2:10/0 = 0 +6:10/0 = 0 +7:10/0 = 0 +8:10/0 = 0 +13:10/0 = 0 +14:10/0 = 0 +15:10/0 = 0 +18:10/0 = 0 +18:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +19:10/0 = 0 +19:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +20:10/0 = 0 +20:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) + +[sub_resource type="TileSet" id="TileSet_akdff"] +physics_layer_0/collision_layer = 1 +sources/0 = SubResource("TileSetAtlasSource_ux1mt") +sources/1 = SubResource("TileSetAtlasSource_jnsen") + +[node name="Main" type="Node"] + +[node name="TextureRect" type="TextureRect" parent="."] +texture_filter = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +scale = Vector2(0.9, 0.9) +texture = ExtResource("1_bswhl") +stretch_mode = 1 + +[node name="Player" parent="TextureRect" instance=ExtResource("1_3taq6")] +position = Vector2(26.6667, 26.6667) +scale = Vector2(0.9, 0.9) + +[node name="Rightv" type="RayCast2D" parent="TextureRect/Player"] +scale = Vector2(1, 0.950617) +exclude_parent = false +target_position = Vector2(32.8, 0) +script = ExtResource("3_jsckq") + +[node name="Leftv" type="RayCast2D" parent="TextureRect/Player"] +scale = Vector2(0.795202, 1) +exclude_parent = false +target_position = Vector2(-38.04, 0) +script = ExtResource("4_588ig") + +[node name="Forwardv" type="RayCast2D" parent="TextureRect/Player"] +scale = Vector2(1, 0.98416) +exclude_parent = false +target_position = Vector2(0, 34.335) +script = ExtResource("5_m3tpq") + +[node name="Backv" type="RayCast2D" parent="TextureRect/Player"] +scale = Vector2(0.984064, 1) +exclude_parent = false +target_position = Vector2(0, -34.13) + +[node name="TileMap" type="TileMap" parent="TextureRect"] +texture_filter = 1 +position = Vector2(71.1111, 35.5556) +scale = Vector2(0.9, 0.9) +tile_set = SubResource("TileSet_akdff") +format = 2 +layer_0/tile_data = PackedInt32Array(-65541, 1114113, 5, -5, 1114113, 4, 65531, 1114113, 5, 2490372, 1179649, 5, 2490371, 1179649, 5, 2490370, 1114113, 4, 2490369, 1114113, 4, 2490368, 1114113, 4, 2555903, 1114113, 4, 2555902, 1114113, 4, 2555901, 1114113, 4, 2555900, 1114113, 4, 2555899, 1114113, 4, 2490363, 1114113, 4, 2424827, 1114113, 4, 2359291, 1114113, 4, 2293755, 1114113, 4, 2228219, 1114113, 4, 2162683, 1114113, 4, 2097147, 1114113, 4, 2031611, 1114113, 4, 1966075, 1114113, 4, 1900539, 1114113, 4, 1835003, 1114113, 4, 1769467, 1114113, 4, 1638395, 1114113, 4, 1703931, 1114113, 4, 1572859, 1114113, 4, 1507323, 1114113, 4, 1441787, 1114113, 4, 1376251, 1114113, 4, 1310715, 1114113, 4, 1245179, 1114113, 4, 1179643, 1114113, 4, 1114107, 1114113, 4, 1048571, 1114113, 4, 983035, 1114113, 4, 917499, 1114113, 4, 851963, 1114113, 4, 786427, 1114113, 4, 720891, 1114113, 4, 655355, 1114113, 4, 589819, 1114113, 4, 524283, 1114113, 4, 458747, 1114113, 4, 393211, 1114113, 4, 327675, 1114113, 4, 262139, 1114113, 4, 196603, 1114113, 4, 131067, 1114113, 4, 1048572, 1114113, 4, 1048573, 1114113, 4, 1048574, 1114113, 4, 1048575, 1114113, 4, 983040, 1114113, 4, 983041, 1114113, 4, 983042, 1114113, 4, 983043, 1114113, 4, 1245191, 1114113, 4, 1310727, 1114113, 4, 1376263, 1114113, 4, 1441799, 1114113, 4, 1507335, 1114113, 4, 1245192, 1114113, 4, 1245193, 1114113, 4, 1245194, 1114113, 4, 1245195, 1114113, 4, 1835004, 1114113, 4, 1835005, 1114113, 4, 1835006, 1114113, 4, 1835007, 1114113, 4, 1769472, 1114113, 4, 1769473, 1114113, 4, 1769474, 1114113, 4, 1769475, 1114113, 4, 1769476, 1114113, 4, 1769477, 1114113, 4, 1769478, 1114113, 4, 1769479, 1114113, 4, 1572871, 1114113, 4, 1638407, 1114113, 4, 1703943, 1114113, 4, 1310731, 1114113, 4, 1376267, 1114113, 4, 1441803, 1114113, 4, 1507339, 1114113, 4, 1572875, 1114113, 4, 1638411, 1114113, 4, 1703947, 1114113, 4, 1769483, 1114113, 4, 655375, 1114113, 4, 720911, 1114113, 4, 786447, 1114113, 4, 851983, 1114113, 4, 917519, 1114113, 4, 983055, 1114113, 4, 655376, 1114113, 4, 655377, 1114113, 4, 655378, 1114113, 4, 655379, 1114113, 4, 655380, 1114113, 4, 655381, 1114113, 4, 655382, 1114113, 4, 655383, 1114113, 4, 720919, 1114113, 4, 786455, 1114113, 4, 851991, 1114113, 4, 917527, 1114113, 4, 983063, 1114113, 4, 983059, 1114113, 4, 917523, 1114113, 4, 851987, 1114113, 4, 786451, 1114113, 4, 720915, 1114113, 4, 983067, 1114113, 4, 917531, 1114113, 4, 851995, 1114113, 4, 786459, 1114113, 4, 720923, 1114113, 4, 655387, 1114113, 4, 655388, 1114113, 4, 655389, 1114113, 4, 655390, 1114113, 4, 655391, 1114113, 4, 655392, 1114113, 4, 1048591, 1114113, 4, 1114127, 1114113, 4, 1179663, 1114113, 4, 1245199, 1114113, 4, 1310735, 1114113, 4, 1376271, 1114113, 4, 1441807, 1114113, 4, 1441808, 1114113, 4, 1441809, 1114113, 4, 1441810, 1114113, 4, 1441811, 1114113, 4, 1703951, 1114113, 4, 1703952, 1114113, 4, 1703953, 1114113, 4, 1703954, 1114113, 4, 1703955, 1114113, 4, 1245203, 1114113, 4, 1310739, 1114113, 4, 1376275, 1114113, 4, 1245204, 1114113, 4, 1245205, 1114113, 4, 1245206, 1114113, 4, 1245207, 1114113, 4, 1769487, 1114113, 4, 1835023, 1114113, 4, 1900559, 1114113, 4, 1966095, 1114113, 4, 2031631, 1114113, 4, 2031630, 1114113, 4, 2031629, 1114113, 4, 2031628, 1114113, 4, 2031627, 1114113, 4, 2031626, 1114113, 4, 2031625, 1114113, 4, 2031624, 1114113, 4, 2031623, 1114113, 4, 2031622, 1179649, 5, 2031621, 1179649, 5, 2031620, 1179649, 5, 2031619, 1179649, 5, 2031618, 1179649, 5, 2031617, 1179649, 5, 2031616, 1179649, 5, 2097151, 1179649, 5, 2162687, 1179649, 5, 2228223, 1179649, 5, 2293759, 1179649, 5, 2359295, 1179649, 5, 2424831, 1179649, 5, 2490367, 1179649, 5, 1769491, 1179649, 5, 1835027, 1179649, 5, 1900563, 1179649, 5, 1966099, 1179649, 5, 2031635, 1179649, 5, 1048615, 1179649, 8, 1114151, 1179649, 8, 1179687, 1179649, 8, 1179688, 1179649, 8, 1179689, 1179649, 8, 1179690, 1179649, 8, 1179691, 1179649, 8, 1114155, 1179649, 8, 1048619, 1179649, 8, 983083, 1179649, 8, 917547, 1179649, 8, 983079, 1179649, 8, 917543, 1179649, 8, 852011, 1179649, 4, 786475, 1179649, 4, 720939, 1179649, 4, 655403, 1179649, 4, 655402, 1179649, 4, 655401, 1179649, 4, 655400, 1179649, 4, 655399, 1179649, 4, 655398, 1179649, 4, 655397, 1179649, 4, 655396, 1179649, 4, 655395, 1179649, 4, 655394, 1179649, 4, 917542, 1179649, 4, 917541, 1179649, 4, 917540, 1179649, 4, 917539, 1179649, 4, 917538, 1179649, 4, 655393, 1179649, 4, 917537, 1179649, 4, 917536, 1179649, 4, 917535, 1179649, 4, 983071, 1179649, 4, 1048607, 1179649, 4, 1114143, 1179649, 4, 1179679, 1179649, 4, 393253, 1179649, 4, 393254, 1179649, 4, 393255, 1179649, 4, 393256, 1179649, 4, 393257, 1179649, 4, 393258, 1179649, 4, 393259, 1179649, 4, 393260, 1179649, 4, 393261, 1179649, 4, 393263, 1179649, 4, 393262, 1179649, 4, 458799, 1179649, 4, 524335, 1179649, 4, 589871, 1179649, 4, 655407, 1179649, 4, 1310743, 1179649, 4, 1376279, 1179649, 4, 1441815, 1179649, 4, 2293779, 1179649, 4, 2293778, 1179649, 4, 2293777, 1179649, 4, 2293776, 1179649, 4, 2293775, 1179649, 4, 2293774, 1179649, 4, 2293773, 1179649, 4, 2293772, 1179649, 4, 2293771, 1179649, 4, 2293770, 1179649, 4, 2293769, 1179649, 4, 2293768, 1179649, 4, 2293767, 1179649, 4, 2293766, 1179649, 4, 2293765, 1179649, 4, 2293764, 1179649, 4, 2293763, 1179649, 4, 2359299, 1179649, 4, 2424835, 1179649, 5, 2359301, 1179649, 5, 2359300, 1179649, 5, 2424836, 1179649, 5, 2424837, 1179649, 5, 2424838, 1179649, 5, 2424839, 1179649, 5, 2424840, 1179649, 5, 2424841, 1179649, 5, 2424842, 1179649, 5, 2424843, 1179649, 5, 2424844, 1179649, 5, 2424845, 1179649, 5, 2424846, 1179649, 5, 2424847, 1179649, 5, 2424848, 1179649, 5, 2424849, 1179649, 5, 2424850, 1179649, 5, 2424851, 1179649, 5, 2359315, 1179649, 5, 2359314, 1179649, 5, 2359313, 1179649, 5, 2359312, 1179649, 5, 2359311, 1179649, 5, 2359310, 1179649, 5, 2359309, 1179649, 5, 2359308, 1179649, 5, 2359307, 1179649, 5, 2359306, 1179649, 5, 2359305, 1179649, 5, 2359304, 1179649, 5, 2359303, 1179649, 5, 2359302, 1179649, 5, 2424855, 1179648, 5, 2359319, 1179648, 5, 2293783, 1179648, 5, 2228247, 1179649, 5, 2162711, 1179649, 5, 2097175, 1179649, 5, 2031639, 1179649, 5, 1966103, 1179649, 5, 1900567, 1179649, 5, 1835031, 1179649, 5, 1769495, 1179649, 5, 1703959, 1179649, 5, 1703960, 1179649, 5, 1703961, 1179648, 5, 1703962, 1179648, 5, 1703963, 1179648, 5, 1703964, 1179648, 5, 1703965, 1179649, 5, 1703966, 1179649, 5, 1441816, 1179649, 5, 1441817, 1179649, 5, 1441818, 1179649, 5, 1441819, 1179649, 805306373, 1441820, 1179649, 5, 1441821, 1179649, 5, 1441822, 1179649, 5, 1441823, 1179649, 805306373, 1441824, 1179649, 805306373, 1441825, 1179649, 805306373, 1441826, 1179649, 805306373, 1507362, 1179649, 805306373, 1572898, 1179649, 805306373, 1638434, 1179649, 805306373, 1703970, 1179649, 805306373, 1769506, 1179649, 805306373, 1835042, 1179649, 805306373, 1900578, 1179649, 805306373, 1966114, 1179649, 805306373, 2031650, 1179649, 805306373, 2097186, 1179649, 805306373, 2162722, 1179649, 805306373, 2228258, 1179649, 805306373, 2293794, 1179649, 805306373, 2359330, 1179649, 805306373, 2424866, 1179649, 805306373, 1769502, 1179649, 805306373, 1835038, 1179649, 805306373, 1900574, 1179649, 805306373, 1966110, 1179649, 805306373, 2031646, 1179649, 805306373, 2097182, 1179649, 805306373, 2162718, 1179649, 805306373, 2228254, 1179649, 805306373, 2228253, 1179649, 805306373, 2228252, 1179649, 805306373, 2228251, 1179649, 805306373, 2162715, 1179649, 805306373, 2097179, 1179649, 805306373, 2031643, 1179649, 805306373, 1966107, 1179649, 805306373, 1966108, 1179649, 805306373, 2031644, 1179649, 805306373, 2097180, 1179649, 805306373, 2162716, 1179649, 805306373, 2162717, 1179649, 805306373, 2097181, 1179649, 805306373, 2031645, 1179649, 805306373, 1966109, 1179649, 805306373, 1048603, 1179649, 805306373, 1114139, 1179649, 805306373, 1179675, 1179649, 805306373, 1245211, 1179649, 805306373, 1310747, 1179649, 805306373, 1376283, 1179649, 805306373, 1179680, 1179649, 805306373, 1179681, 1179649, 805306373, 1179682, 1179649, 805306373, 1179683, 1179649, 805306373, 1441827, 1179649, 805306373, 1441828, 1179649, 805306373, 1441829, 1179649, 805306373, 1441830, 1179649, 805306373, 1441831, 1179649, 805306373, 1441832, 1179649, 805306373, 1441833, 1179649, 805306373, 1441834, 1179649, 805306373, 1441835, 1179649, 805306373, 1441836, 1179649, 805306373, 1441837, 1179649, 805306373, 1179692, 1179649, 805306373, 1179693, 1179649, 805306373, 1179694, 1179648, 5, 1179695, 1179648, 5, 720943, 1179649, 805306373, 786479, 1179649, 805306373, 852015, 1179649, 805306373, 917551, 1179649, 805306373, 917552, 1179649, 805306373, 917553, 1179649, 805306373, 917554, 1179649, 805306373, 917555, 1179649, 805306373, 393267, 1179649, 805306373, 458803, 1179649, 805306373, 524339, 1179649, 805306373, 589875, 1179649, 805306373, 655411, 1179649, 805306373, 720947, 1179649, 805306373, 786483, 1179649, 805306373, 852019, 1179649, 805306373, 327731, 1179649, 805306373, 262195, 1179649, 805306373, 196659, 1179649, 805306373, 131123, 1179649, 805306373, 131112, 1179649, 805306373, 131113, 1179649, 805306373, 131114, 1179649, 805306373, 131115, 1179649, 805306373, 131116, 1179649, 805306373, 131117, 1179649, 805306373, 131118, 1179649, 805306373, 131119, 1179649, 805306373, -131032, 1179649, 805306373, -131031, 1179649, 805306373, -131030, 1179649, 805306373, -131029, 1179649, 805306373, -131028, 1179649, 805306373, -131027, 1179649, 805306373, -131026, 1179649, 805306373, -131025, 1179649, 805306373, -131024, 1179649, 805306373, -131023, 1179649, 805306373, -131022, 1179649, 805306373, -131021, 1179649, 805306373, -131033, 1179649, 805306373, -131034, 1179649, 805306373, -131035, 1179649, 805306373, 131124, 1179649, 805306373, 131125, 1179649, 805306373, 131126, 1179649, 805306373, 131127, 1179649, 805306373, -131020, 1179649, 805306373, -131019, 1179649, 805306373, -131018, 1179649, 805306373, -131017, 1179649, 805306373, -131016, 1179649, 805306373, -131015, 1179649, 805306373, -131014, 1179649, 805306373, -131013, 1179649, 805306373, -131012, 1179648, 5, -131011, 1179649, 805306373, 196663, 1179649, 805306373, 262199, 1179649, 805306373, 327735, 1179649, 805306373, 393271, 1179649, 805306373, 458807, 1179649, 805306373, 458808, 1179649, 805306373, 458809, 1179649, 805306373, 458810, 1179649, 805306373, 1179696, 1179648, 5, 1179697, 1179649, 805306373, 1179698, 1179649, 805306373, 1179699, 1179649, 805306373, 1179700, 1179649, 805306373, 1179701, 1179649, 805306373, 1179702, 1179649, 805306373, 1179703, 1179649, 805306373, 1114167, 1179649, 805306373, 1048631, 1179649, 805306373, 983095, 1179649, 805306373, 917559, 1179649, 805306373, 852023, 1179649, 805306373, 786487, 1179649, 805306373, -65477, 1179649, 805306373, 59, 1179649, 805306373, 65595, 1179649, 805306373, 131131, 1179649, 805306373, 196667, 1179649, 805306373, 196668, 1179649, 805306373, 196669, 1179648, 5, 720954, 1179649, 805306373, 786490, 1179649, 805306373, 786489, 1179649, 805306373, 786488, 1179649, 805306373, 720953, 1179649, 805306373, 720952, 1179649, 805306373, 720951, 1179649, 805306373, 852026, 1179649, 805306373, 917562, 1179649, 805306373, 983098, 1179649, 805306373, 1048634, 1179649, 805306373, 1114170, 1179649, 805306373, 1179706, 1179649, 805306373, 1245233, 1179649, 805306373, 1310769, 1179649, 805306373, 1376305, 1179649, 805306373, 1441841, 1179649, 805306373, 1507377, 1179649, 805306373, 1572913, 1179649, 805306373, 1638449, 1179649, 805306373, 1703983, 1179649, 805306373, 1703982, 1179649, 805306373, 1703981, 1179649, 805306373, 1703984, 1179649, 805306373, 1703985, 1179649, 805306373, 1703980, 1179649, 805306373, 1703979, 1179649, 805306373, 1703978, 1179649, 805306373, 1703977, 1179649, 805306373, 1703976, 1179649, 805306373, 1703975, 1179649, 805306373, 1703974, 1179649, 805306373, 1769510, 1179649, 805306373, 1835046, 1179649, 805306373, 1900582, 1179649, 805306373, 1966118, 1179649, 805306373, 2031654, 1179649, 805306373, 2097190, 1179649, 805306373, 2162726, 1179649, 805306373, 2228262, 1179649, 805306373, 2228263, 1179649, 805306373, 2228264, 1179649, 805306373, 2228265, 1179649, 805306373, 2228266, 1179649, 805306373, 2228267, 1179649, 805306373, 2228268, 1179649, 805306373, 2228269, 1179649, 805306373, 2228270, 1179649, 805306373, 2162734, 1179649, 805306373, 2097198, 1179649, 805306373, 2031662, 1179649, 805306373, 1966126, 1179649, 805306373, 1966125, 1179649, 805306373, 1966124, 1179649, 805306373, 1966123, 1179649, 805306373, 1966122, 1179649, 805306373, 1703986, 1179648, 5, 1769522, 1179649, 805306373, 1835058, 1179649, 805306373, 1900594, 1179649, 805306373, 1245234, 1179649, 805306373, 1310770, 1179648, 5, 1376306, 1179648, 5, 1441842, 1179648, 5, 1638450, 1179648, 5, 1572914, 1179648, 5, 1507378, 1179648, 5, 1966130, 1179649, 805306373, 2031666, 1179649, 805306373, 2097202, 1179649, 805306373, 2162738, 1179649, 805306373, 2228274, 1179649, 805306373, 2228275, 1179649, 805306373, 2228276, 1179649, 805306373, 2228277, 1179649, 805306373, 2228278, 1179649, 805306373, 1900602, 1179649, 805306373, 1966138, 1179649, 805306373, 2031674, 1179649, 805306373, 2097210, 1179649, 805306373, 2162746, 1179649, 805306373, 2228282, 1179649, 805306373, 2162742, 1179649, 805306373, 2097206, 1179649, 805306373, 2031670, 1179649, 805306373, 1966134, 1179649, 805306373, 1900598, 1179649, 805306373, 1835062, 1179649, 805306373, 1769526, 1179649, 805306373, 1703990, 1179649, 805306373, 1638454, 1179649, 805306373, 1638455, 1179649, 805306373, 1638456, 1179649, 805306373, 1638457, 1179649, 805306373, 1638458, 1179649, 805306373, 1572922, 1179649, 805306373, 1572921, 1179649, 805306373, 1572920, 1179649, 805306373, 1572919, 1179649, 805306373, 1572918, 1179649, 805306373, 1507382, 1179649, 805306373, 1507383, 1179649, 805306373, 1507384, 1179649, 805306373, 1507385, 1179649, 805306373, 1507386, 1179649, 805306373, 1441846, 1179649, 805306373, 1441847, 1179649, 805306373, 1441848, 1179649, 805306373, 1441849, 1179649, 805306373, 1441850, 1179649, 805306373, 2228283, 1179649, 805306373, 2228284, 1179649, 805306373, 2228285, 1179649, 805306373, -131073, 1114113, 4, -131074, 1114113, 4, -131075, 1114113, 4, -131076, 1114113, 4, -131077, 1114113, 4, -196608, 1114113, 4, -196607, 1114113, 4, -196606, 1114113, 4, -196605, 1114113, 4, -196604, 1114113, 4, -196603, 1114113, 4, -196602, 1114113, 4, -196601, 1114113, 4, -131065, 1114113, 4, -65529, 1114113, 4, 7, 1114113, 4, 65543, 1114113, 4, 131079, 1114113, 4, 196615, 1114113, 4, 262151, 1114113, 4, 327687, 1114113, 4, 393223, 1114113, 4, 458759, 1114113, 4, 524295, 1114113, 4, 589831, 1114113, 4, 655367, 1114113, 4, 720903, 1114113, 4, 786439, 1114113, 4, 851975, 1114113, 4, 917511, 1114113, 4, 983047, 1114113, 4, -196600, 1114113, 4, -196599, 1114113, 4, -196598, 1114113, 4, -196597, 1114113, 4, -196596, 1114113, 4, -196595, 1114113, 4, -196594, 1114113, 4, -196593, 1114113, 4, -131057, 1114113, 4, -65521, 1114113, 4, 15, 1114113, 4, 65551, 1114113, 4, 131087, 1114113, 4, 196623, 1114113, 4, 262159, 1114113, 4, 327695, 1114113, 4, 393231, 1114113, 4, 393232, 1179648, 5, 393233, 1179648, 5, 393234, 1179648, 5, 393235, 1179648, 5, 393236, 1179648, 5, 393237, 1179648, 5, 393238, 1179648, 5, 393239, 1179648, 5, 393240, 1179648, 5, 393241, 1114113, 4, 393242, 1114113, 4, 393243, 1114113, 4, 393244, 1114113, 4, 393245, 1114113, 4, 393246, 1114113, 4, 393247, 1114113, 4, 393248, 1114113, 4, 327712, 1179648, 5, 262176, 1114113, 4, 196640, 1114113, 4, 131104, 1114113, 4, 65568, 1114113, 4, 65567, 1114113, 4, 65566, 1114113, 4, 65565, 1114113, 4, 65564, 1114113, 4, 65563, 1114113, 4, 131099, 1114113, 4, 131100, 1114113, 4, 131101, 1114113, 4, 131102, 1114113, 4, 131103, 1114113, 4, 131088, 1114113, 4, 65552, 1114113, 4, 65553, 1114113, 4, 131089, 1114113, 4, 131090, 1114113, 4, 65554, 1114113, 4, 65555, 1114113, 4, 131091, 1114113, 4, 131092, 1114113, 4, 65556, 1114113, 4, 65557, 1114113, 4, 131093, 1114113, 4, 131094, 1114113, 4, 65558, 1114113, 4, 65559, 1114113, 4, 131095, 1179648, 5, -196592, 1114113, 4, -196591, 1114113, 4, -196590, 1114113, 4, -196589, 1114113, 4, -196588, 1114113, 4, -196587, 1114113, 4, -196586, 1114113, 4, -196585, 1114113, 4, -196584, 1114113, 4, -196583, 1114113, 4, -196582, 1114113, 4, -196581, 1114113, 4, -196580, 1114113, 4, -196579, 1114113, 4, -196578, 1114113, 4, -196577, 1114113, 4, -196576, 1114113, 4, -196575, 1114113, 4, -196574, 1114113, 4, -196573, 1114113, 4, -196572, 1114113, 4, -131036, 1114113, 4, -65500, 1114113, 4, 36, 1114113, 4, 65572, 1114113, 4, 131108, 1114113, 4, 196644, 1114113, 4, 262180, 1114113, 4, 327716, 1114113, 4, 393252, 1114113, 4, -196571, 1114113, 4, -196570, 1114113, 4, -196569, 1114113, 4, -196568, 1114113, 4, -196567, 1114113, 4, -196566, 1114113, 4, -196565, 1114113, 4, -196564, 1114113, 4, -196563, 1114113, 4, -196562, 1114113, 4, -196561, 1114113, 4, -196560, 1114113, 4, -196559, 1114113, 4, -196558, 1114113, 4, -196557, 1114113, 4, -196556, 1114113, 4, -196555, 1114113, 4, -196554, 1114113, 4, -196553, 1114113, 4, -196552, 1114113, 4, -196551, 1114113, 4, -196550, 1114113, 4, -196549, 1114113, 4, -196548, 1114113, 4, -196547, 1114113, 4, -196546, 1114113, 4, -131010, 1114113, 4, -65474, 1114113, 4, 62, 1114113, 4, 65598, 1114113, 4, 131134, 1114113, 4, 196670, 1114113, 4, 262206, 1114113, 4, 327742, 1114113, 4, 393278, 1114113, 4, 458814, 1114113, 4, 524350, 1114113, 4, 589886, 1114113, 4, 655422, 1114113, 4, 720958, 1114113, 4, 786494, 1114113, 4, 852030, 1114113, 4, 917566, 1114113, 4, 983102, 1114113, 4, 1048638, 1114113, 4, 1114174, 1114113, 4, 1179710, 1114113, 4, 1245246, 1114113, 4, 1310782, 1114113, 4, 1376318, 1114113, 4, 1441854, 1114113, 4, 1507390, 1114113, 4, 1572926, 1114113, 4, 1638462, 1114113, 4, 1703998, 1114113, 4, 1769534, 1114113, 4, 1835070, 1114113, 4, 1900606, 1114113, 4, 1966142, 1114113, 4, 2031678, 1114113, 4, 2097214, 1114113, 4, 2162750, 1114113, 4, 2228286, 1114113, 4, 2293822, 1114113, 4, 2359358, 1114113, 4, 2424894, 1114113, 4, 2490430, 1114113, 4, 2490429, 1114113, 4, 2490428, 1114113, 4, 2490427, 1114113, 4, 2490426, 1114113, 4, 2490425, 1114113, 4, 2490424, 1114113, 4, 2490423, 1114113, 4, 2490422, 1114113, 4, 2490421, 1114113, 4, 2490420, 1114113, 4, 2490419, 1114113, 4, 2490418, 1114113, 4, 2490417, 1114113, 4, 2490416, 1114113, 4, 2490415, 1114113, 4, 2490414, 1114113, 4, 2490413, 1114113, 4, 2490412, 1114113, 4, 2490411, 1114113, 4, 2490410, 1114113, 4, 2490409, 1114113, 4, 2490408, 1114113, 4, 2490407, 1114113, 4, 2490406, 1114113, 4, 2490405, 1114113, 4, 2490404, 1114113, 4, 2490403, 1114113, 4, 2490402, 1114113, 4, 2490401, 1114113, 4, 2490400, 1114113, 4, 2490399, 1114113, 4, 2490398, 1114113, 4, 2490397, 1114113, 4, 2490396, 1114113, 4, 2490395, 1114113, 4, 2490394, 1114113, 4, 2490393, 1114113, 4, 2490392, 1114113, 4, 2490391, 1114113, 4, 2490390, 1114113, 4, 2490389, 1114113, 4, 2490388, 1114113, 4, 2490387, 1114113, 4, 2490386, 1114113, 4, 2490385, 1114113, 4, 2490384, 1114113, 4, 2490383, 1114113, 4, 2490382, 1114113, 4, 2490381, 1114113, 4, 2490380, 1114113, 4, 2490379, 1114113, 4, 2490378, 1114113, 4, 2490377, 1114113, 4, 2490376, 1114113, 4, 2490375, 1114113, 4, 2490374, 1114113, 4, 2490373, 1114113, 4, -65538, 1179648, 5, -2, 1179648, 5, 65534, 1179648, 5, 131070, 1179648, 5, 196606, 1179648, 5, 262142, 1179648, 5, 327678, 1179648, 5, 393214, 1179648, 5, 458750, 1179648, 5, 524286, 1179648, 5, 589822, 1179648, 5, 655358, 1179648, 5, 720894, 1179648, 5, 786430, 1179648, 5, 851966, 1179648, 5, 917505, 1179648, 5, 851969, 1179648, 5, 786433, 1179648, 5, 720897, 1179648, 5, 655361, 1179648, 5, 589825, 1179648, 5, 393217, 1179648, 5, 327681, 1179648, 5, 262145, 1179648, 5, 196609, 1179648, 5, 131073, 1179648, 5, 65537, 1179648, 5, 393218, 1179648, 5, 393219, 1179648, 5, 589826, 1179648, 5, 589827, 1179648, 5, 393220, 1179648, 5, 458756, 1179648, 5, 524292, 1179648, 5, 589828, 1179648, 5, 1, 1179648, 5, 2, 1179648, 5, 3, 1179648, 5, 4, 1179648, 5, 65540, 1179648, 5, 131076, 1179648, 5, 196612, 1179648, 5, 983044, 1179648, 5, 786436, 1179648, 5, 786438, 1179648, 5, 786437, 1179648, 5, 1048580, 1179648, 5, 1114116, 1179648, 5, 1048583, 1179648, 5, 1048584, 1179648, 5, 1048585, 1179648, 5, 1048586, 1179648, 5, 1048587, 1179648, 5, 1376257, 1179648, 5, 1441793, 1179648, 5, 1507329, 1179648, 5, 1572865, 1179648, 5, 1179652, 1179648, 5, 1376256, 1179648, 5, 1441791, 1179648, 5, 1441790, 1179648, 5, 1179649, 1179648, 5, 1179648, 1179648, 5, 1245183, 1179648, 5, 1245182, 1179648, 5, 1507326, 1179648, 5, 1572862, 1179648, 5, 1638398, 1179648, 5, 1048588, 1179648, 5, 983050, 1179648, 5, 917514, 1179648, 5, 851978, 1179648, 5, 786442, 1179648, 5, 720906, 1179648, 5, 655370, 1179648, 5, 589834, 1179648, 5, 524298, 1179648, 5, 458762, 1179648, 5, 393226, 1179648, 5, 327690, 1179648, 5, 262154, 1179648, 5, 196618, 1179648, 5, 131082, 1179648, 5, 65546, 1179648, 5, 10, 1179648, 5, 851979, 1179648, 5, 851980, 1179648, 5, 786444, 1179648, 5, 720908, 1179648, 5, 655372, 1179648, 5, 589836, 1179648, 5, 524300, 1179648, 5, 458764, 1179648, 5, 393228, 1179648, 5, 327692, 1179648, 5, 262156, 1179648, 5, 196620, 1179648, 5, 131084, 1179648, 5, 131083, 1179648, 5, 65547, 1179648, 5, 11, 1179648, 5, 12, 1179648, 5, 65548, 1179648, 5, 196619, 1179648, 5, 262155, 1179648, 5, 327691, 1179648, 5, 393227, 1179648, 5, 458763, 1179648, 5, 786443, 1179648, 5, 720907, 1179648, 5, 655371, 1179648, 5, 589835, 1179648, 5, 524299, 1179648, 5, 589839, 1179648, 5, 589840, 1179648, 5, 589841, 1179648, 5, 589842, 1179648, 5, 589843, 1179648, 5, 589844, 1179648, 5, 589845, 1179648, 5, 589846, 1179648, 5, 589847, 1179648, 5, 720918, 1179648, 5, 786454, 1179648, 5, 851990, 1179648, 5, 917526, 1179648, 5, 983062, 1179648, 5, 720914, 1179648, 5, 786450, 1179648, 5, 851986, 1179648, 5, 917522, 1179648, 5, 983058, 1179648, 5, 1048594, 1179648, 5, 1048595, 1179648, 5, 1048598, 1179648, 5, 1048599, 1179648, 5, 1245202, 1179648, 5, 1310738, 1179648, 5, 1376274, 1179648, 5, 1310744, 1179648, 5, 1376280, 1179648, 5, 1245208, 1179648, 5, 1048600, 1179648, 5, 983064, 1179648, 5, 917528, 1179648, 5, 851992, 1179648, 5, 786456, 1179648, 5, 720920, 1179648, 5, 655384, 1179648, 5, 589848, 1179648, 5, 589851, 1179648, 5, 589852, 1179648, 5, 589853, 1179648, 5, 589854, 1179648, 5, 589855, 1179648, 5, 589856, 1179648, 5, 589857, 1179648, 5, 589858, 1179648, 5, 589859, 1179648, 5, 589860, 1179648, 5, 589861, 1179648, 5, 589862, 1179648, 5, 589863, 1179648, 5, 589864, 1179648, 5, 589865, 1179648, 5, 589866, 1179648, 5, 589867, 1179648, 5, 1245219, 1179648, 5, 1245218, 1179648, 5, 1245217, 1179648, 5, 1245216, 1179648, 5, 1245215, 1179648, 5, 1179678, 1179648, 5, 1245214, 1179648, 5, 1114142, 1179648, 5, 1048606, 1179648, 5, 983070, 1179648, 5, 917534, 1179648, 5, 851998, 1179648, 5, 851999, 1179648, 5, 852000, 1179648, 5, 852001, 1179648, 5, 852002, 1179648, 5, 852003, 1179648, 5, 852004, 1179648, 5, 852005, 1179648, 5, 852006, 1179648, 5, 852007, 1179648, 5, 852008, 1179648, 5, 917544, 1179648, 5, 983080, 1179648, 5, 1048616, 1179648, 5, 1114152, 1179648, 5, 1245223, 1179648, 5, 1245224, 1179648, 5, 1245225, 1179648, 5, 1245226, 1179648, 5, 1245227, 1179648, 5, 1245228, 1179648, 5, 1245229, 1179648, 5, 1245230, 1179648, 5, 1245232, 1179648, 5, 1245231, 1179648, 5, 1245220, 1179648, 5, 1179684, 1179648, 5, 1114145, 1179648, 5, 1114146, 1179648, 5, 1114147, 1179648, 5, 1114148, 1179648, 5, 1114144, 1179648, 5, 1441838, 1179648, 5, 1507374, 1179648, 5, 1507373, 1179648, 5, 1507372, 1179648, 5, 1507371, 1179648, 5, 1507370, 1179648, 5, 1507369, 1179648, 5, 1507368, 1179648, 5, 1507367, 1179648, 5, 1507366, 1179648, 5, 1507365, 1179648, 5, 1507364, 1179648, 5, 1507363, 1179648, 5, 1703973, 1179648, 5, 1769509, 1179648, 5, 1835045, 1179648, 5, 1900581, 1179648, 5, 1966117, 1179648, 5, 2031653, 1179648, 5, 2097189, 1179648, 5, 2162725, 1179648, 5, 2228261, 1179648, 5, 2162727, 1179648, 5, 2162728, 1179648, 5, 2162729, 1179648, 5, 2162730, 1179648, 5, 2162731, 1179648, 5, 2162732, 1179648, 5, 2162733, 1179648, 5, 1900586, 1179648, 5, 1900587, 1179648, 5, 1900588, 1179648, 5, 1900589, 1179648, 5, 1900590, 1179648, 5, 1900591, 1179648, 5, 1966127, 1179648, 5, 2031663, 1179648, 5, 2097199, 1179648, 5, 2162735, 1179648, 5, 2228271, 1179648, 5, 2293797, 1179648, 5, 2293798, 1179648, 5, 2293799, 1179648, 5, 2293800, 1179648, 5, 2293801, 1179648, 5, 2293802, 1179648, 5, 2293803, 1179648, 5, 2293804, 1179648, 5, 2293805, 1179648, 5, 2293806, 1179648, 5, 2293807, 1179648, 5, 2293810, 1179648, 5, 2293811, 1179648, 5, 2293812, 1179648, 5, 2293813, 1179648, 5, 2293814, 1179648, 5, 2293815, 1179648, 5, 2228279, 1179648, 5, 2162743, 1179648, 5, 2097207, 1179648, 5, 2031671, 1179648, 5, 1966135, 1179648, 5, 1900599, 1179648, 5, 1835063, 1179648, 5, 1769527, 1179648, 5, 1703991, 1179648, 5, 1900603, 1179648, 5, 1966139, 1179648, 5, 2031675, 1179648, 5, 2097211, 1179648, 5, 2162747, 1179648, 5, 2293818, 1179648, 5, 2293819, 1179648, 5, 2293820, 1179648, 5, 2293821, 1179648, 5, 1638459, 1179648, 5, 1572923, 1179648, 5, 1507387, 1179648, 5, 1441851, 1179648, 5, 1835066, 1179648, 5, 1835067, 1179648, 5, 1179707, 1179648, 5, 1114171, 1179648, 5, 1048635, 1179648, 5, 983099, 1179648, 5, 917563, 1179648, 5, 852027, 1179648, 5, 786491, 1179648, 5, 720955, 1179648, 5, 524343, 1179648, 5, 524344, 1179648, 5, 524345, 1179648, 5, 524346, 1179648, 5, 524347, 1179648, 5, 458811, 1179648, 5, 393272, 1179648, 5, 327736, 1179648, 5, 262200, 1179648, 5, 196664, 1179648, 5, 131128, 1179648, 5, 393273, 1179648, 5, 393274, 1179648, 5, 393275, 1179648, 5, 65592, 1179648, 5, 65591, 1179648, 5, 65590, 1179648, 5, 65589, 1179648, 5, 65588, 1179648, 5, 65587, 1179648, 5, 65583, 1179648, 5, 65582, 1179648, 5, 65581, 1179648, 5, 65580, 1179648, 5, 65579, 1179648, 5, 65578, 1179648, 5, 65577, 1179648, 5, 65576, 1179648, 5, 196648, 1179648, 5, 196649, 1179648, 5, 196650, 1179648, 5, 196651, 1179648, 5, 196652, 1179648, 5, 196653, 1179648, 5, 196654, 1179648, 5, 196655, 1179648, 5, 393264, 1179648, 5, 458800, 1179648, 5, 524336, 1179648, 5, 589872, 1179648, 5, 655408, 1179648, 5, 720944, 1179648, 5, 786480, 1179648, 5, 852016, 1179648, 5, 196656, 1179648, 5, 131120, 1179648, 5, 65584, 1179648, 5, 1114156, 1179648, 5, 1048620, 1179648, 5, 983084, 1179648, 5, 917548, 1179648, 5, 852012, 1179648, 5, 786476, 1179648, 5, 720940, 1179648, 5, 655404, 1179648, 5, 589868, 1179648, 5, 327696, 1179648, 5, 327697, 1179648, 5, 327698, 1179648, 5, 327699, 1179648, 5, 327700, 1179648, 5, 327701, 1179648, 5, 327702, 1179648, 5, 327703, 1179648, 5, 327704, 1179648, 5, 327705, 1179648, 5, 327706, 1179648, 5, 327707, 1179648, 5, 327708, 1179648, 5, 327709, 1179648, 5, 327710, 1179648, 5, 327711, 1179648, 5, 32, 1179648, 5, 31, 1179648, 5, 30, 1179648, 5, 29, 1179648, 5, 28, 1179648, 5, 27, 1179648, 5, 23, 1179648, 5, 22, 1179648, 5, 21, 1179648, 5, 20, 1179648, 5, 19, 1179648, 5, 18, 1179648, 5, 17, 1179648, 5, 16, 1179648, 5, 24, 1179648, 5, 65560, 1179648, 5, 131096, 1179648, 5, 1638416, 1179648, 5, 1638415, 1179648, 5, 1638417, 1179648, 5, 1638418, 1179648, 5, 1638419, 1179648, 5, 1310742, 1179648, 5, 1376278, 1179648, 5, 1441814, 1179648, 5, 1703958, 1179648, 5, 1769494, 1179648, 5, 1835030, 1179648, 5, 1900566, 1179648, 5, 1966102, 1179648, 5, 2031638, 1179648, 5, 2097174, 1179648, 5, 2162710, 1179648, 5, 2228246, 1179648, 5, 2293782, 1179648, 5, 2424854, 1179648, 5, 2359318, 1179648, 5, 2228242, 1179648, 5, 2228243, 1179648, 5, 2228241, 1179648, 5, 2228240, 1179648, 5, 2228239, 1179648, 5, 2228238, 1179648, 5, 2228237, 1179648, 5, 2228236, 1179648, 5, 2228235, 1179648, 5, 2228234, 1179648, 5, 2228233, 1179648, 5, 2228232, 1179648, 5, 2228231, 1179648, 5, 2228230, 1179648, 5, 2228229, 1179648, 5, 2228228, 1179648, 5, 2228227, 1179648, 5, 2228226, 1179648, 5, 2293762, 1179648, 5, 2359298, 1179648, 5, 2424834, 1179648, 5, 2031634, 1179648, 5, 1966098, 1179648, 5, 1900562, 1179648, 5, 1835026, 1179648, 5, 1769490, 1179648, 5, 1900573, 1179648, 5, 1900572, 1179648, 5, 1900571, 1179648, 5, 1900570, 1179648, 5, 1966106, 1179648, 5, 2031642, 1179648, 5, 2097178, 1179648, 5, 2162714, 1179648, 5, 2228250, 1179648, 5, 2293786, 1179648, 5, 2293787, 1179648, 5, 2293788, 1179648, 5, 2293789, 1179648, 5, 2293790, 1179648, 5, 2293791, 1179648, 5, 2228255, 1179648, 5, 2162719, 1179648, 5, 2097183, 1179648, 5, 2031647, 1179648, 5, 1966111, 1179648, 5, 1900575, 1179648, 5, 1835039, 1179648, 5, 1769503, 1179648, 5, 1703967, 1179648, 5, 1638431, 1179648, 5, 1638430, 1179648, 5, 1638429, 1179648, 5, 1638428, 1179648, 5, 1638425, 1179648, 5, 1638424, 1179648, 5, 1638423, 1179648, 5, 1638422, 1179648, 5, 1638426, 1179648, 5, 1638427, 1179648, 5, 327715, 1179648, 5, 393251, 1179648, 5, 262179, 1179648, 5, 196643, 1179648, 5, 131107, 1179648, 5, 65571, 1179648, 5, 35, 1179648, 5, -65501, 1179648, 5, -131037, 1179648, 5, 1572866, 1179648, 5, 1572867, 1179648, 5, 1572868, 1179648, 5, 1507332, 1179648, 5, 1441796, 1179648, 5, 1376260, 1179648, 5, 1376259, 1179648, 5, 1376258, 1179648, 5, 1441794, 1179648, 5, 1507330, 1179648, 5, 1507331, 1179648, 5, 1441795, 1179648, 5, 1179650, 1179648, 5, 1179651, 1179648, 5, 1900540, 1179648, 5, 1966076, 1179648, 5, 2031612, 1179648, 5, 2097148, 1179648, 5, 2162684, 1179648, 5, 2228220, 1179648, 5, 2293756, 1179648, 5, 2359292, 1179648, 5, 2424828, 1179648, 5, 2490364, 1179648, 5, 1900541, 1179648, 5, 1900542, 1179648, 5, 1900543, 1179648, 5, 1835008, 1179648, 5, 1835009, 1179648, 5, 1835010, 1179648, 5, 1835011, 1179648, 5, 1835012, 1179648, 5, 1835013, 1179648, 5, 1835014, 1179648, 5, 1835015, 1179648, 5, 1310730, 1179648, 5, 1376266, 1179648, 5, 1441802, 1179648, 5, 1507338, 1179648, 5, 1572874, 1179648, 5, 1638410, 1179648, 5, 1703946, 1179648, 5, 1769482, 1179648, 5, 1835018, 1179648, 5, 1835019, 1179648, 5, 1245196, 1179648, 5, 1310732, 1179648, 5, 1376268, 1179648, 5, 1441804, 1179648, 5, 1507340, 1179648, 5, 1572876, 1179648, 5, 1638412, 1179648, 5, 1703948, 1179648, 5, 1769484, 1179648, 5, 1835020, 1179648, 5, 65575, 1179648, 5, 131111, 1179648, 5, 196647, 1179648, 5, 196662, 1179648, 5, 262198, 1179648, 5, 327734, 1179648, 5, 393270, 1179648, 5, 458806, 1179648, 5, 524342, 1179648, 5, 720950, 1179648, 5, 786486, 1179648, 5, 852022, 1179648, 5, 917558, 1179648, 5, 983094, 1179648, 5, 1048630, 1179648, 5, 1114166, 1179648, 5, 1245243, 1179648, 5, 1245242, 1179648, 5, 1245239, 1179648, 5, 1245238, 1179648, 5, 1245237, 1179648, 5, 1310771, 1179648, 5, 1245235, 1179648, 5, 1245236, 1179648, 5, 1376307, 1179648, 5, 1638451, 1179648, 5, 1572915, 1179648, 5, 1507379, 1179648, 5, 1441843, 1179648, 5, 1703987, 1179648, 5, 1769523, 1179648, 5, 1835059, 1179648, 5, 1900595, 1179648, 5, 1966131, 1179648, 5, 2031667, 1179648, 5, 2097203, 1179648, 5, 2162739, 1179648, 5, 131132, 1179648, 5, 65596, 1179648, 5, 60, 1179648, 5, -65476, 1179648, 5, -65475, 1179648, 5, 61, 1179648, 5, 65597, 1179648, 5, 131133, 1179648, 5) diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..9f13b18 --- /dev/null +++ b/project.godot @@ -0,0 +1,21 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Project Forum Sim" +run/main_scene="res://main.tscn" +config/features=PackedStringArray("4.3", "GL Compatibility") +config/icon="res://icon.svg" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/scenes/MC.gd b/scenes/MC.gd new file mode 100644 index 0000000..3524013 --- /dev/null +++ b/scenes/MC.gd @@ -0,0 +1,28 @@ +extends CharacterBody2D + + +const SPEED = 300.0 +const JUMP_VELOCITY = -400.0 + +# Get the gravity from the project settings to be synced with RigidBody nodes. +var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") + + +func _physics_process(delta): + # Add the gravity. + if not is_on_floor(): + velocity.y += gravity * delta + + # Handle jump. + if Input.is_action_just_pressed("ui_accept") and is_on_floor(): + velocity.y = JUMP_VELOCITY + + # Get the input direction and handle the movement/deceleration. + # As good practice, you should replace UI actions with custom gameplay actions. + var direction = Input.get_axis("ui_left", "ui_right") + if direction: + velocity.x = direction * SPEED + else: + velocity.x = move_toward(velocity.x, 0, SPEED) + + move_and_slide() diff --git a/scenes/MC.tscn b/scenes/MC.tscn new file mode 100644 index 0000000..362d991 --- /dev/null +++ b/scenes/MC.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=3 uid="uid://bcuo3byxygxyi"] + +[ext_resource type="Texture2D" uid="uid://q4fvqt4hhr86" path="res://Jump (32x32).png" id="1_ul47s"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_yoddx"] +size = Vector2(33, 52) + +[node name="CharacterBody2D" type="CharacterBody2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(49.5, 593.5) +scale = Vector2(1.46875, 1.90625) +texture = ExtResource("1_ul47s") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(48.5, 597) +shape = SubResource("RectangleShape2D_yoddx")