please translate this code snippet of C# of a space engineers script to hold ASCII-friendly variables and be consinstent to the rest of this script.
Basis if this script is Isy's Inventory management script.
void ː(){
	ʮ.Clear();
	GridTerminalSystem.GetBlocksOfType<IMyTextPanel>(ʮ,È=>È.IsSameConstructAs(Me)&&È.CustomName.Contains(autocraftingKeyword));
	if(ʮ.Count==0)return;
	if(ʾ.Count==0){
		Ƽ("No usable assemblers found!\nBuild or enable assemblers to enable autocrafting!");
		return;
	}
	if(!enableAutocrafting&&!enableAutodisassembling)return;
	Π();
	List<MyDefinitionId>Έ=new List<MyDefinitionId>();
	var Ά=ϲ().ToString().TrimEnd('\n').Split('\n');StringBuilder Ƨ=new StringBuilder();
	foreach(var Ê in Ά){
		string C="";
		bool ͽ=true;
		if(Ê.StartsWith("-")){
			ͽ=false;
			try{
				C=Ê.Substring(1,Ê.IndexOf("=")-1);
			}
			catch{
				continue;
			}
		}
		else{
			try{
				C=Ê.Substring(0,Ê.IndexOf(" "));
			}
			catch{
				continue;
			}
		}
		MyDefinitionId F=Ƕ(C);
		if(F==null)continue;
		bool ͼ;
		MyDefinitionId á=Ǹ(F,out ͼ);
		if(!ͼ&&!showUnlearnedItems)continue;
		double ͺ=Math.Ceiling(f(F));
		string ͷ=Ê.Substring(Ê.IndexOfAny(Ɍ)+1).ToLower().Replace(" ","");
		double Ͷ=0;
		int ʹ=1;
		double.TryParse(System.Text.RegularExpressions.Regex.Match(ͷ,@"\d+").Value,out Ͷ);
		string ͳ=ͺ.ToString();
		string Ͳ=Ͷ.ToString();
		string ͻ="";
		bool ï=false;
		if(ͷ.Contains("h")&&ͽ){
			if(!ʮ[0].CustomData.StartsWith(ɍ))ʮ[0].CustomData=ɍ;
			ʮ[0].CustomData+="\n-"+C+"="+ͷ.Replace("h","").Replace(" ","").ToUpper();
			continue;
		}
		else if(ͷ.Contains("i")&&ͽ){
			if(!ʮ[0].CustomData.StartsWith(ɍ))ʮ[0].CustomData=ɍ;
			ʮ[0].CustomData+="\n-"+C;
			continue;
		}
		if(ͷ.Contains("a")){
			if(ͺ>Ͷ)Ͷ=ͺ;
			ͻ+="A";
		}
		if(ͷ.Contains("d")){
			if(ͺ<Ͷ)Ͷ=ͺ;
			ͻ+="D";
		}
		if(ͷ.Contains("p")){
			ï=true;
			ͻ+="P";
		}
		if(ͷ.Contains("y")){
			int.TryParse(System.Text.RegularExpressions.Regex.Match(ͷ,@"y\d+").Value.Replace("y",""),out ʹ);
			if(ʹ==0)ʹ=1;
			ͻ+="Y"+ʹ;
		}
		ǀ(F,Ͷ);
		double Α=Math.Abs((Ͷ-ͺ)/ʹ);
		if(ʹ!=1)Α=Math.Floor(Α);
		double Θ=ǁ(á);
		if(ͺ>=Ͷ+Ͷ*assembleMargin&&Θ>0&&ƿ(á)>0){
			Σ(á);
			ƾ(á,0);
			Θ=0;
			Ǎ("Removed '"+F.SubtypeId.ToString()+"' from the assembling queue.");
		}
		if(ͺ<=Ͷ-Ͷ*disassembleMargin&&Θ>0&&ƿ(á)<0){
			Σ(á);
			ƾ(á,0);
			Θ=0;
			Ǎ("Removed '"+F.SubtypeId.ToString()+"' from the disassembling queue.");
		}
		string ĥ="";if(Θ>0||Α>0){
			if((enableAutodisassembling||ͷ.Contains("d"))&&ͺ>Ͷ+Ͷ*disassembleMargin){
				ƾ(á,-1);
				ĥ="$[D:";
			}
			else if(enableAutocrafting&&ͺ<Ͷ-Ͷ*assembleMargin){
				ƾ(á,1);
				ĥ="$[A:";
			}
			if(ĥ!=""){
				if(Θ==0){
					ĥ+="Wait]";
				}
				else{
					ĥ+=Math.Round(Θ)+"]";
				}
			}
		}
		else{
			ƾ(á,0);
		}
		if(showUnlearnedItems&&!ͼ)ĥ="$[NoBP]";
		if(ï){
			Έ.Add(á);
		}
		string Ζ="$=$ ";
		if(ͺ>Ͷ)Ζ="$>$ ";
		if(ͺ<Ͷ)Ζ="$<$ ";
		if(ͽ)Ƨ.Append(C+" "+ͳ+ĥ+Ζ+Ͳ+ͻ+"\n");
		if(ĥ.Contains("[D:Wait]")){
			Ι(á,Α);
		}
		else if(ĥ.Contains("[A:Wait]")){
			Λ(á,Α,ï);
			Ǎ("Queued "+Α+" '"+F.SubtypeId.ToString()+"' in the assemblers.");
		}
	}
	Ρ(Έ);
	ϧ(Ƨ);
}
void Ε(){
	if(Refineries.Count>0)return;
	MyDefinitionId ˠ=MyItemType.MakeOre("Stone");
	MyDefinitionId á=MyDefinitionId.Parse(ȓ+"Position0010_StoneOreToIngotBasic");
	double Δ=f(ˠ);
	if(Δ>0){
		double Γ=Math.Floor(Δ/100/ʲ.Count);
		if(Γ<1)return;
		foreach(var Η in ʲ){
			if(Η.CanUseBlueprint(á)&&Η.IsQueueEmpty){
				Η.AddQueueItem(á,Γ);
				Ǎ("Queued "+Γ+" ingot crafts in "+Η.CustomName+".");
			}
		}
	}
}
void Β(){
	if(ʧ==0)ʧ+=ΐ(ʝ,ɂ,true,true);
	if(ʧ==1)ʧ+=ΐ(ʑ,Ɂ,true,true);
	if(ʧ==2)ʧ+=ΐ(ʐ,ɀ,true,true);
	if(ʧ==3)ʧ+=ΐ(ʏ,Ȫ,true,true);
	if(ʧ==4)ʧ+=ΐ(ʎ,ȿ,true,true);
	if(ʧ==5)ʧ+=ΐ(ʍ,"ContainerObject",true,true);
	ʧ++;
	if(ʧ>5)ʧ=0;
}
int ΐ(List<IMyTerminalBlock>ɒ,string Ώ="",bool Ύ=false,bool Ό=false){
	if(Ύ)ɒ.RemoveAll(ſ=>ſ.InventoryCount==2||ſ.BlockDefinition.TypeIdString.Contains("OxygenGenerator")||ſ.BlockDefinition.TypeIdString.Contains("OxygenTank"));
	if(Ό)ɒ.RemoveAll(S=>!S.CubeGrid.IsSameConstructAs(Me.CubeGrid));
	if(ɒ.Count<2){
		return 1;
	}
	Dictionary<MyItemType,double>Ί=new Dictionary<MyItemType,double>();
	for(int S=0;S<ɒ.Count;S++){
		var H=new List<MyInventoryItem>();
		ɒ[S].GetInventory(0).GetItems(H);
		foreach(var Ð in H){
			if(!Ð.Type.TypeId.ToString().Contains(Ώ))continue;
			MyItemType F=Ð.Type;
			if(Ί.ContainsKey(F)){
				Ί[F]+=(double)Ð.Amount;
			}
			else{
				Ί[F]=(double)Ð.Amount;
			}
		}
	}
	Dictionary<MyItemType,double>ˍ=new Dictionary<MyItemType,double>();
	foreach(var Ð in Ί){
		ˍ[Ð.Key]=(int)(Ð.Value/ɒ.Count);
	}
	for(int ˌ=0;ˌ<ɒ.Count;ˌ++){
		if(Ǥ())return 0;
		var ˋ=new List<MyInventoryItem>();
		ɒ[ˌ].GetInventory(0).GetItems(ˋ);
		Dictionary<MyItemType,double>ˊ=new Dictionary<MyItemType,double>();
		foreach(var Ð in ˋ){
			MyItemType F=Ð.Type;
			if(ˊ.ContainsKey(F)){
				ˊ[F]+=(double)Ð.Amount;
			}
			else{
				ˊ[F]=(double)Ð.Amount;
			}
		}
		double ı=0;
		foreach(var Ð in Ί){
			ˊ.TryGetValue(Ð.Key,out ı);
			double ˉ=ˍ[Ð.Key];
			if(ı<=ˉ+1)continue;
			for(int ˈ=0;ˈ<ɒ.Count;ˈ++){
				if(ɒ[ˌ]==ɒ[ˈ])continue;
				double ĭ=f(Ð.Key,ɒ[ˈ]);
				if(ĭ>=ˉ-1)continue;
				double ˇ=ˉ-ĭ;
				if(ˇ>ı-ˉ)ˇ=ı-ˉ;
				if(ˇ>0){
					ı-=R(Ð.Key.ToString(),ɒ[ˌ],0,ɒ[ˈ],0,ˇ,true);
					if(ı.ƚ(ˉ-1,ˉ+1))break;
				}
			}
		}
	}
	return Ǥ()?0:1;
}