public override void FromTreeAtributes(ITreeAttribute tree, IWorldAccessor worldAccessForResolve) { base.FromTreeAtributes(tree, worldAccessForResolve); long nowNetworkId = tree.GetLong("networkid"); if (worldAccessForResolve.Side == EnumAppSide.Client) { propagationDir = BlockFacing.ALLFACES[tree.GetInt("turnDirFromFacing")]; gearedRatio = tree.GetFloat("g"); if (NetworkId != nowNetworkId) //don't ever change network settings from tree on server side - networkId is not data to be saved (otherwise would mess up networks on chunk loading, if BE tree loaded after a BE has already had network assigned on the server by propagation from a neighbour) { NetworkId = 0; if (worldAccessForResolve.Side == EnumAppSide.Client) { NetworkId = nowNetworkId; if (NetworkId == 0) { LeaveNetwork(); network = null; } else if (manager != null) { network = manager.GetOrCreateNetwork(NetworkId); JoinNetwork(network); Blockentity.MarkDirty(); } } } } }
public override void Initialize(ICoreAPI api) { base.Initialize(api); Block = api.World.BlockAccessor.GetBlock(pos); manager = api.ModLoader.GetModSystem <MechanicalPowerMod>(); if (api.World.Side == EnumAppSide.Client) { lightRbs = api.World.BlockAccessor.GetLightRGBs(pos); } manager.AddDeviceForRender(this); if (NetworkId > 0) { network = manager.GetOrCreateNetwork(NetworkId); } AxisMapping = new int[3] { 0, 1, 2 }; AxisSign = new int[3] { 1, 1, 1 }; }
public override void Initialize(ICoreAPI api, JsonObject properties) { base.Initialize(api, properties); Shape = GetShape(); manager = Api.ModLoader.GetModSystem <MechanicalPowerMod>(); if (Api.World.Side == EnumAppSide.Client) { lightRbs = Api.World.BlockAccessor.GetLightRGBs(Blockentity.Pos); if (NetworkId > 0) { network = manager.GetOrCreateNetwork(NetworkId); JoinNetwork(network); } } manager.AddDeviceForRender(this); AxisSign = new int[3] { 0, 0, 1 }; SetOrientations(); if (api.Side == EnumAppSide.Server && OutFacingForNetworkDiscovery != null) { CreateJoinAndDiscoverNetwork(OutFacingForNetworkDiscovery); } }
public override void FromTreeAtributes(ITreeAttribute tree, IWorldAccessor worldAccessForResolve) { base.FromTreeAtributes(tree, worldAccessForResolve); NetworkId = tree.GetLong("networkid"); if (manager != null) { network = manager.GetOrCreateNetwork(NetworkId); } turnDirFromFacing = BlockFacing.ALLFACES[tree.GetInt("turnDirFromFacing")]; }