Skip to content

Latest commit

History

247 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

BitcoderCZ.Fancade

License: MITNuGet VersionNuGet Version

C# library for loading, saving and modifying games for Fancade

Installation

The packages can be installed via NuGet:

.nupkg files and release notes are located in the Releases tab

Usage

usingBitcoderCZ.Fancade;usingBitcoderCZ.Fancade.Raw;// Load gameGamegame;using(FileStreamfs=File.OpenRead("game.fcg")){game=Game.LoadCompressed(fs);}// Add a levelPrefablevel=Prefab.CreateLevel(RawGame.CurrentNumbStockPrefabs,"Level 1");level.Blocks.SetBlock(newint3(0,0,0),1);game.Prefabs.AddPrefab(level);// Save gameusing(FileStreamfs=File.OpenWrite("game.fcg")){game.SaveCompressed(fs);}

CodeWriter

usingBitcoderCZ.Fancade;usingBitcoderCZ.Fancade.Editing;usingBitcoderCZ.Fancade.Editing.Scripting;usingBitcoderCZ.Fancade.Editing.Scripting.Builders;usingBitcoderCZ.Fancade.Editing.Scripting.Placers;usingBitcoderCZ.Fancade.Editing.Scripting.Utils;usingMathUtils.Vectors;usingstaticBitcoderCZ.Fancade.Editing.Scripting.CodeWriter.Expressions;// calculate Fibonacci Sequencevarbuilder=newGameFileBlockBuilder(null,"Level 1",PrefabType.Level);varplacer=newGroundCodePlacer(builder);// TowerCodePlacer produces more compact, but less readable codevarwriter=newCodeWriter(placer,newTerminalConnector(builder.Connect));Variablea=newVariable("a",SignalType.Float);Variableb=newVariable("b",SignalType.Float);Variablec=newVariable("c",SignalType.Float);Variableiter=newVariable("iter",SignalType.Float);floatmaxIter=10;using(writer.StatementBlock()){writer.If(LessThan(Variable(iter),Number(maxIter)), writer =>{writer.PlaySensor(writer =>{writer.SetVariable(a,Number(0f));writer.SetVariable(b,Number(1f));writer.Inspect(Variable(a));writer.Inspect(Variable(b));});writer.SetVariable(c,AddNumbers(Variable(a),Variable(b)));InspectResult();writer.SetVariable(a,Variable(b));writer.SetVariable(b,Variable(c));writer.IncrementNumber(Variable(iter));},null);}writer.Flush();// required if using goto or scoped CodePlacerusing(FileStreamfs=File.OpenWrite("game.fcg")){builder.Build(int3.Zero).SaveCompressed(fs);}voidInspectResult(){writer.Inspect(Variable(c));}

Results in: CodeWriter example result

About

C# lib for loading, saving, modifying and running Fancade games

Topics

Resources

Stars

10 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages