From c9cb61faa7c3200063da22a04c30523bd783588f Mon Sep 17 00:00:00 2001 From: Jamal Millner II Date: Tue, 17 Sep 2024 07:45:51 -0400 Subject: [PATCH] Initial Commit --- .gitattributes | 2 + .gitignore | 2 + AI.gd | 3 + AI.tscn | 19 + Brown.png | Bin 0 -> 552 bytes Brown.png.import | 34 ++ Data_Class.gd | 74 +++ Forwardv.gd | 17 + Jump (32x32).png | Bin 0 -> 769 bytes Jump (32x32).png.import | 34 ++ Leftv.gd | 16 + Main_player.tscn | 10 + Movement_Class.gd | 107 +++++ PlayerScript.gd | 581 ++++++++++++++++++++++++ Project_Forum_From_Home/.gitattributes | 2 + Project_Forum_From_Home/.gitignore | 2 + Project_Forum_From_Home/icon.svg | 1 + Project_Forum_From_Home/icon.svg.import | 37 ++ Project_Forum_From_Home/project.godot | 20 + Rightv.gd | 20 + Terrain (16x16).png | Bin 0 -> 8792 bytes Terrain (16x16).png.import | 34 ++ icon.svg | 1 + icon.svg.import | 37 ++ main.tscn | 240 ++++++++++ project.godot | 21 + scenes/MC.gd | 28 ++ scenes/MC.tscn | 18 + 28 files changed, 1360 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 AI.gd create mode 100644 AI.tscn create mode 100644 Brown.png create mode 100644 Brown.png.import create mode 100644 Data_Class.gd create mode 100644 Forwardv.gd create mode 100644 Jump (32x32).png create mode 100644 Jump (32x32).png.import create mode 100644 Leftv.gd create mode 100644 Main_player.tscn create mode 100644 Movement_Class.gd create mode 100644 PlayerScript.gd create mode 100644 Project_Forum_From_Home/.gitattributes create mode 100644 Project_Forum_From_Home/.gitignore create mode 100644 Project_Forum_From_Home/icon.svg create mode 100644 Project_Forum_From_Home/icon.svg.import create mode 100644 Project_Forum_From_Home/project.godot create mode 100644 Rightv.gd create mode 100644 Terrain (16x16).png create mode 100644 Terrain (16x16).png.import create mode 100644 icon.svg create mode 100644 icon.svg.import create mode 100644 main.tscn create mode 100644 project.godot create mode 100644 scenes/MC.gd create mode 100644 scenes/MC.tscn 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 0000000000000000000000000000000000000000..4925f7181e22e5ac064035ef9fc60882e70cfc13 GIT binary patch literal 552 zcmV+@0@wYCP)Px$;z>k7RCt{2nM;m?Fc1Zakyvs6&75WKF$ZCVgfgoqA%g$iuWgfB5){9xNckwQ zzu%wt^kAIz0BgPhEDt}neLA+?a)Moev$$mhlK^+ZRuSj{LZTKCr~y(0*%4>~a>SSs zC;>`@SP|3%)QB)5s0NS_(2k%MKytWd1eE|9gS8@v2he=AG@e^D0OL(d`V6rE%+GGg zvqS<|e1(-dvpRs~FFA>`s{&a6mY3L29H0exP_v~dKuhwVbW?VK7Ue<7wyXdx%Y)pF z$pLzh2RU1l0`w#gQa48f^e7Kfwg&_BEDvH1-T))WgOJN@fRW^Z&*>w;i1Ogh&BbmQ zjjN;cJ-}dImuX%X`nhLUcfG*kEN&UWS<8p6X>)8l|Ig8os6_;7fD}P?1X_R`F=hlx zfD$2A1oZ$lB8&*C0VD*pBd7(C9IhEbC4k0Ytq9@)G+!-^=N1jXc+-+TLo5LEvs>~k zkpLE7VWrNj4qzcKd3IF*OL?gc#Q|E72Q^!Y0<i%7 zd62U;DL_y1Aa!#zK#%euWqU9{&+;JV;0-W>JP5hm1{g^m_?$ihj3^K8++6I2(YQJ~ q-vc9ac6HYaPXW&EiSl4xm+2oH`NOYSo-;uJ0000Px%yGcYrR9J=Wm%mF}Q545NuNI1n|A64jQ&AowK5=lf&D0od1?g6&IM}H~f{WlQ zO+e@%gicyarY<^UC}J#B{INL{BO=jKe?)X~bg3ESc1YjjnY{OM6H~hM3n7=AbI10Ilj2MC%mBoPS5x1S>_7Qv(Z$;4*&7R z6@a~?;n290^X&R(d)yxA=d6&c;Hx$}&KHHp$K5os@vVOblqidjR09kW(xXEj>*DzCv1hnjixUqn*n0kCmiONWX~k zvq@Jwrw~h=1w9dUZ9q;)y@5>6?hLJ2p=-wM_sh^3!uo;Lmq{Hi00000NkvXXu0mjfYyD?z literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6674ca167f3c45111c4ceec66b071022751e8637 GIT binary patch literal 8792 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 XNk;?qNEY!^5rDRafqJ!?UG#qec>IIg literal 0 HcmV?d00001 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")