Jump to content

[WIP] AlphaFletcher v0.1 - Woodcutter / Fletcher


piscenian

Recommended Posts

So I've only been coding / scripting in java for about a weeks time as of 12/29/2018 and i have been working on a WoodCutter / Fetcher.

There are still some "issues" Shields are causing me some grief i just need to address them. I am sure im scripting some things in an odd manner but as of this post, the script....mostly works.

I've tested the @Trees, @anytreeType- @Longbow / Shortbow / ArrowShafts / Crossbow Stock- @Banking / Anybank- a good bit and it seems to work just fine.

Please feel free to provide feed back, i am new and welcome it.

 

Known issues: Fletching Shields isn't fluid enough but mosty works, add in log chop counter, improve upon every function...

 

Features include:

Wood cutting > Fetching @ full inventory >Bank/Drop

Sitting in bank >Withdraw > Fetch > Deposit

Fletches:

Arrow Shafts

Headless Arrows

Arrows

Shortbow (u)

Longbow (u)

Crossbow stock

Shield

 

Trees:

Tree

Oak

Willow

Maple

Yew

Magic

 

Hardcoded in banks:

Lumbridge Upper

Draynor

Varrockl E / W

Faador E / W

Seer's Village / Camelot

EdgeVille

Catherby

Ardougne N / S

CODE UPDATED 12/30/2018 9AM cst

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.util.Objects;
import java.util.List;
import java.util.function.BooleanSupplier;

import javax.swing.*;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;

import com.sun.javafx.image.BytePixelSetter;
import org.osbot.rs07.api.Skills;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.api.map.Area;
import org.osbot.rs07.api.map.Position;
import org.osbot.rs07.api.map.constants.Banks;
import org.osbot.rs07.api.model.NPC;
import org.osbot.rs07.api.ui.Message;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;
import java.util.Comparator;
import org.osbot.rs07.utility.ConditionalSleep;
import org.osbot.rs07.api.ui.RS2Widget;
import org.osbot.rs07.api.model.RS2Object;

import static org.osbot.rs07.api.map.constants.Banks.FALADOR_WEST;
import static org.osbot.rs07.api.map.constants.Banks.VARROCK_WEST;

@ScriptManifest(name = "AlphaFletcher", author = "Jared", version = 1.0, info = "", logo = "")


public class AlphaFletcher extends Script {



    private JPanel AlphaFletcher;
    private JTextField textField;
    public Boolean finishedGUI = false;
    int wY, wZ, StartingLocationX, StartingLocationY, Craftcount = 0, Runtimer = 0;
    String Location, LogType, Product, Tree, Banking, Logs, Metal, ProductCheck, Doing, State, subcom, ShouldBe, CurrentState, FoodName;
    Area WalkThisWay, StartingPos;
    Long Logcount, startTime;
    int amnt = 0;
    String Items = "";
    RS2Object trees;



    public void JFrame() {

        JFrame AlphaFletcher;
        AlphaFletcher = new JFrame();
        AlphaFletcher.setTitle("AlphaFletcher");
        AlphaFletcher.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        AlphaFletcher.setBounds(100, 100, 400, 250);
        AlphaFletcher.getContentPane();
        AlphaFletcher.setLayout(null);

        JComboBox comboBox_Location = new JComboBox();
        comboBox_Location.setModel(new DefaultComboBoxModel(new String[]{"- Location -", "Bank", "Trees"}));
        comboBox_Location.setBounds(200, 11, 150, 20);
        AlphaFletcher.add(comboBox_Location);

        JComboBox comboBox_Product = new JComboBox();
        comboBox_Product.setModel(new DefaultComboBoxModel(new String[]{"- Product -"}));
        comboBox_Product.setBounds(200, 41, 150, 20);
        AlphaFletcher.add(comboBox_Product);

        JComboBox comboBox_Bank = new JComboBox();
        comboBox_Bank.setModel(new DefaultComboBoxModel(new String[]{"- Bank -"}));
        comboBox_Bank.setBounds(200, 71, 150, 20);
        AlphaFletcher.add(comboBox_Bank);

        JComboBox comboBox_Wood = new JComboBox();
        comboBox_Wood.setModel(new DefaultComboBoxModel(new String[]{"- Wood -"}));
        comboBox_Wood.setBounds(200, 101, 150, 20);
        AlphaFletcher.add(comboBox_Wood);

        JComboBox comboBox_Metal = new JComboBox();
        comboBox_Metal.setModel(new DefaultComboBoxModel(new String[]{"- Metal -"}));
        comboBox_Metal.setBounds(200, 131, 150, 20);
        AlphaFletcher.add(comboBox_Metal);


        JButton btnNewButton = new JButton("Start");
        btnNewButton.setBounds(200, 161, 100, 23);
        AlphaFletcher.getContentPane().add(btnNewButton);
        AlphaFletcher.setVisible(true);


            comboBox_Location.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                    {
                        Location = comboBox_Location.getSelectedItem().toString();
                        switch (Location){
                            case "Bank":
                                comboBox_Metal.setModel(new DefaultComboBoxModel(new String[]{"- Metal -", "Bronze", "Iron", "Steel", "Adamant", "Rune"}));
                                comboBox_Bank.setModel(new DefaultComboBoxModel(new String[]{"- Bank -", "Lumbridge", "Draynor", "Varrock_East", "Varrock_West", "Falador_East", "Seers'  Village", "Falador_West", "EdgeVille", "Catherby", "Ardougne_N", "Ardougne_S"}));
                                comboBox_Product.setModel(new DefaultComboBoxModel(new String[]{"- Product -", "Arrow Shaft", "Headless arrow", "Arrow", "Bolt", "Dart", "shortbow", "longbow", "Crossbow stock", "Shield"}));
                                comboBox_Wood.setModel(new DefaultComboBoxModel(new String[]{"- Wood -", "Logs", "Oak logs", "Willow logs", "Maple logs", "Yew logs", "Magioc logs"}));
                                AlphaFletcher.setVisible(true);
                                break;


                            case "Trees":
                                comboBox_Metal.setModel(new DefaultComboBoxModel(new String[]{"- Metal -", "Bronze", "Iron", "Steel", "Adamant", "Rune"}));
                                comboBox_Bank.setModel(new DefaultComboBoxModel(new String[]{"- Bank -", "Drop", "Lumbridge", "Draynor", "Varrock_East", "Varrock_West", "Falador_East", "Falador_West","Seers'  Village", "EdgeVille", "Catherby", "Ardougne_N", "Ardougne_S"}));
                                comboBox_Product.setModel(new DefaultComboBoxModel(new String[]{"- Product -","Headless arrow", "Arrow Shaft", "Arrow", "shortbow", "longbow", "Crossbow stock", "Shield"}));
                                comboBox_Wood.setModel(new DefaultComboBoxModel(new String[]{"- Wood -", "Logs", "Oak logs", "Willow logs", "Maple logs", "Yew logs", "Magioc logs"}));
                                AlphaFletcher.setVisible(true);
                                break;
                                         }
                    }
            });

            comboBox_Product.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    Product = comboBox_Product.getSelectedItem().toString();
                        switch(Product)
                            {
                                case "Arrow":
                                case "Bolt" :
                                case "Dart":
                                comboBox_Metal.setModel(new DefaultComboBoxModel(new String[]{"- Metal -", "Bronze", "Iron", "Steel", "Adamant", "Rune"}));
                                break;
                                default:
                                    comboBox_Metal.setModel(new DefaultComboBoxModel(new String[]{"- Ignore -", "Bronze", "Iron", "Steel", "Adamant", "Rune"}));
                            }
                }
            });

        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                AlphaFletcher.setVisible(false);
                AlphaFletcher.dispose();
                ProductCheck = Product;
                LogType = comboBox_Wood.getSelectedItem().toString();
                Banking = comboBox_Bank.getSelectedItem().toString();
                Product = comboBox_Product.getSelectedItem().toString();
                Metal = comboBox_Metal.getSelectedItem().toString();
                switch(Product){
                    case "shortbow":
                        subcom = "shortbow (u)";
                        break;
                    case "longbow":
                        subcom = "longbow (u)";
                        break;
                    case "Crossbow stock":
                        subcom = "stock";
                        break;
                    case "Shield":
                        subcom = "shield";
                        break;
                }

                switch(LogType){
                    case "Logs":
                        ProductCheck = Product;
                        Tree = "Tree";
                        break;
                    case "Oak logs":
                         ProductCheck = "Oak " + subcom;
                        Tree = "Oak";
                        break;
                    case "Willow logs":
                        ProductCheck = "Willow " + subcom;
                        Tree = "Willow";
                        break;
                    case "Maple logs":
                        ProductCheck = "Maple " + subcom;
                        Tree = "Maple Tree";
                        break;
                    case "Yew logs":
                        ProductCheck = "Yew " + subcom;
                        Tree = "Yew";
                        break;
                    case "Magic logs":
                        ProductCheck = "Magic " + subcom;
                        Tree = "Magic tree";
                        break;
                }
                finishedGUI = true;
            }
            });

    }

            @Override
            public void onStart() {
                    //Code here will execute before the loop is started
                    State = "Starting Script...";
                    startTime = System.currentTimeMillis();
                    StartingPos = myPlayer().getArea(4);
                    this.getExperienceTracker().start(Skill.WOODCUTTING);
                    this.getExperienceTracker().start(Skill.FLETCHING);
                    JFrame();

            }


            @Override
            public void onExit() {
            }





public void WalkToBank(String BankName) throws InterruptedException {

        switch(Banking){
            case "Lumbridge":
                if(!Banks.LUMBRIDGE_UPPER.contains(myPosition())) {
                    State = "Walking to " + Banking;
                    getWalking().webWalk(Banks.LUMBRIDGE_UPPER);
                }
                break;
            case "Draynor":
                getWalking().webWalk(Banks.DRAYNOR);
                break;
            case "Varrock_East":
                getWalking().webWalk(Banks.VARROCK_EAST);
                break;
            case "Varrock_West":
                getWalking().webWalk(VARROCK_WEST);
                break;
            case "Falador_East":
                getWalking().webWalk(Banks.FALADOR_EAST);
                break;
            case "Falador_West":
                getWalking().webWalk(FALADOR_WEST);
                break;
            case "EdgeVille":
                getWalking().webWalk(Banks.EDGEVILLE);
                break;
            case "Catherby":
                getWalking().webWalk(Banks.CATHERBY);
                break;
            case "Ardougne_N":
                getWalking().webWalk(Banks.ARDOUGNE_NORTH);
                break;
            case "Ardougne_S":
                getWalking().webWalk(Banks.ARDOUGNE_SOUTH);
                break;
            case "Seers'  Village":
                getWalking().webWalk(Banks.CAMELOT);
                break;
        }
}

    public  int withdrawlcheck()
    {
        return (getInventory().getItem(Items).getAmount());
    }


    public void Fletching() throws InterruptedException {
        Logs = LogType;
        if (getInventory().getAmount(Logs) >= 1 && (Product != "Shield") || (getInventory().getAmount(Logs) >= 2 && (Product == "Shield"))) {
            State = "Fletching";
            inventory.interact("Use", "Knife");
            inventory.interact("Use", LogType);
            sleep(random(1000, 2000));
            switch (LogType) {
                case "Logs":
                    switch (Product) {
                        case "shortbow":
                            widgets.get(270, 16, 38).interact();
                            break;
                        case "longbow":
                            widgets.get(270, 17, 38).interact();
                            break;
                        case "Crossbow stock":
                            widgets.get(270, 18, 38).interact();
                            break;
                        case "Shield":
                            widgets.get(270, 19, 38).interact();
                            break;
                    }
                default:
                    switch (Product) {
                        case "shortbow":
                            widgets.get(270, 15, 38).interact();
                            break;
                        case "longbow":
                            widgets.get(270, 16, 38).interact();
                            break;
                        case "Crossbow stock":
                            widgets.get(270, 17, 38).interact();
                            break;
                        case "Shield":
                            widgets.get(270, 18, 38).interact();
                            break;
                    }
            }
            sleep(random(1500, 2500));
            while (myPlayer().isAnimating()) {
                inventory.deselectItem();
                sleep(random(1000, 1500));            }
        }
    }


    public void Chop() throws InterruptedException {
        RS2Object trees = objects.closest(Tree);
        if (trees != null) {
            State = "Chopping";

            while (myPlayer().isAnimating() || (myPlayer().isMoving() && (!(getInventory().getEmptySlotCount() <= 1)))) {
                sleep(random(300, 700));
            }
            trees.interact("Chop down");
            sleep(random(1500, 2500));
            while (myPlayer().isMoving()) {
                sleep(random(300, 700));
            }

        }
    }

    public void WhatToDoWhenFull() throws InterruptedException
    {
        if (!getInventory().contains("log") && (!inventory.isFull())) {
            Chop();
    }
        if (!getInventory().contains(Product) && inventory.isFull()) {
            Fletching();
        }
        if (getInventory().inventory.getAmount(LogType)>= (28 - (getInventory().getItem(item -> (!item.nameContains(LogType)))).getAmount()) && (Product != "Shield")){
            Fletching();
        }
        if (getInventory().inventory.getAmount(LogType)>=2 && (Product == "Shield")){
            Fletching();
        }
        if (getInventory().inventory.getAmount(LogType)<=1 && (Product == "Shield")){
            State = "Banking";
            WalkToBank(Banking);
            getBank().open();
            getBank().depositAllExcept("Knife", "Bronze axe", "Iron axe", "Steel axe", "Mithril axe", "Adamant axe", "Rune axe", "Dragon axe", "3rd age axe", "Infernal axe");
            getWalking().webWalk(StartingPos);
            Task();
        }
        if (getInventory().inventory.getAmount(ProductCheck) >= 24 && (Banking != "Drop") && (getInventory().inventory.isFull())) {
            State = "Banking";
            WalkToBank(Banking);
            getBank().open();
            getBank().depositAllExcept("Knife", "Bronze axe", "Iron axe", "Steel axe", "Mithril axe", "Adamant axe", "Rune axe", "Dragon axe", "3rd age axe", "Infernal axe");
            getWalking().webWalk(StartingPos);
            Task();
        }
    }

    public  boolean fullinvwithlogs()
     {
         return (getInventory().getEmptySlotCount()==0) && (getInventory().getAmount(item -> item.nameContains(" logs")) > 0);
     }

      public boolean CheckAxe()
      {
          return (getInventory().getItem(item -> item.nameContains(" axe")).getAmount() > 0);
      }

    public  boolean theplacetobe()
                {
                    return (grabstartingspot().contains(myPosition()));
                }

    public Area grabstartingspot()
                {
                    return myPlayer().getArea(15);
                }

                public boolean isanimated()
                {
                    return myPlayer().isAnimating();
                }

    public void Task() throws InterruptedException {
        inventory.deselectItem();
        State = "Tasker";
        switch (Product) {
            case "Headless arrow":
                switch (Location) {
                    case "Bank":
                        WalkToBank(Banking);
                        if (inventory.getAmount("Feather") <= 0 || (inventory.getAmount("Arrow shaft") <= 0)) {
                            BankForHeadlessArrow();
                        }
                        if (inventory.getAmount("Feather") >= 0 || (inventory.getAmount("Arrow shaft") >= 0)) {
                            State = "Attaching Feathers";
                            inventory.interact("Use", "Arrow shaft");
                            inventory.interact("Use", "Feather");
                            sleep((random(800,1300)));
                            int tempnum = Craftcount;
                            widgets.get(270, 14, 38).interact();
                            //sleep(random(9500,11000));
                            while (Craftcount != (tempnum + 150)){
                                sleep(500);
                            }
                        }

            case "Trees":
                RS2Object trees = objects.closest(Tree);
                if (trees != null && (!getInventory().isFull())) {
                    State = "Chopping1";
                    while (myPlayer().isAnimating() || (myPlayer().isMoving() && (!(getInventory().getEmptySlotCount() <= 1)))) {
                        sleep(random(300, 700));
                    }
                    trees.interact("Chop down");
                    sleep(random(678, 1243));
                    while (myPlayer().isMoving() || (myPlayer().isAnimating())) {
                        sleep(random(300, 700));
                    }
                }
                if (inventory.isFull() && (getInventory().getAmount("Arrow shaft") >= 1)) {
                    State = "Fetching";
                    inventory.interact("Use", "Logs");
                    inventory.interact("Use", "Feather");
                    sleep(random(800, 1600));
                    widgets.get(270, 14, 38).interact();
                    sleep(random(800, 1256));
                    while (myPlayer().isAnimating()) {
                        sleep(random(300, 700));
                    }
                }
        }
                break;

            case "Arrow Shaft":
                switch (Location) {
                    case "Bank":
                        WalkToBank(Banking);
                        getBank().open();
                        getBank().depositAllExcept("Knife");
                        if (!getInventory().contains("Knife")) {
                            getBank().withdraw("Knife", 1);
                        }
                        getBank().withdrawAll(LogType);
                        getBank().close();
                    case "Trees":
                        if (!getInventory().contains("Knife") && (Banking.equals("Drop"))) {
                            JOptionPane.showMessageDialog(null, "You need to go grab a Knife", "InfoBox: " + "Missing Tools", JOptionPane.INFORMATION_MESSAGE);
                            WalkToBank(Banking);
                            getBank().open();
                            getBank().withdraw("Knife", 1);
                        }
                        if (!getInventory().contains("Knife") && (!Banking.equals("Drop"))) {
                            WalkToBank(Banking);
                            getBank().open();
                            getBank().withdraw("Knife", 1);
                            getWalking().webWalk(StartingPos);
                        }
                        trees = objects.closest(Tree);
                        if (trees != null) {
                            State = "Chopping2";
                            while (myPlayer().isAnimating() || (myPlayer().isMoving() && (!(getInventory().getEmptySlotCount() <= 1)))) {
                                sleep(random(300, 700));
                            }
                            trees.interact("Chop down");
                            sleep(random(678, 1243));
                            while (myPlayer().isMoving()) {
                                sleep(random(300, 700));
                            }
                        }
                        if (getInventory().isFull()) {
                            State = "full Inv";
                            Logs = LogType;
                            if (getInventory().getAmount(Logs) >= 1) {
                                State = "Fletching";
                                inventory.interact("Use", "Knife");
                                inventory.interact("Use", LogType);
                                sleep(random(1000, 2000));
                                widgets.get(270, 14, 38).interact();
                                sleep(random(900, 2000));

                                while (myPlayer().isAnimating()) {
                                    sleep(random(300, 700));
                                }
                            }
                            break;
                        }
                }
            case "shortbow":
            case "longbow":
            case "Crossbow stock":
            case "Shield":

                        switch (Location) {
                            case "Bank":
                                WalkToBank(Banking);
                                getBank().open();
                                getBank().depositAllExcept("Knife");
                                if (!getInventory().contains("Knife")) {
                                    getBank().withdraw("Knife", 1);
                                }
                                getBank().withdrawAll(LogType);
                                getBank().close();
                                WhatToDoWhenFull();
                            case "Trees":
                                trees = objects.closest(Tree);
                                if (trees != null && (!getInventory().inventory.isFull())) {
                                    State = "Chopping"; //impment some status checking and if fetching and logs to fetch...keep fetching instead of chopping
                                    while (myPlayer().isAnimating() || (myPlayer().isMoving() && (!(getInventory().getEmptySlotCount() <= 2)))) {
                                        sleep(random(500, 900));
                                    }
                                    trees.interact("Chop down");
                                    sleep(random(678, 1243));
                                    if (myPlayer().isMoving()) {
                                        sleep(random(300, 700));
                                    }

                                }
                                if (getInventory().inventory.getEmptySlotCount() <=0) {
                                    State = "Deciding on Full inv";
                                    WhatToDoWhenFull();
                                }
                        }
                if (getInventory().inventory.getAmount(ProductCheck) >= 1 && (Banking == "Drop")) {
                    Dropping();
                    Task();
                }
                if (getInventory().inventory.getAmount(ProductCheck) >= 24 && (Banking != "Drop") && (getInventory().inventory.isFull())) {
                    WalkToBank(Banking);
                    getBank().open();
                    getBank().depositAllExcept("Knife", "Bronze axe", "Iron axe", "Steel axe", "Mithril axe", "Adamant axe", "Rune axe", "Dragon axe", "3rd age axe", "Infernal axe");
                    getWalking().webWalk(StartingPos);
                    Task();
                }
                }

        }


    public void Dropping() throws InterruptedException {
        State = "Dropping";
        inventory.dropAll(ProductCheck);
        Task();
    }

    public void BankForHeadlessArrow() throws InterruptedException
    {
        State = "Banking Items";
        getBank().open();
        getBank().depositAll();
        getBank().withdrawAll("Arrow shaft");
        getBank().withdrawAll("Feather");
        getBank().close();
    }

            @Override
            public int onLoop() throws InterruptedException {
                if (finishedGUI == true) {
                    Task();
                }
                return 75;
            }




            @Override
            public void onMessage(Message message) throws java.lang.InterruptedException {
                String msg = message.getMessage().toLowerCase();
                if (msg.contains("i can't reach that!")) {
                    //RunForrestRun();
                }
                if (msg.contains("you get some " + LogType.toLowerCase() + ".")) {
                    Logcount++;
                }
                if (msg.contains("you carefully cut the wood into a " + Product.toLowerCase() + ".")) {
                    Craftcount++;
                }
                if (msg.contains("you carefully cut the wood into 15 arrow shafts.")) {
                    Craftcount++;
                }
                if (msg.contains("you carefully cut the wood into 30 arrow shafts.")) {
                    Craftcount++;
                }
                if (msg.contains("you carefully cut the wood into 45 arrow shafts.")) {
                    Craftcount++;
                }
                if (msg.contains("you carefully cut the wood into 60 arrow shafts.")) {
                    Craftcount++;
                }
                if (msg.contains("you attach feathers to 15 arrow shafts.")) {
                    Craftcount = Craftcount + 15;
                }
                if (msg.contains("you require 2 logs to do that.")) {
                    if (getInventory().getAmount(ProductCheck) >= 1 && (Banking == "Drop")) {
                        Dropping();
                        Task();
                    }
                    if (getInventory().getAmount(ProductCheck) >= 24 && (Banking != "Drop") && (inventory.isFull())) {
                        WalkToBank(Banking);
                        getBank().open();
                        getBank().depositAllExcept("Knife", "Bronze axe", "Iron axe", "Steel axe", "Mithril axe", "Adamant axe", "Rune axe", "Dragon axe", "3rd age axe", "Infernal axe");
                        getWalking().webWalk(StartingPos);
                        Task();
                    }
                }
            }







            @Override

            public void onPaint(Graphics2D g) {
                g.setColor (Color.gray);
                g.fill3DRect (2, 20, 230, 100, true);
                g.setColor(Color.white);
                g.drawString("AlphaFletcher  by Jared", 5, 35);
                g.drawString("State: " + State, 5, 50);
                g.drawString("Making: " + ProductCheck, 5, 65);
                g.drawString("Action: " + Doing, 5, 80);
                g.drawString("Logs Chopped: " + Logcount, 5, 95);
                g.drawString("Logs Fletched: " + Craftcount, 5, 110);
                g.drawString("Runtime: " + this.formatTime(System.currentTimeMillis() - this.startTime), 10, 315);
                g.drawString("TTL Woodcutting: " +  this.formatTime(this.getExperienceTracker().getTimeToLevel(Skill.WOODCUTTING)), 10, 330);
                g.drawString("TTL Fletching: " + this.formatTime(this.getExperienceTracker().getTimeToLevel(Skill.FLETCHING)), 290, 330);



            }
            private String formatTime(long time) {
                long s = time / 1000L;
                long m = s / 60L;
                long h = m / 60L;
                s %= 60L;
                m %= 60L;
                h %= 24L;
                return String.format("%02d:%02d:%02d", h, m, s);
            }


        }

 

Edited by piscenian
Link to comment
Share on other sites

4 hours ago, Juggles said:

You should try using multiple classes, will help organize your code a lot ?

Thankyou, that was the main reason i posted the source, i want some feed back, suggestions etc. The ony reason i didnt do mutipe classes is i havent looked into how to call them from another class, if that is even a thing (the L key on my keyboard works like 30% of the time so if you see some words missing the L...thats why.

Link to comment
Share on other sites

  • 3 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...