I separated the three scripts from the same folder as one was interfering with the other and when a reference a namespace in one of those scripts I get a "missing using directive/ assembly reference" error
I tried running the dotnet add reference
command and it didn't end up doing anything
Don't know where to put the code so...
It unnecessarily complicated but ignore that the error is to do with the using Errors are the Vector3 and using thingys
Script 1
namespace StateCalculator
{
using System;
using System.Configuration;
using System.Runtime.InteropServices;
using System.IO;
using System.Linq;
using CustomVariablesAndFunctionsEngine.Vectors; <- Error
using CustomVariablesAndFunctionsEngine.Math; <- Error
public class Calculator
{
#region Variables
public CalculatorStateMachine StateMachine { get; private set; }
public Add Add { get; private set; }
public Subtract Subtract { get; private set; }
public Multiply Multiply { get; private set; }
public Divide Divide { get; private set; }
public Square Square { get; private set; }
public Sqrt Sqrt { get; private set; }
public Cube Cube { get; private set; }
public Cbrt Cbrt { get; private set; }
#endregion
#region Functions
static void Main(string[] args)
{
Calculator c = new Calculator();
c.Awake();
c.Round1();
}
private void Awake()
{
StateMachine = new CalculatorStateMachine();
Add = new Add(this, StateMachine);
Subtract = new Subtract(this, StateMachine);
Multiply = new Multiply(this, StateMachine);
Divide = new Divide(this, StateMachine);
Square = new Square(this, StateMachine);
Sqrt = new Sqrt(this, StateMachine);
Cube = new Cube(this, StateMachine);
Cbrt = new Cbrt(this, StateMachine);
}
private void Round1()
{
string YesOrNo;
int operation;
Console.WriteLine("This is a simple calculator");
Console.WriteLine("Would you like to Continue Yes/No");
YesOrNo = Console.ReadLine().ToLower();
if(YesOrNo == "yes")
{
Console.WriteLine("What operation do you want to use");
Console.WriteLine("1 : Add");
Console.WriteLine("2 : Subtract");
Console.WriteLine("3 : Multiply");
Console.WriteLine("4 : Divide");
Console.WriteLine("5 : Square");
Console.WriteLine("6 : Sqrt");
Console.WriteLine("7 : Cube");
Console.WriteLine("8 : Cbrt");
operation = Convert.ToInt32(Console.ReadLine());
Which(operation);
}
else
{
Console.WriteLine("Ok, sorry to see you go :(");
}
}
private void Which(int operation)
{
if(operation == 1)
{
StateMachine.ChangeOperation(Add);
}
else if (operation == 2)
{
StateMachine.ChangeOperation(Subtract);
}
else if (operation == 3)
{
StateMachine.ChangeOperation(Multiply);
}
else if (operation == 4)
{
StateMachine.ChangeOperation(Divide);
}
else if(operation == 5)
{
StateMachine.ChangeOperation(Square);
}
else if(operation == 6)
{
StateMachine.ChangeOperation(Sqrt);
}
else if(operation == 7)
{
StateMachine.ChangeOperation(Cube);
}
else if(operation == 8)
{
StateMachine.ChangeOperation(Cbrt);
}
else
{
Console.WriteLine("Sorry I cant do that");
Which(operation);
}
}
#endregion
}
public class CalculatorStateMachine
{
#region Variables
public Operation CurrentOperation { get; private set; }
#endregion
#region Functions
public void Initialize(Operation startingOperation)
{
CurrentOperation = startingOperation;
CurrentOperation.Enter();
}
public void ChangeOperation(Operation newOperation)
{
CurrentOperation = newOperation;
CurrentOperation.Enter();
}
#endregion
}
public class Operation
{
#region Variables
public Calculator Calculator { get; protected set; }
public CalculatorStateMachine StateMachine { get; protected set; }
protected Vector3 Numbers;
#endregion
#region Functions
public Operation(Calculator calculator, CalculatorStateMachine stateMachine)
{
this.Calculator = calculator;
this.StateMachine = stateMachine;
}
public virtual void Enter()
{
Numbers = new Vector3(0f, 0f, 0f);
SetVariables();
Calculate(this.Numbers);
}
public virtual void SetVariables()
{
}
public virtual void Calculate(Vector3 Numbers)
{
}
#endregion
}
public class Add : Operation
{
public Add(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
{
}
public override void Enter()
{
base.Enter();
}
public override void Calculate(Vector3 Numbers)
{
base.Calculate(Numbers);
Numbers.z = Numbers.x + Numbers.y;
Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
}
public override void SetVariables()
{
base.SetVariables();
Console.WriteLine("First Number");
Numbers.x = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("Second Number");
Numbers.y = Convert.ToSingle(Console.ReadLine());
}
}
public class Subtract : Operation
{
public Subtract(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
{
}
public override void Enter()
{
base.Enter();
}
public override void Calculate(Vector3 Numbers)
{
base.Calculate(Numbers);
Numbers.z = Numbers.x - Numbers.y;
Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
}
public override void SetVariables()
{
base.SetVariables();
Console.WriteLine("First Number");
Numbers.x = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("Second Number");
Numbers.y = Convert.ToSingle(Console.ReadLine());
}
}
public class Multiply : Operation
{
public Multiply(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
{
}
public override void Enter()
{
base.Enter();
}
public override void Calculate(Vector3 Numbers)
{
base.Calculate(Numbers);
Numbers.z = Numbers.x * Numbers.y;
Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
}
public override void SetVariables()
{
base.SetVariables();
Console.WriteLine("First Number");
Numbers.x = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("Second Number");
Numbers.y = Convert.ToSingle(Console.ReadLine());
}
}
public class Divide : Operation
{
public Divide(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
{
}
public override void Enter()
{
base.Enter();
}
public override void Calculate(Vector3 Numbers)
{
base.Calculate(Numbers);
Numbers.z = Numbers.x / Numbers.y;
Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
}
public override void SetVariables()
{
base.SetVariables();
Console.WriteLine("First Number");
Numbers.x = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("Second Number");
Numbers.y = Convert.ToSingle(Console.ReadLine());
}
}
public class Square : Operation
{
public Square(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
{
}
public override void Enter()
{
base.Enter();
}
public override void Calculate(Vector3 Numbers)
{
base.Calculate(Numbers);
Numbers.z = MathF.Pow(Numbers.x, 2f);
Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
}
public override void SetVariables()
{
base.SetVariables();
Console.WriteLine("Number");
Numbers.x = Convert.ToSingle(Console.ReadLine());
}
}
public class Sqrt : Operation
{
public Sqrt(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
{
}
public override void Enter()
{
base.Enter();
}
public override void Calculate(Vector3 Numbers)
{
base.Calculate(Numbers);
Numbers.z = MathF.Sqrt(Numbers.x);
Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
}
public override void SetVariables()
{
base.SetVariables();
Console.WriteLine("Number");
Numbers.x = Convert.ToSingle(Console.ReadLine());
}
}
public class Cube : Operation
{
public Cube(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
{
}
public override void Enter()
{
base.Enter();
}
public override void Calculate(Vector3 Numbers)
{
base.Calculate(Numbers);
Numbers.z = MathF.Pow(Numbers.x, 3f);
Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
}
public override void SetVariables()
{
base.SetVariables();
Console.WriteLine("Number");
Numbers.x = Convert.ToSingle(Console.ReadLine());
}
}
public class Cbrt : Operation
{
public Cbrt(Calculator calculator, CalculatorStateMachine stateMachine) : base(calculator, stateMachine)
{
}
public override void Enter()
{
base.Enter();
}
public override void Calculate(Vector3 Numbers)
{
base.Calculate(Numbers);
Numbers.z = MathF.Cbrt(Numbers.x);
Console.WriteLine("Your answer is " + Convert.ToString(Numbers.z));
}
public override void SetVariables()
{
base.SetVariables();
Console.WriteLine("Number");
Numbers.x = Convert.ToSingle(Console.ReadLine());
}
}
}
I fixed it by transfering the code to a visual studio console app then adding the using directive as a reference in the solution